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

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

    +145

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    8. 8
    9. 9
    function myscandir($dir){
    	if(!file_exists($dir)){
    		return false;
    	}
    
        $list = scandir($dir);
        unset($list[0],$list[1]);
        return array_values($list);
    }

    taras_shs, 31 Октября 2014

    Комментарии (26)
  3. Pascal / Говнокод #16947

    +94

    1. 1
    2. 2
    fisher(Sender);//fisher
    macd(Sender);//macd

    Буква "С" - Содержательные комментарии.

    Практически единственные комменты в программе на 7000 строк.

    hardreset, 27 Октября 2014

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

    +55

    1. 1
    2. 2
    // Извиняюсь, но кода не будет, только ссылка.
    // https://github.com/fruxo/turbobadger

    >> With compilers supporting C+ + 11
    Вот лично против либы ничего не имею - годная получилась. Но..
    Аффтар заучил nullptr, и считает что теперь он использует c++11.
    Епт, да эта либа спокойно собирается под vc2008, стоит только задефайнить nullptr как 0.

    Pythoner, 16 Октября 2014

    Комментарии (26)
  5. bash / Говнокод #16780

    −107

    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
    ...
    %install
    %{__rm} -rf %{buildroot}
    mkdir -m 755 -p %{buildroot}%{_datadir}/common-lisp/source/%{name}
    for s in $(find -regex '.+\.\(lisp\|asd\|org\)$'); do
      install -D -m 644 $s %{buildroot}%{_datadir}/common-lisp/source/%{name}
    done;
    mkdir -m 755 -p %{buildroot}/etc/common-lisp/source-registry.conf.d
    for las_conf in $(ls %{buildroot}/etc/common-lisp/source-registry.conf.d | tail -n 1); do
        for last in $(echo "${last_conf}" | grep -oP '^[0-9]+'); do
            for cl_prefix in $(echo "${last}+1" | bc); do
                echo '(:include "/usr/share/common-lisp/source/%{name}/")' > \
    	            "%{buildroot}/etc/common-lisp/source-registry.conf.d/${cl_prefix}-%{name}.conf"
                install -m 644 ${cl_prefix}-%{name}.conf %{buildroot}/etc/common-lisp/source-registry.conf.d
            done;
        done;
    done;
    
    %files
    %defattr(-,root,root,-)
    %{_datadir}/common-lisp/source/%{name}/*
    ...

    И ведь что показательно, работает!

    Вот просто не предать словами, как я это ненавижу. Менеджер пакетов завдующий установкой ПО написан на Питоне, но нельзя просто так взять и на Питоне же написать установочный скрипт. Надо горбатится над каким-то недоязыком с феноменально шизофреничными макросами полным отсутствием каких-либо высокоуровневых инструментов, типа структур и интерфейсов...

    wvxvw, 30 Сентября 2014

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

    +163

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    class this {
    
    public function this()
        {
    	  $this->this[$this] !==  $this->this();
       }
    }

    zadrot, 20 Сентября 2014

    Комментарии (26)
  7. 1C / Говнокод #16674

    −165

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    8. 8
    Попытка
    	ДокО.Записать();
    Исключение
     	Попытка
    		ДокО.Записать();
    	Исключение
    	КонецПопытки;	
    КонецПопытки;

    а вдруг!

    alexinzaz, 10 Сентября 2014

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

    +118

    1. 1
    protected static final float PI_2 = (float)(Math.PI / 2.0);

    someone, 09 Сентября 2014

    Комментарии (26)
  9. PHP / Говнокод #16060

    +155

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    8. 8
    9. 9
    /**
     * Returns the number of rows affected by the last query
     *
     * @return int
     */
    public function getAffectedRowCount($result)
    {
    	return mysqli_affected_rows($this->getDatabase());
    }

    SugarCRM. Стоит от $35/месяц на одного пользователя.

    Понимаю когда такое встречатеся в стартапах, но когда ты просишь за свой продукт деньги и деньги не малые, то выпускать такое в продакшен... Лично я бы постеснялся.

    VanSanblch, 27 Мая 2014

    Комментарии (26)
  10. JavaScript / Говнокод #16018

    +154

    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
    (function () {
    
        if (location.pathname === "/") {
            document.body.id = 'front-page';
        }
        else {
            var path = window.location.pathname.replace('/index.php/', ''),
                splittedPath = path.split('/') || ['', ''],
                category = splittedPath[0],
                subcategory = '';
    
            for (var i = 1; i < splittedPath.length; i++) {
                subcategory += ('-' + splittedPath[i]);
            }
    
            if (category && (typeof category === 'string')) {
                document.body.classList.add('page-' + category);
            }
    
            if (subcategory && (typeof subcategory === 'string')) {
                document.body.classList.add('page-' + subcategory.replace(/^[-]/, ''));
            }
        }
    
    })();

    Сей замысловатый код призван добавить уникальный класс в body для каждой страницы прямо из урла. Предназначалось в качестве костыля для джумлы, так как через пых не работало, а разбираться никто не стал :)

    DrDre, 19 Мая 2014

    Комментарии (26)
  11. PHP / Говнокод #15941

    +156

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    8. 8
    $server = json_decode("{".base64_decode(base64_decode($value))."}");
    
    $name = urldecode($name);
    $path = $uploadFolder . DIRECTORY_SEPARATOR . base64_encode(base64_encode($name));
    
    $cont[$i]->reference = base64_encode(htmlspecialchars(stripslashes(base64_decode($cont[$i]->ref)), ENT_QUOTES));
    
    $value = addslashes(stripslashes(htmlspecialchars(preg_replace("/\'/ui", "", $e["value"]))));

    Код одного из проектов крупной хостинговой компании.

    mckolan, 08 Мая 2014

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