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

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

    −117

    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
    declare
      v_bonus_account NUMBER;
      v_MSISDN VARCHAR2(32);
      l_app NUMBER;
      v_Result NUMBER;
      v_Message VARCHAR2(2000);
      var_MSISDN VARCHAR2(32);
      v_Event VARCHAR2(32);
      v_Amount NUMBER;
      o_err VARCHAR2(2000);
    BEGIN
      /* Activate service */ 
      v_Result := wpt.bp_services.add_service
      ( i_app => v_MSISDN,
      i_srv => 400714,
      o_err => v_Message,
      to_date('30/12/2012','DD/MM/YYYY')
      );
    END;

    Локализовал код, вызывающий функцию биллинга у арабов, предложенный ими же. И который не компилится.
    В ответ получаю кучу дописок с вызовами других функций, которые ко всему этому не имеют никакого отношения.
    Как убедить пидарасов в том, что ошибки компиляции и ошибки времени исполнения - это как бы совсем разные вещи?
    А то третья неделя уже идёт...

    SadKo, 26 Ноября 2012

    Комментарии (12)
  3. bash / Говнокод #12198

    −108

    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
    # For bash and ksh, we can use faster builtin routines to do manipulation,
    # otherwise (ash) fall back to slower method using `expr'.
    # The extra level of indirection using `eval' is necessary a) for ksh, and
    # b) to get past ash.
    
    if [ "$RANDOM" != "$RANDOM" ]
    then
        math () {
            eval echo "\$(($*))"
        }
        index () {  # index string c
            eval "I=\${1%$2*}"
            eval echo "\${#I}"
        }
        ...
    else
        math () {
            expr "$@"
        }
        index () {  # index string c
            expr $1 : ".*$2" - 1
        }
        ...
    fi

    Отличный способ определения шелла из старослакварского /dev/MAKEDEV.

    bormand, 26 Ноября 2012

    Комментарии (12)
  4. Java / Говнокод #12175

    +72

    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
    public void load()
    	{
    		for(Language lang : Language.VALUES)
    		{
    			strings.put(lang, new HashMap<String, String>());
    
    			File f = new File(Config.DATAPACK_ROOT, "data/string/strings_" + lang.getShortName() + ".properties");
    			if(!f.exists())
    			{
    				log.warn("Not find file: {}", f.getAbsolutePath());
    				continue;
    			}
    
    			LineNumberReader reader = null;
    			try
    			{
    				reader = new LineNumberReader(new FileReader(f));
    				String line = null;
    
    				while((line = reader.readLine()) != null)
    				{
    					if(line.startsWith("#"))
    						continue;
    
    					StringTokenizer token = new StringTokenizer(line, "=");
    					if(token.countTokens() < 2)
    					{
    						log.error("Error on line: " + line + "; file: " + f.getName());
    						continue;
    					}
    
    					String name = token.nextToken();
    					String value = token.nextToken();
    					while(token.hasMoreTokens())
    						value += "=" + token.nextToken();
    
    					Map<String, String> strings = this.strings.get(lang);
    
    					strings.put(name, value);
    				}
    			}
    			catch(Exception e)
    			{
    				log.error("Exception: " + e, e);
    			}
    			finally
    			{
                    try
                    {
                        reader.close();
                    }
                    catch(Exception e)
                    {
                        log.error("Cannot close reader", e);
                    }
    			}
    		}
    
    		log();
    	}

    java.util.Properties? Нет, не слышали :)

    EvSpirit, 22 Ноября 2012

    Комментарии (12)
  5. Python / Говнокод #12173

    −107

    1. 1
    type<bool> str;

    http://ideone.com/Y8TP08
    Мы с коллегой обнаружили возможность писать шаблоны на пайтоне. Первым делом написали шаблонную фабрику.

    serpinski, 22 Ноября 2012

    Комментарии (12)
  6. 1C / Говнокод #12146

    −117

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    Часто проскальзывают темы, что 1С часто отказывает в монадах.
    Я вот этого вообще не понимаю, как такое может выглядеть???
    Я со своей восьмёрочкой 2 года, в любой момент, когда я захочу монад, он будет.
    Если он скажет, нет, я не хочу, я показываю ему С++, показываю что я недоволен и говорю, почему ты не хочешь монаду?
    Ты любишь кресты? Когда монады встречаются в 1С, они должны преобразовываться по первому же желанию программиста.

    serpinski, 17 Ноября 2012

    Комментарии (12)
  7. Java / Говнокод #12129

    +141

    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
    public static Object[] createArray(Object arg0, Object arg1, Object arg2, Object arg3, Object arg4, Object arg5, Object arg6, Object arg7, Object arg8, Object arg9, Object arg10, Object arg11, Object arg12, Object arg13, Object arg14, Object arg15, Object arg16, Object arg17, Object arg18, Object arg19, Object arg20, Object arg21, Object arg22, Object arg23, Object arg24, Object arg25, Object arg26, Object arg27, Object arg28, Object arg29, Object arg30) {
            return new Object[]{
                    arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11, arg12, arg13, arg14, arg15, arg16, arg17, arg18, arg19, arg20, arg21, arg22, arg23, arg24, arg25, arg26, arg27, arg28, arg29, arg30};
        }
    
        public static Object[] createArray(Object arg0, Object arg1, Object arg2, Object arg3, Object arg4, Object arg5, Object arg6, Object arg7, Object arg8, Object arg9, Object arg10, Object arg11, Object arg12, Object arg13, Object arg14, Object arg15, Object arg16, Object arg17, Object arg18, Object arg19, Object arg20, Object arg21, Object arg22, Object arg23, Object arg24, Object arg25, Object arg26, Object arg27, Object arg28, Object arg29, Object arg30, Object arg31) {
            return new Object[]{
                    arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11, arg12, arg13, arg14, arg15, arg16, arg17, arg18, arg19, arg20, arg21, arg22, arg23, arg24, arg25, arg26, arg27, arg28, arg29, arg30, arg31};
        }
    
        public static Object[] createArray(Object arg0, Object arg1, Object arg2, Object arg3, Object arg4, Object arg5, Object arg6, Object arg7, Object arg8, Object arg9, Object arg10, Object arg11, Object arg12, Object arg13, Object arg14, Object arg15, Object arg16, Object arg17, Object arg18, Object arg19, Object arg20, Object arg21, Object arg22, Object arg23, Object arg24, Object arg25, Object arg26, Object arg27, Object arg28, Object arg29, Object arg30, Object arg31, Object arg32) {
            return new Object[]{
                    arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11, arg12, arg13, arg14, arg15, arg16, arg17, arg18, arg19, arg20, arg21, arg22, arg23, arg24, arg25, arg26, arg27, arg28, arg29, arg30, arg31, arg32};
        }
    
        public static Object[] createArray(Object arg0, Object arg1, Object arg2, Object arg3, Object arg4, Object arg5, Object arg6, Object arg7, Object arg8, Object arg9, Object arg10, Object arg11, Object arg12, Object arg13, Object arg14, Object arg15, Object arg16, Object arg17, Object arg18, Object arg19, Object arg20, Object arg21, Object arg22, Object arg23, Object arg24, Object arg25, Object arg26, Object arg27, Object arg28, Object arg29, Object arg30, Object arg31, Object arg32, Object arg33) {
            return new Object[]{
                    arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11, arg12, arg13, arg14, arg15, arg16, arg17, arg18, arg19, arg20, arg21, arg22, arg23, arg24, arg25, arg26, arg27, arg28, arg29, arg30, arg31, arg32, arg33};
        }
    
        public static Object[] createArray(Object arg0, Object arg1, Object arg2, Object arg3, Object arg4, Object arg5, Object arg6, Object arg7, Object arg8, Object arg9, Object arg10, Object arg11, Object arg12, Object arg13, Object arg14, Object arg15, Object arg16, Object arg17, Object arg18, Object arg19, Object arg20, Object arg21, Object arg22, Object arg23, Object arg24, Object arg25, Object arg26, Object arg27, Object arg28, Object arg29, Object arg30, Object arg31, Object arg32, Object arg33, Object arg34) {
            return new Object[]{
                    arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11, arg12, arg13, arg14, arg15, arg16, arg17, arg18, arg19, arg20, arg21, arg22, arg23, arg24, arg25, arg26, arg27, arg28, arg29, arg30, arg31, arg32, arg33, arg34};
        }

    Отменный говнокод http://svn.codehaus.org/groovy/trunk/groovy/groovy-core/src/main/org/codehaus/groovy/runtime/ArrayUtil.java

    betastat, 15 Ноября 2012

    Комментарии (12)
  8. PHP / Говнокод #12103

    +65

    1. 1
    $query = $this->db->query("SELECT DISTINCT *, pd.name AS name, p.image, m.name AS manufacturer, (SELECT price FROM " . DB_PREFIX . "product_discount pd2 WHERE pd2.product_id = p.product_id AND pd2.customer_group_id = '" . (int)$customer_group_id . "' AND pd2.quantity = '1' AND ((pd2.date_start = '0000-00-00' OR pd2.date_start < NOW()) AND (pd2.date_end = '0000-00-00' OR pd2.date_end > NOW())) ORDER BY pd2.priority ASC, pd2.price ASC LIMIT 1) AS discount, (SELECT price FROM " . DB_PREFIX . "product_special ps WHERE ps.product_id = p.product_id AND ps.customer_group_id = '" . (int)$customer_group_id . "' AND ((ps.date_start = '0000-00-00' OR ps.date_start < NOW()) AND (ps.date_end = '0000-00-00' OR ps.date_end > NOW())) ORDER BY ps.priority ASC, ps.price ASC LIMIT 1) AS special, (SELECT points FROM " . DB_PREFIX . "product_reward pr WHERE pr.product_id = p.product_id AND customer_group_id = '" . (int)$customer_group_id . "') AS reward, (SELECT ss.name FROM " . DB_PREFIX . "stock_status ss WHERE ss.stock_status_id = p.stock_status_id AND ss.language_id = '" . (int)$this->config->get('config_language_id') . "') AS stock_status, (SELECT wcd.unit FROM " . DB_PREFIX . "weight_class_description wcd WHERE p.weight_class_id = wcd.weight_class_id AND wcd.language_id = '" . (int)$this->config->get('config_language_id') . "') AS weight_class, (SELECT lcd.unit FROM " . DB_PREFIX . "length_class_description lcd WHERE p.length_class_id = lcd.length_class_id AND lcd.language_id = '" . (int)$this->config->get('config_language_id') . "') AS length_class, (SELECT AVG(rating) AS total FROM " . DB_PREFIX . "review r1 WHERE r1.product_id = p.product_id AND r1.status = '1' GROUP BY r1.product_id) AS rating, (SELECT COUNT(*) AS total FROM " . DB_PREFIX . "review r2 WHERE r2.product_id = p.product_id AND r2.status = '1' GROUP BY r2.product_id) AS reviews, p.sort_order FROM " . DB_PREFIX . "product p LEFT JOIN " . DB_PREFIX . "product_description pd ON (p.product_id = pd.product_id) LEFT JOIN " . DB_PREFIX . "product_to_store p2s ON (p.product_id = p2s.product_id) LEFT JOIN " . DB_PREFIX . "manufacturer m ON (p.manufacturer_id = m.manufacturer_id) WHERE p.product_id = '" . (int)$product_id . "' AND pd.language_id = '" . (int)$this->config->get('config_language_id') . "' AND p.status = '1' AND p.date_available <= NOW() AND p2s.store_id = '" . (int)$this->config->get('config_store_id') . "'");

    Opencart, catalog/model/catalog/product.php

    Они что издеваются? А я-то думаю что у меня ложит mysql сервер на колени...

    fooser, 12 Ноября 2012

    Комментарии (12)
  9. JavaScript / Говнокод #11963

    +151

    1. 1
    var ext = /.+[.](jpg|JPG|gif|GIF|bmp|BMP|png|PNG|jpeg|JPEG)$/;

    Stallman, 20 Октября 2012

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

    +140

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    var actions = new List<Action>();
    foreach (var i in Enumerable.Range(1, 3))
    {
        actions.Add(() => Console.WriteLine(i));
    }
    
    foreach (var action in actions)
    {
        action();
    }

    Внезапно:
    http://ideone.com/RaiHr
    http://ideone.com/EMQBA

    LispGovno, 17 Октября 2012

    Комментарии (12)
  11. Куча / Говнокод #11844

    +134

    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
    .events-bx-calendar .calendar-wrapper .calendar .days #day_1,
    .events-bx-calendar .calendar-wrapper .calendar .days #day_2,
    .events-bx-calendar .calendar-wrapper .calendar .days #day_3,
    .events-bx-calendar .calendar-wrapper .calendar .days #day_4,
    .events-bx-calendar .calendar-wrapper .calendar .days #day_5,
    .events-bx-calendar .calendar-wrapper .calendar .days #day_6,
    .events-bx-calendar .calendar-wrapper .calendar .days #day_7,
    .events-bx-calendar .calendar-wrapper .calendar .days #day_8,
    .events-bx-calendar .calendar-wrapper .calendar .days #day_9,
    .events-bx-calendar .calendar-wrapper .calendar .days #day_10,
    .events-bx-calendar .calendar-wrapper .calendar .days #day_11,
    .events-bx-calendar .calendar-wrapper .calendar .days #day_12,
    .events-bx-calendar .calendar-wrapper .calendar .days #day_13,
    .events-bx-calendar .calendar-wrapper .calendar .days #day_14,
    .events-bx-calendar .calendar-wrapper .calendar .days #day_15,
    .events-bx-calendar .calendar-wrapper .calendar .days #day_16,
    .events-bx-calendar .calendar-wrapper .calendar .days #day_17,
    .events-bx-calendar .calendar-wrapper .calendar .days #day_18,
    .events-bx-calendar .calendar-wrapper .calendar .days #day_19,
    .events-bx-calendar .calendar-wrapper .calendar .days #day_20,
    .events-bx-calendar .calendar-wrapper .calendar .days #day_21,
    .events-bx-calendar .calendar-wrapper .calendar .days #day_22,
    .events-bx-calendar .calendar-wrapper .calendar .days #day_23,
    .events-bx-calendar .calendar-wrapper .calendar .days #day_24,
    .events-bx-calendar .calendar-wrapper .calendar .days #day_25,
    .events-bx-calendar .calendar-wrapper .calendar .days #day_26,
    .events-bx-calendar .calendar-wrapper .calendar .days #day_27,
    .events-bx-calendar .calendar-wrapper .calendar .days #day_28,
    .events-bx-calendar .calendar-wrapper .calendar .days #day_29,
    .events-bx-calendar .calendar-wrapper .calendar .days #day_30,
    .events-bx-calendar .calendar-wrapper .calendar .days #day_31 { padding: 5px 3px; }

    Un1oR, 27 Сентября 2012

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