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

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

    −116

    1. 1
    2. 2
    DATEADD(day,DATEPART(day, DATEADD(s,-1,DATEADD(mm, DATEDIFF(m,0,DATEADD(d,
    (day(EndDate)-1)*-1,EndDate))+1,0)))-1,DATEADD(d,(day(EndDate)-1)*-1,EndDate))

    Вот так в M$ SQL вычисляют последний день месяца.

    http://govnokod.ru/15606#comment223642

    bormand, 01 Апреля 2014

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

    +159

    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
    window.checkPluginVersion = function(id, version) {
        if (!(plugin(id) && plugin(id).valid)) return false;
        var plugin_version = plugin(id).version.split('.');
        var portal_version = version.split('.');
        if (isNaN(parseInt(plugin_version[0]))) return false;
        if (isNaN(parseInt(plugin_version[1]))) return false;
        if (isNaN(parseInt(plugin_version[2]))) return false;
        if (isNaN(parseInt(portal_version[0]))) return false;
        if (isNaN(parseInt(portal_version[1]))) return false;
        if (isNaN(parseInt(portal_version[2]))) return false;
        if (parseInt(plugin_version[0]) > parseInt(portal_version[0])) return true;
        if (parseInt(plugin_version[0]) < parseInt(portal_version[0])) return false;
        if (parseInt(plugin_version[1]) > parseInt(portal_version[1])) return true;
        if (parseInt(plugin_version[1]) < parseInt(portal_version[1])) return false;
        if (parseInt(plugin_version[2]) > parseInt(portal_version[2])) return true;
        if (parseInt(plugin_version[2]) < parseInt(portal_version[2])) return false;
        return true;
    }

    Код с Госуслуг. Nuff said

    dmgl, 13 Марта 2014

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

    +156

    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
    //CSS Анимация 1 
    function hideConv(){
    	//добавляем класс содержащий св-ва конца анмиации
    	$("#mail").addClass("animated200ms");
    	$("#mail").css("opacity","0");	
    	//определяем объект анимации
    	var elem=document.getElementById("mail");
    	//вешаем прослушиватель завершения анимации
    	elem.addEventListener('transitionend', function(event) {
    		event.stopImmediatePropagation();
    		//ф-ия выполняемая после завершения анимации 1
    		showConv();
    	},false);	
    }
    
    //CSS Анимация 2 
      function showConv(){
    	
    	//копируем содержимое объекта анимации
    	var m = $("#mail").html();
    	//удаляем объект анимации на ***
    	$("#mail").remove();
    	//вставляем его снова *** 
    	$(".сontacts").append("<div id='mail' class='animated200ms' style='opacity: 0;'></div>");
    	$("#mail").append(m);
    	
    	
    	//не можем отловить событие завершения анимации 2 - делаем таймаут и надеемся что анимация успела выполнится 
    	$("#mail").css("opacity",0);
    	tv = setTimeout(function()
    	{
    		$("#mail").css("opacity",1);
    	},500);
    	
    	
    	//не можем отловить событие завершения анимации 3 - делаем таймаут и надеемся что анимация успела выполнится 
    	time_var = setTimeout(function()
    	{
    		$("#mail").removeClass("animated200ms");
    		openMail();
    	}, 3500);
      }

    Задача: выполнить цепочку анимации на CSS: анимация-1, анимация-2, анимация-3. Каждая следующая анимация должна запускаться по завершению предыдущей. Смотрим и улыбаемся.
    Работу выполнил фрилансер: https://www.fl.ru/users/nDc/ за 900руб.

    agency-it, 10 Марта 2014

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

    +130

    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
    public static function checkUserRights($project, $user, $action, $allowView = false)
        {
    
            $action_id = Actions::getActionIdByName($action);
            $user_role = ProjectsRoles::getUserRoleInProject($project, $user);
    
            if(is_null($user_role))
                HUtils::Exception(403);
    
            $roles = Roles::getRolesOrderedByWeight();
    
            $user_role = $user_role->role;
    
            foreach($roles as $role)
            {
    
                if($role->weight <= $user_role)
                {
                    $user_role -= $role->weight;
                    if(in_array($action_id,HUtils::Parse($role->actions)))
                        return 1;
                }
    
            }
    
            if(!$allowView)
                HUtils::Exception(403);
        }

    Функция проверки прав.

    $allowView в конце функции намекает, что доступ получен не будет. Никогда. Вроде бы.

    nulreferense, 04 Марта 2014

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

    +174

    1. 1
    if (!jQuery(this).html().length > 0) {....}

    нашел в своем старом проекте

    voltaren, 26 Февраля 2014

    Комментарии (10)
  7. Python / Говнокод #14779

    −99

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    >>> max
    <built-in function max>
    >>> max.__call__
    <method-wrapper '__call__' of builtin_function_or_method object at 0x01D72080>
    >>> max.__call__.__call__
    <method-wrapper '__call__' of method-wrapper object at 0x022D2730>
    >>> max.__call__.__call__.__call__
    <method-wrapper '__call__' of method-wrapper object at 0x022D29B0>
    >>> max.__call__.__call__.__call__.__call__
    <method-wrapper '__call__' of method-wrapper object at 0x022D2970>
    >>> max.__call__.__call__.__call__.__call__(1,2,3)
    3

    We need to go deeper.

    Vindicar, 21 Февраля 2014

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

    +43

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    /*
     * encoding.cpp
     *
     *  Created on: Oct 25, 2012
     *      Author: root
     */

    falsting, 17 Февраля 2014

    Комментарии (10)
  9. Си / Говнокод #14552

    +116

    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
    #include <stdio.h>
    #include <stdlib.h>
     
    int main() {
    	printf("%s\n", NULL);
    	return 0;
    }
    
    
    
    #include <stdio.h>
    #include <stdlib.h>
     
    int main() {
    	const char str[] = "%s\n";
    	printf(str, NULL);
    	return 0;
    }

    Эквивалентные программы такие эквивалентные. А всё из-за printf optimization в GCC.

    Стандарт, кстати, разрешает, потому что это UB.

    Вообще пора создать ub.govnokod.ru и складывать туда примеры разного поведения на каждое UB из стандарта.

    someone, 13 Февраля 2014

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

    +133

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    string dirUp = striBuildDir + striBinaryDir + "\\" + striTempDir + "\\";
     string dirRelease = strDirBin;
     int i = 1;
     while (ConfigurationSettings.AppSettings["SettingDir" + i] != null)
      {

    и еще строк 100500 такого же стиля

    taburetka, 12 Февраля 2014

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

    +160

    1. 1
    2. 2
    if ($_SESSION["spo_filter_history"]=="Y")
    		$_REQUEST["filter_history"] == "Y";

    Bitrix. sale.personal.order.list
    А я еще удивлялся "какого хуя фильтр не работает?"

    TBoolean, 12 Февраля 2014

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