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

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

    +137

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    8. 8
    9. 9
    if (p)
      free(p);
    
    /* ... */
    
    if (p)
      q = realloc(p, size);
    else
      q = malloc(size);

    немного классики.

    из сырцов pdftohtml.

    Dummy00001, 01 Марта 2012

    Комментарии (14)
  3. Куча / Говнокод #9568

    +121

    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
    package simplecms
    import auth.*
    
    class AuthFilters {
    
    	private checkPermission(def controller, def p, def session, def params) {
    		if (p) {
    			boolean result = session.user?.profile?.permissions?.contains(p)
    			if (p.delegate) {
    				result |=  controller.checkDelegation[p.name](session, params)
    			} else if (p.controllerChecked) {
    				result &= controller.checkPermission[p.name](session, params)
    			}
    			if (!result && p.parent) {
    				result = checkPermission(controller, p.parent, session, params)
    			}
    			return result
    		}
    		return true
    	}
    
    	def filters = {
    		main(controller:'*', action:'*') {
    			before = {
    				def mappings = PermissionMapping.findAllByControllerAndMethodInList(controllerName, [actionName, '*'])
    				boolean denied = mappings?.size() > 0
    				if (denied) {
    					def permissions = []
    					session.user?.attach()
    					mappings.each { mapping ->
    						if (mapping.permission?.guest) {
    							denied = false
    						} else if (permission.parent == null){
    							permissions << mapping.permission
    						}
    					}
    					if (denied) {
    						denied = !permissions.any { checkPermission(grailsApplication.mainContext.getBean(controllerName), it, session, params) }
    					}
    				}
    				return !denied
    			}
    		}
    	}
    }

    Нашёл у себя в проекте. Иерархия разрешений? ну так будем проверять только корневые, что заморачиваться?!

    0rt, 29 Февраля 2012

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

    +1000

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    8. 8
    enum IsHaveItem{
    //...
    switch(Havelo)
        {
            case IsHaveItem::Have: have();
            case IsHaveItem::Havent: haveOrNotHave();break;
            default:assert(false&&"Признай, что ты идиот и это не лечится!");
        }

    Нашёл в проекте. Нет, ни тогда, когда сработал ассерт.

    Говногость, 28 Февраля 2012

    Комментарии (14)
  5. Куча / Говнокод #9545

    +133

    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
    (require 'clsql)
    
    (clsql:file-enable-sql-reader-syntax)
    
    (clsql:connect
     '("localhost" "database" "user" "password")
     :database-type :mysql)
    
    (defun how-many-goods-do-you-have (year month)
      (declare
       (type (integer 2000 2011) year)
       (type (integer 1 12) month))
      (clsql:select [item_id] [sale_date]
    		:from "table"
    		:where [or
    		[is [null [sale_date]]]
    		[< [sale_date]
    		(clsql:sql 'str_to_date\(
    			   (format
    			    nil
    			    "~a-~2,'0d-00"
    			    year month)
    			   '|, '%Y-%m-%d')|
    			   )]]))

    Эксперименты :)

    wvxvw, 26 Февраля 2012

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

    +158

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    function GetMonthByNum($m)
    {
    	$month_int = array('01', '02', '03', '04', '05', '06', '07', '08', '09', '10', '11', '12');
    	$month_str = array('Январь', 'Февраль', 'Март','Апрель', 'Мая', 'Июнь','Июль', 'Август', 'Сентябрь','Октябрь', 'Ноябрь', 'Декабрь');
    	return str_replace($month_int, $month_str, $m);
    }

    Начало своего пути программирования несколько лет назад. Тогда еще долго думал, как оптимизировать данный код.

    Freemy, 25 Февраля 2012

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

    +964

    1. 1
    2. 2
    3. 3
    4. 4
    private static int CompareWidgetsByOrder(Widget x, Widget y)
    {
          return x == null ? y == null ? 0 : 1 : y == null ? 0 : x.order > y.order ? -1 : x.order < y.order ? 1 : 0;
    }

    Вот до чего доводит стремление к компактности кода.

    nomad99111, 19 Февраля 2012

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

    +141

    1. 1
    echo wp_count_comments($post->ID)->approved;

    Не знал, что так можно. Сработало, хыхы.

    varg242, 18 Февраля 2012

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

    +1002

    1. 1
    MAX_DATA_SIZE   = unsigned char(~0) * sizeof(long);

    Нахрена???)))

    tocha, 02 Февраля 2012

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

    +165

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    8. 8
    9. 9
    # получение остатка от деления
    function ostatok($chislo,$na_skolko)
    {
    $chislo2=$chislo/$na_skolko;
    $chislo2=(int)$chislo2;
    $chislo3=$chislo2*$na_skolko;
    $chislo4=$chislo-$chislo3;
    return $chislo4;
    }

    Получение остатка от деления двух чисел. Без комментариев.

    T_ENGINE, 02 Февраля 2012

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

    +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
    ##############################################
    # Bitrix: SiteManager                        #
    # Copyright (c) 2002-2006 Bitrix             #
    # http://www.bitrixsoft.com                  #
    # mailto:[email protected]                #
    ##############################################
    
    if (!class_exists("CCaptcha"))
    {
    	class CCaptcha
    	{
    		var $imageWidth = 180;
    		var $imageHeight = 40;
    // ...etc

    Это Битрикс. Опять. bitrix\modules\main\classes\general\capt cha.php
    Определение нативной капчи.
    В строке 8 создатели сего как бы задаются воспросом «А вдруг еще никто не писал до нас капчи?».
    Или перестраховываются — «а вдруг require() уже вызывался? И что такое require_once(), про который все так много говорят?»
    Добротный, защищенный на все сто, класс капчи. Невозможно сломать, уже просто потому, что невозможно понять...

    velosipedistorg, 01 Февраля 2012

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