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

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

    +2591

    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
    KeyFactory keyFactory = new KeyFactory();
    KeyObj keyObj = keyFactory.getKeyObj(wParam);
    keyObj.doStuff();
    
    
    class VK_F11 extends KeyObj {
       boolean val;
       public void doStuff() {
          val = !val;
       }
    }
    
    class VK_F12 extends KeyObj {
       boolean val;
       public void doStuff() {
          val = !val;
       }
    }
    
    class KeyFactory {
       public KeyObj getKeyObj(int param) {
          switch(param) {
             case VK_F11:
                return new VK_F11();
             case VK_F12:
                return new VK_F12();
          }
          throw new KeyNotFoundException("Key " + param + " was not found!");
       }
    }

    Казалось бы, что может быть проще работы с GPIO?

    CYB3R, 19 Августа 2016

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

    +3

    1. 1
    2. 2
    $arParams["SET_TITLE"] = $arParams["SET_TITLE"]!="N";
    $arParams["SET_LAST_MODIFIED"] = $arParams["SET_LAST_MODIFIED"]==="Y";

    news.detail - cтандартный компонент Битрикса

    pgood, 27 Июля 2016

    Комментарии (5)
  4. 1C / Говнокод #20379

    −94

    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
    Область.Параметры.месяц 	= МесяцДляГрафика;
    Область.Параметры.первое 	= ПеревестиВКалендарПредставл(ОпрДеньНедели("01", ДатаДляПечатиКалендаря));
    Область.Параметры.второе 	= ПеревестиВКалендарПредставл(ОпрДеньНедели("02", ДатаДляПечатиКалендаря));
    Область.Параметры.третье 	= ПеревестиВКалендарПредставл(ОпрДеньНедели("03", ДатаДляПечатиКалендаря));
    Область.Параметры.четвертое = ПеревестиВКалендарПредставл(ОпрДеньНедели("04", ДатаДляПечатиКалендаря));
    Область.Параметры.пятое 	= ПеревестиВКалендарПредставл(ОпрДеньНедели("05", ДатаДляПечатиКалендаря));
    Область.Параметры.шестое 	= ПеревестиВКалендарПредставл(ОпрДеньНедели("06", ДатаДляПечатиКалендаря));
    Область.Параметры.седьмое 	= ПеревестиВКалендарПредставл(ОпрДеньНедели("07", ДатаДляПечатиКалендаря));
    Область.Параметры.восьмое 	= ПеревестиВКалендарПредставл(ОпрДеньНедели("08", ДатаДляПечатиКалендаря));
    Область.Параметры.девятое 	= ПеревестиВКалендарПредставл(ОпрДеньНедели("09", ДатаДляПечатиКалендаря));
    Область.Параметры.десятое 	= ПеревестиВКалендарПредставл(ОпрДеньНедели("10", ДатаДляПечатиКалендаря));
    Область.Параметры.одиннадцатое 		= ПеревестиВКалендарПредставл(ОпрДеньНедели("11", ДатаДляПечатиКалендаря));
    Область.Параметры.двенадцатое 		= ПеревестиВКалендарПредставл(ОпрДеньНедели("12", ДатаДляПечатиКалендаря));
    Область.Параметры.тринадцатое 		= ПеревестиВКалендарПредставл(ОпрДеньНедели("13", ДатаДляПечатиКалендаря));
    Область.Параметры.четырнадцатое 	= ПеревестиВКалендарПредставл(ОпрДеньНедели("14", ДатаДляПечатиКалендаря));
    Область.Параметры.пятнадцатое 		= ПеревестиВКалендарПредставл(ОпрДеньНедели("15", ДатаДляПечатиКалендаря));
    Область.Параметры.шестнадцатое 		= ПеревестиВКалендарПредставл(ОпрДеньНедели("16", ДатаДляПечатиКалендаря));
    Область.Параметры.семнадцатое  		= ПеревестиВКалендарПредставл(ОпрДеньНедели("17", ДатаДляПечатиКалендаря));
    Область.Параметры.восемнадцатое 	= ПеревестиВКалендарПредставл(ОпрДеньНедели("18", ДатаДляПечатиКалендаря));
    Область.Параметры.девятнадцатое 	= ПеревестиВКалендарПредставл(ОпрДеньНедели("19", ДатаДляПечатиКалендаря));
    Область.Параметры.двадцатое		 	= ПеревестиВКалендарПредставл(ОпрДеньНедели("20", ДатаДляПечатиКалендаря));
    Область.Параметры.двадцатьпервое 	= ПеревестиВКалендарПредставл(ОпрДеньНедели("21", ДатаДляПечатиКалендаря));
    Область.Параметры.двадцатьвторое 	= ПеревестиВКалендарПредставл(ОпрДеньНедели("22", ДатаДляПечатиКалендаря));
    Область.Параметры.двадцатьтретье	= ПеревестиВКалендарПредставл(ОпрДеньНедели("23", ДатаДляПечатиКалендаря));
    Область.Параметры.двадцатьчетвертое = ПеревестиВКалендарПредставл(ОпрДеньНедели("24", ДатаДляПечатиКалендаря));
    Область.Параметры.двадцатьпятое 	= ПеревестиВКалендарПредставл(ОпрДеньНедели("25", ДатаДляПечатиКалендаря));
    Область.Параметры.двадцатьшестое 	= ПеревестиВКалендарПредставл(ОпрДеньНедели("26", ДатаДляПечатиКалендаря));
    Область.Параметры.двадцатьседьмое 	= ПеревестиВКалендарПредставл(ОпрДеньНедели("27", ДатаДляПечатиКалендаря));
    Область.Параметры.двадцатьвосьмое 	= ПеревестиВКалендарПредставл(ОпрДеньНедели("28", ДатаДляПечатиКалендаря));
    Попытка
    	Область.Параметры.двадцатьдевятое 	= ПеревестиВКалендарПредставл(ОпрДеньНедели("29", ДатаДляПечатиКалендаря));
    	Область.Параметры.тридцатое			= ПеревестиВКалендарПредставл(ОпрДеньНедели("30", ДатаДляПечатиКалендаря));
    	Область.Параметры.тридцатьпервое 	= ПеревестиВКалендарПредставл(ОпрДеньНедели("31", ДатаДляПечатиКалендаря));
    Исключение
    КонецПопытки;

    Выводим на печать дни недели для каждого дня месяца

    CMblCL, 14 Июля 2016

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

    0

    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
    SoftwareCommon::params::IParamLoader::TypeDb SettingsProxy::getTypeDb() const
    	{
    		try
    		{
    			auto type = Locator::Services::Locator->Resolve<ISettings^>()->Type;
    			switch (type)
    			{
    			case decltype(type)::Firebird: return IParamLoader::Firebird;
    			case decltype(type)::MSSQL: return IParamLoader::MSSQL;
    			default:
    				throw std::runtime_error("Unsupported db type");
    			}
    		}
    		catch (Exception ^ex)
    		{
    			throw std::runtime_error(marshal_1251(ex->ToString()));
    		}
    	}

    laMer007, 13 Июля 2016

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

    +2

    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
    <table>       
            <?php 
            $showShowroomsIds =  array();
            foreach($available_sizes as $sizeName):
            $available  =  false;
            foreach($warehouses as $warehouse) :
                $uuid = $warehouse['uuid'];
                $name = $warehouse['name'];
                $quantity = $size_quantity[$uuid][trim($sizeName)];
                if($quantity >0) {
                    $available  =  true;
                }
            endforeach;
            if(!$available) continue;
            ?>
            <?php
            foreach($warehouses as $warehouse) :
            $uuid = $warehouse['uuid'];
            //echo $uuid."<br>";
            
            if(isset($showrooms[$uuid])) {
                $showShowroomsIds[$uuid] = $uuid;
            }
            
            $name = $warehouse['name'];
            $quantity = $size_quantity[$uuid][trim($sizeName)];
            if($quantity) {
                $eshopAvailable = '';
                if($uuid == $eshopUuid && $quantity > 0) $eshopAvailable = 'eshop_available=\'y\'';
                $quantity  = ModelCommonWarehouse::getFormattedQuantity($quantity,$uuid);
                $qtA  =  "";
            } else {
                continue;
                $qtA  =  "not-available";
                $quantity  =  "нет в наличии";
            }
            ?>
            <tr <?php echo $eshopAvailable?> available='y'>
                <td class="td">
                    <?php if(isset($showrooms[$uuid])):?><a href="#" class="showroom-info"  uuid="<?php echo $uuid;?>" icId="uuid" rel="nofollow"><?php endif;?>
                    <?php echo $name?>
                    <!--<?php echo $uuid;?>-->
                    <?php if(isset($showrooms[$uuid])):?></a><?php endif;?>
                </td>
                <td class="qt <?php echo $qtA;?>"   ><?php echo $quantity;?></td>
            </tr>
            <?php endforeach;?>
            <tr>
                <td style="height: 10px;"></td>
            </tr>
            <?php endforeach;?>
        </table>

    Opencart. Прямо во вьюхе ровным слоем размазаны бизнес-логика и js.
    Что самое интересное, оборот магазина составляет 7 млн. руб (о__О)

    Panda, 13 Июля 2016

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

    +3

    1. 1
    session_decode(session_encode());

    что это вообще такое и зачем оно?

    kropotor, 27 Июня 2016

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

    +1

    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
    // can only do five hundred at a time. can't find documentation
        // for this number, but if I do more than that I get an error
        // message
    	for (five_hundred <- pageranks.grouped(500))
    	{
    	  try
    	  {
    	    upload(five_hundred)
    	  }
    	  catch
    	  {
    	    // the datastore is not entirely reliable. for less than 1% of the
    	    // calls it seems to fail randomly. which is a bit annoying if
    	    // you're uploading a lot of data and don't want to stop when half of
    	    // it is already stored
    	    case ex : Throwable =>
    	    {
    	      try
    	      {
    	        ex.printStackTrace()
    	        // try a second time
    	        upload(five_hundred)
    	      }
    	      catch
    	      {
    	        // don't try a third time. just continue
    	        case ex : Throwable => ex.printStackTrace()
    	      }
    	    }
    	  }
    	}

    Наткнулся на пост, в котором некий Ph. D рекламировал scala в качестве замены питону

    Fike, 09 Июня 2016

    Комментарии (5)
  9. Java / Говнокод #20122

    −4

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    8. 8
    9. 9
    Maven
    
    <dependency>
        <groupId>javax.validation</groupId>
        <artifactId>validation-api</artifactId>
        <version>1.0.0.GA</version>
        <classifier>sources</classifier>
        <scope>provided</scope>
    </dependency>

    Кто-то изобретательный прицепил исходники библиотеки к проекту таким способом, чтобы переходить к ним при разработке.

    morph, 02 Июня 2016

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

    +4

    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
    public class tcMoveDirection
    		{
    			public enum tcDirection { R, L, N };
    			static public tcDirection fromstring(string expression)
    			{
    				switch (expression)
    				{
    					case "R":
    						return tcDirection.R;
    
    					case "L":
    						return tcDirection.L;
    
    					case "N":
    						return tcDirection.N;
    
    					default: throw new InvalidCastException();
    				}
    
    			}
    
    		}

    dm_fomenok, 23 Мая 2016

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

    +6

    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
    #include <iostream>
        using namespace std;
         
        struct One
        {
          bool operator==(const One &) { cout << "hello from One!" << endl; return true; }
          bool operator==(unsigned int) { cout << "hello from One!" << endl;  return true; }
        };
        One operator "" x( unsigned long long int ) { return One{}; }
        One operator "" xMAGICK( unsigned long long int ) { return One{}; }
         
        int main()
        {
          cout << (0xMAGICK == 0x);
         
          return 0;
        }

    http://ideone.com/gGYFce
    Расширяем множество шестнадцатеричных цифр при помощи UDL
    В C++17 осталось разрешить перегрузку операторов встроенных типов - вот тогда можно будет оторваться по-полной!

    gost, 05 Мая 2016

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