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

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

    +164

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    <?php
     $Options = file("OPTIONS.txt");
     foreach ($Options as $opt)
            {
            $opt = trim($opt);
            eval("$".$opt.";");
            }

    qbasic, 28 Февраля 2011

    Комментарии (24)
  3. JavaScript / Говнокод #5786

    +165

    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
    function get_sel_values(index){
                    var test = eval('typeof opt_val'+index);
                    if ( test != 'undefined' ){
                      eval('var sel_values = opt_val'+index);
                      return sel_values;
                    }
        else { return false; }
    }
    //**************************************************************
    function get_sel_text(index){
                    var test = eval('typeof opt_text'+index); 
                    if ( test != 'undefined' ){
                      eval('var sel_text = opt_text'+index);
                      return sel_text;
                    }
        else { return false; }              
    }
    //**************************************************************
    function show_select(index, lev, dv){
        if ( dv == 'jdc1'){ var tr = "jdc2";}
        if ( dv == 'jdc2'){ var tr = "jdc3";}
        if ( dv == 'jdc3'){ var tr = "jdc4";}
        var curr_sel_text = get_sel_text(index);
        var curr_sel_value = get_sel_values(index);
                    if ( curr_sel_value != false && curr_sel_text != false ){
          if ( dv == 'jdc1'){
            document.getElementById('jdc1').style.visibility = "visible";
            document.getElementById('jdc2').style.visibility = "hidden";
            document.getElementById('jdc3').style.visibility = "hidden";
            document.getElementById('jdc4').style.visibility = "hidden";
                              document.forms["form1"].elements['cc2'].length = 0;
                              document.forms["form1"].elements['cc3'].length = 0;
                              document.forms["form1"].elements['cc4'].length = 0;
                      }
          if ( dv == 'jdc2'){
            document.getElementById('jdc1').style.visibility = "visible";
            document.getElementById('jdc2').style.visibility = "visible";
            document.getElementById('jdc3').style.visibility = "hidden";
            document.getElementById('jdc4').style.visibility = "hidden";
                              document.forms["form1"].elements['cc3'].length = 0;
                              document.forms["form1"].elements['cc4'].length = 0;
                      }
          if ( dv == 'jdc3'){
            document.getElementById('jdc1').style.visibility = "visible";
            document.getElementById('jdc2').style.visibility = "visible";
            document.getElementById('jdc3').style.visibility = "visible";
            document.getElementById('jdc4').style.visibility = "hidden";
                              document.forms["form1"].elements['cc4'].length = 0;
                      }
          var count_values = curr_sel_value.length;
          var category_list = document.forms["form1"].elements[lev];
          var count_category_list = category_list.options.length;
          category_list.length = 0; 
          for (i = 0; i < count_values; i++){
            if (document.createElement){
                var newCategoryListOption = document.createElement("OPTION");
                newCategoryListOption.text = curr_sel_text[i];
                newCategoryListOption.value = curr_sel_value[i];
                (category_list.options.add) ? category_list.options.add(newCategoryListOption) : category_list.add(newCategoryListOption);
            }else{
                category_list.options[i] = new Option(curr_sel_text[i], curr_sel_value[i], false, false);
            }
          }
          document.getElementById(tr).style.visibility = "visible";
              }
                    else{
          document.getElementById(tr).style.visibility = "hidden";
                    }
      }
    //-->

    qbasic, 23 Февраля 2011

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

    +146

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    class GridPanel extends JPanel {
    
      protected Point myLocation;
    
      @Override
      public Point location() {
        return this.myLocation;
      }
    
      }

    убивал бы за такое.

    Lure Of Chaos, 07 Февраля 2011

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

    +159

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    8. 8
    9. 9
    std::ostringstream s;
    for( std::list< Candidate* >::iterator it = order_by_priority.begin(); 
    		it != order_by_priority.end(); ){
    	s << (*it)->id << "/" << priorityDesc((*it)->priority());
    	it++;
    	if( it!= order_by_priority.end() )
    		s << ", ";
    }
    return s.str();

    Странное обращение с циклом for.

    panter_dsd, 04 Февраля 2011

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

    +118

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    public class TWriteableForEach
    	{
    		public delegate void TForEachDelegate<TItem>(TItem item);
    
    		public static void Exec<TItem>(IList<TItem> itemsCollection, TForEachDelegate<TItem> forEachDelegate)
    		{
    			for (int i = 0; i < itemsCollection.Count(); ++i)
    				forEachDelegate(itemsCollection[i]);
    		}
    	} ;

    Велосипед с квадратными колёсами?

    Говногость, 03 Февраля 2011

    Комментарии (24)
  7. ActionScript / Говнокод #5334

    −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
    20. 20
    21. 21
    22. 22
    23. 23
    24. 24
    25. 25
    private function formatCallResult(data : String) : URLVariables 
    {
    	try
    	{
    		var urlVariables 	: URLVariables  = new URLVariables(data);
    		MonsterDebugger.trace(this,[urlVariables.msgdesc,urlVariables.msgbody]);
    		var pattern			: RegExp 		= /\[s](.+)\[\/s\]/ig  //*new RegExp("\\[s\\]([\\w\\s]+)\\[/s\\]", "ig");*/
    		var msgdescReady	: String 		= urlVariables.msgdesc.replace(pattern, "<b>$1</b>");
    		var msgbodyReady	: String 		= urlVariables.msgbody.replace(pattern, "<b>$1</b>");
    		var pattern2		: RegExp 		= /\[n](.+)\[\/n\]/ig;
    		//TODO Write nice regexp instead !
    		urlVariables.msgdesc = msgdescReady;				
    		urlVariables.msgbody = msgbodyReady;
    		msgdescReady 		= urlVariables.msgdesc.replace(pattern2, "<b>$1</b>");	
    		msgbodyReady 		= urlVariables.msgbody.replace(pattern2, "<b>$1</b>");	
    		urlVariables.msgdesc = msgdescReady;				
    		urlVariables.msgbody = msgbodyReady;				
    		MonsterDebugger.trace(this,[urlVariables.msgdesc,urlVariables.msgbody]);
    	}
    	catch (e : Error)
    	{
    		
    	}
    	return urlVariables;
    }

    Я уже минут 10 силюсь понять, что же оно должно было делать...

    wvxvw, 19 Января 2011

    Комментарии (24)
  8. SQL / Говнокод #5321

    −858

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    FUNCTION get_yesterday
          RETURN DATE
       AS
          dd   VARCHAR2 (2);
          mm   VARCHAR2 (2);
          yy   VARCHAR2 (4);
       BEGIN
          SELECT TO_CHAR (SYSDATE - 1, 'yyyy')
            INTO yy
            FROM DUAL;
       END get_yesterday;

    Вычисляем вчерашнюю дату на PL/SQL

    mshogin, 18 Января 2011

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

    +74

    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
    @Name("solr")
    @AutoCreate
    public class SolrClient {
        @Create
        public void init() {
            try {
                server = startRemoteSolr();
            } catch (Exception e) {
                log.error(e, e);
            }
        }
    
        public SolrServer startRemoteSolr() throws MalformedURLException, SolrServerException {
            CommonsHttpSolrServer solr = new CommonsHttpSolrServer("http://localhost:8983/solr");
            solr.setRequestWriter(new BinaryRequestWriter());
            return solr;
        }
    
    }

    Seam. Перевод для непричастного: на старте сайта вызывается метод startRemoteSolr(). Solr - это поисковый движок. Если он не запустится, на сайте не будет работать поиск. И если на запуске Solr будет ошибка, то в лог она попадёт просто как exception + stack trace.

    Что не так в коде? Очевидно, его писали люди, не задумываясь об эксплуатации, что свойственно новичкам. А ведь устранение проблем в рабочем сайте - это приоритет номер один. Сама разработка сайта, сидя в удобном кресле с кашкой кофе - где-то сильно ниже.

    Так вот, что не так?

    1. При выводе ошибок надо писать - что это за ошибка. В данном случае: "Запуск поисковика неудался, ПОИСК НА САЙТЕ РАБОТАТЬ НЕ БУДЕТ." И уже потом - stack trace.

    2. Если некая ошибка связана с ресурсами - сетевыми, или на файловой системе, в логе надо также описывать этот ресурс. Т.е. "Не удалось запустить клиент поисковика по адресу http://localhost:8983/solr". Что бы из логов сразу было видно, что порт указан правильно или нет, хост и тд.

    Но выпускникам ВМК МГУ такие вещи неведомы, они слишком крутые что бы опускаться до таких мелочей. Чайники, хуле.

    yvu, 12 Января 2011

    Комментарии (24)
  10. PHP / Говнокод #5153

    +160

    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
    <?
    $ux=0; 
    $array = file( 'logins.TXT' );
    $count = count( $array );
    for ( $i = 0; $i < $count; $i++ )
    {
        If (trim($array[$i],"\n\r")==$Text1.$Password1) {$ux=1;};}
    If ($ux==0) {
    header('Location: index1.html');}
    If ($ux==1) {$logins=$Text1;
    $formers=<<<HERE
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
    <title>Перенаправление</title>
    <script language="JavaScript">
    var seconds=3;
    remain();
    function remain(){
    seconds--;
    document.timer.clock.value=seconds;
    if(seconds>0)
    {window.setTimeout('remain()',3000)}
    else
    {
    location.replace("insystem/1.php");}
    }
     
    </script>
    </head>
     
    <body onLoad="remain()">
    <p>Вы авторизированы!!! Сейчас вы будите перенаправлены в систему. Щёлкните по ссылке, если ваш браузер не поддерживает автопереадресацию.</p>
    <p><a href="insystem/insystem.php">Ссылка</a></p>
    <p>Через 3секунды переход произойдет автоматически.</p>
    <form action="" method="get" name="timer">
    Переадресация через:
    <input name="clock" type="text" size=2> 
    секунд
    </form>
    <form action="insystem/1.php" method="post">
    <input type="hidden"
    name="logint"
    value="$logins">
    </form>
    </body>
    </html>
    HERE;
    echo $formers;
    print $logint;}
    ?>

    qbasic, 05 Января 2011

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

    +129

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    Exception Myex;
                    int responseVal = HelperMethods.DoPost(url, postdata, "text/xml; charset=utf-8", ref xmlResponse, null, out Myex);
                    XmlDocument xmlDoc = new XmlDocument();
                    xmlDoc.Load(new StringReader(xmlResponse));
    
                    string StatusID = xmlDoc.ChildNodes[1].ChildNodes[0].FirstChild.Value;
                    if (StatusID.ToLower() != "0")

    Последняя строка не может не радовать. Никогда не знаешь каким большим может быть ноль ...

    Othello, 03 Января 2011

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