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

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

    +155

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    <?php
    
    $data = file_get_contents("/path/to/photo.jpg"); // Read the file's contents
    $name = 'myphoto.jpg';
    
    force_download($name, $data);

    Я знаю конечно что это не говнокод, но последствия будут ужасными если не передать сразу же в функцию данные (т.к. PHP будет копировать содержимое дважды), представьте себе файл в 2МБ и много запросов, сервер капут в два раза быстрее.
    - https://ellislab.com/codeigniter/user-guide/helpers/download_helper.html

    volter9, 15 Сентября 2014

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

    +133

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    private void gv3_HiddenEditor(object sender, EventArgs e)
    {
    	if (cloneDt != null)
    	{
    		cloneDt = null;
    	}
    	if (cloneCt != null)
    	{
    		cloneCt = null;
    	}
    }

    Коллега в скайпе поделился говном из одного коммерческого проекта

    Smekalisty, 12 Сентября 2014

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

    +144

    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
    public static void main(String[] args) {
        int temp = 0;
        out: // label
        for (int i = 0; i < 3; ++i) {
            System.out.println("I am here");
            for (int j = 0; j < 20; ++j) {
               if(temp==0) {
                   System.out.println("j: " + j);
                    if (j == 1) {
                        temp = j;
                        continue out; // goto label "out"
                    }
                }
            }
        }
        System.out.println("temp = " + temp);
    }

    Оригинал: http://stackoverflow.com/questions/2545103/is-there-a-goto-statement-in-java

    Помнится, кто-то недавно упомянул именнованные циклы.
    Вот они и нашлись.

    Получается, что по "continue out" мы пойдём на следующую итерацию внешнего цикла, а при "break out", выйдем из внешнего цикла.
    Странно, что M$ не утянули себе такую фичу...

    TauSigma, 26 Августа 2014

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

    +158

    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
    function print_neeewwww_showall($num)
    function print_hhhooootttt_showall($num)
    function how_fuylll_on_maps()
    function how_have_errors($id)
    function pogodas()
    function nowpricesmap_seo_minus_valute($id, $text)
    function generate_info_rezult_rajon_podlist_anchor($rajon, $q, $groupid) 
    function spryagi($digit,$expr,$onlyword=false)
    function view_photos_random_and_167() 
    function search_tagsisssmenu($tag, $type_id)
    function search_tagsisssbt_for_selectgr($tag, $type_id, $minus, $css="")
    function printpodplitkefor_meeee($object_id)
    function makephoto_hot()
    function update_appartaments_to_sdan($id)
    function arenda_kvartir_v_yalte_posutochno()
    function gostinicy_yalty()
    function jile_v_yalte()
    function index_аа()
    function shlinkss()
    function fast()

    Функции.

    Uhehesh, 25 Августа 2014

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

    +139

    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
    Есть односвязный список. Каждый элемент списка содержит указатель на следующий элемент (next). 
    Нам известен указатель на первый элемент списка (root). Необходимо без использования каких-либо 
    дополнительных структур данных и без изменения структуры элементов списка определить зациклен ли данный список.
    
    Ответ
    
    public static boolean isCycleList(Item root){ 
            Item first = root;     
            while(first.getNext() != null){ 
                Item subFirst = root; 
                do { 
                    if (subFirst == first.getNext()) 
                        return true; 
                    subFirst = subFirst.getNext(); 
                } 
                while (subFirst != first.getNext());         
                first = first.getNext(); 
            } 
            return false; 
        }

    kegdan, 05 Августа 2014

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

    +28

    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
    TLSOSI7Command &TLSLongTelegram::GetOSI7Command () const
    {
       if(!m_pOSI7Command) { // private pointer not initialized
                  // WARNING! Quick'n'dirty! is UNINITIALIZED althoug it should be - just for preventing abnormal end!
                  const_cast<TLSOSI7Command*>(m_pOSI7Command)=new TLSOSI7Command;
       } // private pointer not initialized
       else 
       { 
                 // NOT private pointer not initialized
       }; 
       // NOT private pointer not initialized
       return *m_pOSI7Command;
    }

    m)

    blackhearted, 14 Июля 2014

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

    +150

    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
    function email($from, $to, $subject, $message)
    {
    	$ci =& get_instance();
    	
    	$config['mailtype'] = 'html';
    	$ci->load->library('email', $config);
    
    	$ci->email->clear();
    	$ci->email->from($from);
    	$ci->email->to($to);  
    	$ci->email->subject($subject);
    	$ci->email->message($message); 
    	$ci->email->send();
    }

    iweb, 12 Июля 2014

    Комментарии (21)
  9. C# / Говнокод #16130

    +131

    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
    public int stream;
            public override string ToString()
            {
                return group_name + teacher_name + " " + discipline_name + " " + discipline_type + " " + stream.ToString();
            }
            public override int GetHashCode()
            {
                return stream;
            }
            public override bool Equals(object obj)
            {
                try
                {
                    stream = Convert.ToInt32(obj.ToString());
                }
                catch { }
                return false;
            }

    Есть класс, который принимает список производных только от object классов. Необходимо было запихнуть в него мой класс и пошаманить над переменной stream. Дальше я думаю комментарии не требуются.

    GreatMASTERcpp, 09 Июня 2014

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

    +161

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    $useragent=$_SERVER['HTTP_USER_AGENT'];
     
    if(preg_match('/android|avantgo|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)/|plucker|pocket|psp|symbian|treo|up.(browser|link)|vodafone|wap|windows (ce|phone)|xda|xiino/i',$useragent)||preg_match('/1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw-(n|u)|c55/|capi|ccwa|cdm-|cell|chtm|cldc|cmd-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc-s|devi|dica|dmob|do(c|p)o|ds(12|-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(-|_)|g1 u|g560|gene|gf-5|g-mo|go(.w|od)|gr(ad|un)|haie|hcit|hd-(m|p|t)|hei-|hi(pt|ta)|hp( i|ip)|hs-c|ht(c(-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i-(20|go|ma)|i230|iac( |-|/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |/)|klon|kpt |kwc-|kyo(c|k)|le(no|xi)|lg( g|/(k|l|u)|50|54|e-|e/|-[a-w])|libw|lynx|m1-w|m3ga|m50/|ma(te|ui|xo)|mc(01|21|ca)|m-cr|me(di|rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|-([1-8]|c))|phil|pire|pl(ay|uc)|pn-2|po(ck|rt|se)|prox|psio|pt-g|qa-a|qc(07|12|21|32|60|-[2-7]|i-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55/|sa(ge|ma|mm|ms|ny|va)|sc(01|h-|oo|p-)|sdk/|se(c(-|0|1)|47|mc|nd|ri)|sgh-|shar|sie(-|m)|sk-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h-|v-|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl-|tdg-|tel(i|m)|tim-|t-mo|to(pl|sh)|ts(70|m-|m3|m5)|tx-9|up(.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|xda(-|2|g)|yas-|your|zeto|zte-/i',substr($useragent,0,4))) {
            header("Location: http://mywebsite.com/mobile"); }
    else{
            header("Location: http://mywebsite.com/des");
    }

    Враг не пройдет

    kostoprav, 12 Мая 2014

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

    −166

    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
    Функция ЭтоБуква(Буква)
                    Возврат Найти("еоатинркулмДСвПдОсКцчыгзпбТНИьБФхВяРАЗЭйУЕГМЦжщЙШЩЫЛЯЧЬХЪЖЮЁёшъфэюQWERTYUIOPASDFGHJKLZXCVBNMqwertyuiopasdfghjklzxcvbnm", Буква) > 0;
    КонецФункции
     
    Функция ЭтоЦифра(Буква)
     
                    Возврат Найти("1234567890", Буква)>0;
     
    КонецФункции // ЭтоЦифра()
     
    Функция ЭтоБукваИлиЦифра(Символ)
     
                    Возврат Найти("еоатинркулмДСвПдОсКцчыгзпбТНИьБФхВяРАЗЭйУЕГМЦжщЙШЩЫЛЯЧЬХЪЖЮЁёшъфэюQWERTYUIOPASDFGHJKLZXCVBNMqwertyuiopasdfghjklzxcvbnm1234567890", Символ) > 0;
     
    КонецФункции // ЭтоБукваИлиЦифра()

    Из типовой конфигурации БГУ 2.0.
    На первый взгляд реализация забавна :-) Но, в общем-то, это не является говнокодом: просмотрев в гугле различные "рейтинги букв", получил примерно то же самое.
    Тем не менее, можно решить вопрос с помощью проверки кода символа.

    Voittamaton, 01 Мая 2014

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