1. Лучший говнокод

    В номинации:
    За время:
  2. SQL / Говнокод #14938

    −163

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    14. 14
    15. 15
    16. 16
    17. 17
    18. 18
    19. 19
    20. 20
    21. 21
    22. 22
    23. 23
    24. 24
    25. 25
    26. 26
    27. 27
    28. 28
    29. 29
    30. 30
    31. 31
    32. 32
    33. 33
    34. 34
    35. 35
    36. 36
    37. 37
    38. 38
    39. 39
    40. 40
    41. 41
    42. 42
    43. 43
    44. 44
    45. 45
    46. 46
    47. 47
    48. 48
    49. 49
    50. 50
    51. 51
    52. 52
    53. 53
    54. 54
    55. 55
    56. 56
    57. 57
    58. 58
    59. 59
    60. 60
    61. 61
    62. 62
    63. 63
    64. 64
    65. 65
    66. 66
    67. 67
    68. 68
    CREATE PROCEDURE DEPTORS_EURO AS	-- Но сначала отключу ТРИГГЕРА 
       ALTER TABLE DEPTORS_REFERENCE DISABLE  TRIGGER Tr_for_DEPTORS_REFERENCE
       ALTER TABLE DEPTORS_DOC_EURO DISABLE  TRIGGER Tr_for_DEPTORS_DOC_EURO
       ALTER TABLE DEPTORS_Remander DISABLE  TRIGGER Tr_for_DEPTORS_REMANDER
       ALTER TABLE DEPTORS_Payment DISABLE  TRIGGER Tr_for_DEPTORS_Payment -- Создаю документ DEPTORS_DOC_EURO_old
                         Она будет нужна для поиска оплативших долги АК и появившихся новых */
     IF EXISTS(SELECT name  -- Удаляю, если существует в БД
    	  FROM 	 sysobjects WHERE  name = N'DEPTORS_DOC_EURO_old' AND 	 type = 'U') DROP TABLE DEPTORS_DOC_EURO_old
                SELECT * INTO DEPTORS_DOC_EURO_old -- Это DEPTORS за предыдущий месяц
                FROM DEPTORS_DOC_EURO     -- После копирования данных - уничтожим DEPTORS_DOC_EURO
    DELETE  DEPTORS_DOC_EURO -- Т.О. по FK-PK обнуляютя таблицы  
    DELETE FROM STATEMENT_UKRSTA WHERE mvt_date = 
    (SELECT DISTINCT LATEST__DATE -- выбираю дату 
    FROM STATEMENT_UKRSTA , CALENDAR_BILL_DATE WHERE
     DATEPART(mm,FLIGHT_PERIOD) = DATEPART(mm, (SELECT DATEADD(mm,-1, MAX(stac_date)) FROM STATEMENT_UKRSTA WHERE type = 'FB'))  and
     DATEPART(yy,FLIGHT_PERIOD) = DATEPART(yy, (SELECT DATEADD(mm,-1, MAX(stac_date)) FROM STATEMENT_UKRSTA WHERE type = 'FB'))  and
     type = 'FB') -- Удаляю из таблицы STATEMENT_UKRSTA  все АК, которые не имеют долгов
    DELETE FROM STATEMENT_UKRSTA WHERE corr IN (SELECT corr FROM STATEMENT_UKRSTA a GROUP BY a.corr HAVING Sum(a.saldo) <= 0 ) 
    -- Создаю псевдовременную таблицу по выборке DEPTORS_REFERENCE_Vrem
    IF EXISTS(SELECT name  -- Удаляю, если существует в БД
    	  FROM 	 sysobjects WHERE  name = N'DEPTORS_REFERENCE_Vrem' AND type = 'U') DROP TABLE DEPTORS_REFERENCE_Vrem  
    SELECT  corr, type, SUBSTRING(reference,1,6) AS Account, Sum(saldo) AS Saldo INTO DEPTORS_REFERENCE_Vrem FROM STATEMENT_UKRSTA GROUP BY corr, type, reference HAVING SUM(saldo) > 0  
    -- Т.К. FK-PK то сначала внесем User_Ref всех должников в DEPTORS_DOC_EURO
    IF EXISTS(SELECT name  -- Удаляю, если существует в БД
    	  FROM 	 sysobjects WHERE  name = N'USER_REF' AND 	 type = 'U')
        DROP TABLE USER_REF  
    SELECT DISTINCT corr INTO USER_REF FROM DEPTORS_REFERENCE_Vrem 
    INSERT INTO DEPTORS_DOC_EURO SELECT User_Ref=a.corr,DEBT_AMOUNT=Null,Name= Null,Country=Null,Code_ICAO=Null,Final_Date=Null,Period_of_Dept=Null,Saldo_D_Facte=0,Saldo_D_Ure=0 FROM USER_REF a  
    DROP TABLE USER_REF -- Заполняю таблицу DEPTORS_REFERENCE (User_Ref уже есть - поэтому позволит внести)
    INSERT INTO DEPTORS_REFERENCE SELECT User_Ref=a.corr,reference=a.Account,type=a.type,Old_Saldo=a.Saldo,Saldo_D_Facte =0,Saldo_D_Ure=0 -- первично  
     FROM DEPTORS_REFERENCE_Vrem a   -- Удалим псевдовременную таблицу DEPTORS_REFERENCE_Vrem
    DROP TABLE  DEPTORS_REFERENCE_Vrem -- Корректирую счета (Выставлено - Оплачено)
    IF EXISTS(SELECT name  -- Удаляю, если существует в БД
    	  FROM 	 sysobjects WHERE  name = N'Vrem_Stat_Negativ_Saldo' AND 	 type = 'U') DROP TABLE Vrem_Stat_Negativ_Saldo  
    SELECT  corr, type, SUBSTRING(reference,1,6) AS Account, Sum(saldo) AS Saldo INTO Vrem_Stat_Negativ_Saldo FROM STATEMENT_UKRSTA GROUP BY corr, type, reference HAVING SUM(saldo) < 0  -- Сравниваю две таблицы (DEPTORS_REFERENCE и Vrem_Stat_Negativ_Saldo)
    UPDATE a SET Old_Saldo = a.Old_Saldo + b.Saldo FROM DEPTORS_REFERENCE a INNER JOIN Vrem_Stat_Negativ_Saldo b ON a.User_Ref = b.corr and a.reference = b.Account
    DROP TABLE Vrem_Stat_Negativ_Saldo      -- Создаю новый документ DEPTORS_DOC_EURO 
    IF EXISTS(SELECT name  -- Удаляю, если существует в БД
    	  FROM 	 sysobjects WHERE  name = N'Vrem_DEPTORS_DOC_EURO' AND 	 type = 'U')    DROP TABLE Vrem_DEPTORS_DOC_EURO
       SELECT User_Ref, SUM(Old_Saldo) AS Old_Saldo,SUM(Saldo_D_Facte) AS Saldo_D_Facte,SUM(Saldo_D_Ure)   AS Saldo_D_Ure
     INTO Vrem_DEPTORS_DOC_EURO FROM DEPTORS_REFERENCE GROUP BY User_Ref 
    UPDATE b
    SET 
      DEBT_AMOUNT  = a.Old_Saldo, Saldo_D_Facte = a.Old_Saldo, Saldo_D_Ure   = a.Old_Saldo  FROM Vrem_DEPTORS_DOC_EURO a INNER JOIN DEPTORS_DOC_EURO b ON a.User_Ref = b.User_Ref
      DROP TABLE  Vrem_DEPTORS_DOC_EURO
    UPDATE a SET Name= b.corr_name  FROM DEPTORS_DOC_EURO a INNER JOIN STATEMENT_UKRSTA b 
               ON a.User_Ref = b.corr              
    UPDATE a SET Code_ICAO = ICAO_CODE FROM DEPTORS_DOC_EURO a INNER JOIN AIRCOMPANYS b
         ON (a.User_Ref = b.CRCO_NUMBER) OR (a.User_Ref = b.CRCO3)
    UPDATE a SET Country = c.FULL_NAME FROM DEPTORS_DOC_EURO a INNER JOIN AIRCOMPANYS b 
         ON (a.User_Ref = b.CRCO_NUMBER) OR (a.User_Ref = b.CRCO3)
                            INNER JOIN COUNTRYS c ON b.COUNTRY_ID = c.ID
     IF EXISTS(SELECT name  -- Удаляю, если существует в БД
    	  FROM 	 sysobjects WHERE  name = N'DEPTORS_DOC_EURO_NewDolg' AND 	 type = 'U')
        DROP TABLE DEPTORS_DOC_EURO_NewDolg
                   SELECT * -- Делаю выборку в таблицу   
                   INTO DEPTORS_DOC_EURO_NewDolg FROM DEPTORS_DOC_EURO
    WHERE User_Ref Not IN (SELECT User_Ref FROM DEPTORS_DOC_EURO_old)
    IF EXISTS(SELECT name  -- Удаляю, если существует в БД
    	  FROM 	 sysobjects WHERE  name = N'DEPTORS_DOC_EURO_OplatDolg' AND 	 type = 'U')
        DROP TABLE DEPTORS_DOC_EURO_OplatDolg
                   SELECT * -- Делаю выборку в таблицу   
                   INTO DEPTORS_DOC_EURO_OplatDolg FROM DEPTORS_DOC_EURO_old
    WHERE User_Ref Not IN (SELECT User_Ref FROM DEPTORS_DOC_EURO)
       ALTER TABLE DEPTORS_REFERENCE ENABLE  TRIGGER Tr_for_DEPTORS_REFERENCE
       ALTER TABLE DEPTORS_DOC_EURO ENABLE  TRIGGER Tr_for_DEPTORS_DOC_EURO
       ALTER TABLE DEPTORS_Remander ENABLE  TRIGGER Tr_for_DEPTORS_REMANDER
       ALTER TABLE DEPTORS_Payment ENABLE  TRIGGER Tr_for_DEPTORS_Payment

    курсор головного мозга 2.2

    bahamot, 24 Февраля 2014

    Комментарии (23)
  3. C# / Говнокод #14585

    +139

    1. 1
    var date = (DateTime.UtcNow.Date > DateTime.UtcNow ? DateTime.UtcNow.AddSeconds(1) : (DateTime.UtcNow.Date < DateTime.UtcNow ? DateTime.UtcNow.Date.AddSeconds(1) : DateTime.UtcNow));

    Обнаружил сегодня в процессе код ревью (получение даты в каком-то тесте, который писал джуниор). Пребываю в состоянии когнитивного диссонанса...

    aleksandr_kesha, 14 Февраля 2014

    Комментарии (23)
  4. C++ / Говнокод #14525

    +56

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    #include <iostream>
    using namespace std;
    
    int main() {
    	int i = 5;
    	int* p1 = &i;
    	volatile int* p2 = &i;
    	cout << p1 << endl;
    	cout << p2 << endl;
    	return 0;
    }

    http://ideone.com/hpw4CB

    LispGovno, 08 Февраля 2014

    Комментарии (23)
  5. PHP / Говнокод #14476

    +153

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    Блядь, я никак не могу понять - зачем нужны дебильные фреймворки, MVC и прочее?
    В чём охуенность освоения MVC, каких-то "интерфейсов" и "моделей", суть которых мне непонятна,
    создания нескольких папок, файлов и конфигурации ради одной, довольно простой, функции, когда
    её можно спрограммировать десятью-двадцатью строками чистого PHP-кода?
    Также я не могу постичь смысл использования анальных шаблонизаторов ("Smarty", "Twig",
    и прочая ебатня)...

    Horse3, 03 Февраля 2014

    Комментарии (23)
  6. Java / Говнокод #14401

    +69

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    14. 14
    15. 15
    16. 16
    17. 17
    18. 18
    19. 19
    20. 20
    21. 21
    22. 22
    23. 23
    24. 24
    25. 25
    26. 26
    27. 27
    28. 28
    29. 29
    30. 30
    31. 31
    32. 32
    33. 33
    34. 34
    35. 35
    String response = HttpLoader.loadString(params[0]);
    Gson gson = new GsonBuilder().registerTypeAdapter(ArrayList.class,
        new JsonCollectionSerializer<ArrayList<MyClass>>()).
        create();
    
    ArrayList<MyClass> items_generic = new ArrayList<MyClass>() { };
    ArrayList<MyClass> items = gson.fromJson(response, items_generic.getClass().getGenericSuperclass());
    return items;
    
    
    public class JsonCollectionSerializer<E> implements
            JsonSerializer<Collection<E>>, JsonDeserializer<Collection<E>> {
    
        @SuppressWarnings("unchecked")
        public Collection<E> deserialize(JsonElement element, Type type,
                                         JsonDeserializationContext context) throws JsonParseException {
            JsonArray items = element.getAsJsonArray();
            ParameterizedType deserializationCollectionType = ((ParameterizedType) type);
            Type collectionItemType = deserializationCollectionType.getActualTypeArguments()[0];
            Collection<E> list = null;
    
            try {
                list = (Collection<E>) ((Class<?>) deserializationCollectionType.getRawType()).newInstance();
                for (JsonElement e : items) {
                    list.add((E) context.deserialize(e, collectionItemType));
                }
            } catch (InstantiationException e) {
                throw new JsonParseException(e);
            } catch (IllegalAccessException e) {
                throw new JsonParseException(e);
            }
    
            return list;
        }
    }

    Жабоблядство и шаблоны и генерики:
    Чтение из json в коллекцию с шаблонным параметризованным типом.

    chtulhu, 23 Января 2014

    Комментарии (23)
  7. JavaScript / Говнокод #14340

    +155

    1. 1
    2. 2
    $(element).width($(element).width());
    $(element).height($(element).height());

    Просто нет слов.

    Diwms, 10 Января 2014

    Комментарии (23)
  8. Java / Говнокод #14251

    +71

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    14. 14
    15. 15
    16. 16
    17. 17
    18. 18
    19. 19
    20. 20
    21. 21
    22. 22
    23. 23
    24. 24
    25. 25
    26. 26
    27. 27
    28. 28
    29. 29
    30. 30
    31. 31
    32. 32
    33. 33
    34. 34
    35. 35
    36. 36
    37. 37
    38. 38
    39. 39
    40. 40
    41. 41
    42. 42
    43. 43
    44. 44
    45. 45
    46. 46
    47. 47
    48. 48
    49. 49
    50. 50
    51. 51
    52. 52
    53. 53
    54. 54
    55. 55
    56. 56
    57. 57
    58. 58
    59. 59
    60. 60
    61. 61
    62. 62
    63. 63
    64. 64
    65. 65
    66. 66
    67. 67
    68. 68
    69. 69
    70. 70
    71. 71
    72. 72
    73. 73
    74. 74
    75. 75
    76. 76
    77. 77
    78. 78
    79. 79
    80. 80
    @Override
        List search(Long ownerId, Long projectId, String docnumber, String ctr1, String ctr2, Long dateFrom, Long dateTo, String contract,
                    Double amountFrom, Double amountTo, Double vatAmountFrom, Double vatAmountTo, Double withVatAmountFrom,
                    Double withVatAmountTo, Boolean defect, DocumentDefect d, Long vatId, Integer limit, String sortField, String order, String docType) {
    
            // доступные проекты
            List projects = projectDAO.findAll(ownerId)
            
            if(!projects){
                logger.warn("Ошибка отображения списка документов: нет доступных проектов: ownerId:$ownerId")
                return []
            }
            
            Criteria criteria = currentSession.createCriteria(DocumentView)
                .createAlias("document", "d")//
                .createAlias("d.project", "p")//
                .add(Restrictions.in("p.id", projects.id))//
    
    //            if(projectId)
    //                criteria.add(Restrictions.eq("d.project.id", projectId))
    
            if (docnumber)
                criteria.add(Restrictions.ilike("docNumber", docnumber, MatchMode.ANYWHERE))
            if (ctr1)
                criteria.add(Restrictions.ilike("supplierName", ctr1, MatchMode.ANYWHERE))
            if (ctr2)
                criteria.add(Restrictions.ilike("customerName", ctr2, MatchMode.ANYWHERE))
            if (dateFrom) {
                Calendar date1 = Calendar.instance
                date1.setTime(new Date(dateFrom))
                criteria.add(Restrictions.ge("docDate", date1))
            }
            if (dateTo) {
                Calendar date1 = Calendar.instance
                date1.setTime(new Date(dateTo))
                date1.add(Calendar.DAY_OF_MONTH, 1)
                criteria.add(Restrictions.lt("docDate", date1))
            }
            if (contract)
                criteria.add(Restrictions.ilike("contract", contract, MatchMode.ANYWHERE))
            if (amountFrom)
                criteria.add(Restrictions.ge("amount", amountFrom))
            if (amountTo)
                criteria.add(Restrictions.le("amount", amountTo))
            if (vatAmountFrom)
                criteria.add(Restrictions.ge("vatAmount", vatAmountFrom))
            if (vatAmountTo)
                criteria.add(Restrictions.le("vatAmount", vatAmountTo))
            if (withVatAmountFrom)
                criteria.add(Restrictions.ge("totalAmount", withVatAmountFrom))
            if (withVatAmountTo)
                criteria.add(Restrictions.le("totalAmount", withVatAmountTo))
            if (defect) {
                criteria.add(Restrictions.isNotNull("defect"))
                if (d)
                    criteria.add(Restrictions.eq("defect", d))
            }
    //        if (vatId)
    //            criteria.add(Restrictions.eq("d.", withVatAmountTo))
    
            if (docType) {
                def dt = DocumentType.values().find { it.link == docType || it.code == docType }
                if (dt)
                    criteria.add(Restrictions.like("docLink", dt.code, MatchMode.START))
                else
                    logger.error("Неправильное значение параметра фильтрации по виду документа [d_t:$docType]. Допустимые значения ${DocumentType.values().code}")
            }
    
            // получаем общее кол-во записей без ограничений по странице
            def rowCount = criteria.setProjection(Projections.rowCount()).uniqueResult() as Integer
    
            List result = criteria.setProjection(null)//
                    .setResultTransformer(Criteria.ROOT_ENTITY)//
                    .addOrder(Order."$order"(sortField))//
                    .setMaxResults(limit)//
                    .list()
    
            [rowCount, result]
    
        }

    поиск ?!

    floppy, 20 Декабря 2013

    Комментарии (23)
  9. Pascal / Говнокод #13842

    +137

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    8. 8
    Товарищи, я прошу всех посмотреть вот этот фильм:
    
    [запрос "Расскажите сказку, доктор!" на Яндекс]
    
    Возможно, это выглядит нелепо - постить ссылку сюда, но все же, сделайте это.
    
    Этот фильм был снят через несколько дней после войны. 
    На мой взгляд, имеет огромную воспитательную ценность.

    Stertor, 21 Сентября 2013

    Комментарии (23)
  10. C++ / Говнокод #13514

    +4

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    8. 8
    9. 9
    case WM_SIZE:
    			for(i=0;i<6;i++)
    			{
    				if(RegNotifyChangeKeyValue(hTopKeys[i],TRUE,REG_NOTIFY_CHANGE_NAME|REG_NOTIFY_CHANGE_ATTRIBUTES|
    					REG_NOTIFY_CHANGE_LAST_SET|REG_NOTIFY_CHANGE_SECURITY,NULL,FALSE)==ERROR_SUCCESS)
    				{
    					MessageBox(NULL,"1","1",MB_OK);
    				}
    			}

    http://forum.shelek.ru/index.php/topic,14613.0.html

    Обратите внимание, товарищи, что у лица, создавшего сей шедевр, статус - "Опытный". Вот так и живем.

    Stertor, 30 Июля 2013

    Комментарии (23)
  11. C++ / Говнокод #13499

    +79

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    14. 14
    15. 15
    16. 16
    17. 17
    18. 18
    19. 19
    20. 20
    21. 21
    22. 22
    23. 23
    24. 24
    25. 25
    26. 26
    27. 27
    28. 28
    29. 29
    #include <iostream>
    #include <Windows.h>
    #include <iomanip>
    #include <string>
    #include <cctype>
    #include <sstream>
     
    using namespace std;
     
    void main()
    {
    SetConsoleCP(1251);
    SetConsoleOutputCP(1251);
     stringstream ss;
     int counter = 0, vvod = 0;
     char str[9];
     cout << "Введите число - ";
     cin >> vvod;
     ss << vvod;
     ss >> str;
     for(int i = 0; i < strlen(str); i++)
     {
         counter++;
     }
     cout << counter << " разрядов." << endl;
     
    cout << "\n";
    system("PAUSE");
    }

    psina-from-ua, 28 Июля 2013

    Комментарии (23)