1. C++ / Говнокод #11298

    +20

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    // заполнение массива случайными числами
    template <typename T> void fill_array_with_random( T array[], size_t length ) {
    	for ( size_t i = 0; i < length; i++ ) { 
    		array[i] = rand();
    	}
    }

    Главный недостаток - K&R indent style.

    Fai, 26 Июня 2012

    Комментарии (61)
  2. JavaScript / Говнокод #11297

    +162

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    try {
    	chrome.tabs.update(tabInfo.tabId, {"active" : true}); // chrome 15+
    } catch (e) {
    	chrome.tabs.update(tabInfo.tabId, {"selected" : true}); // older
    }

    Это ни капли не говнокод. Это - результат breaking changes в chrome.tabs API, про которое нигде не написали и из-за которого ваши расширения для Chrome, использующие chrome.tabs API могут запросто не работать в относительно старых версиях Chrome. При том, что заявлена поддержка Chrome 9+. Из-за такого странного подхода приходится городить такие конструкции, которые выглядят как непонятный говнокод для непосвященных людей.

    1999, 25 Июня 2012

    Комментарии (54)
  3. Java / Говнокод #11296

    +77

    1. 1
    2. 2
    3. 3
    public static boolean isNull(Collection collection) {
        return collection == null;
    }

    mychka, 25 Июня 2012

    Комментарии (13)
  4. ActionScript / Говнокод #11295

    −155

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    override public function execute():void
    {
    	var maintainProductAttributePresenter:ITableBasedPresentrer = this.appPresenter.maintainProductAttributePresenter;
    	var maintainProductAttributeView:View = maintainProductAttributePresenter.view;
    
    	this.appView.showModuleView(maintainProductAttributeView);
    	this.appView.showModuleHeader(maintainProductAttributePresenter.getModuleTitle());
    
    	maintainProductAttributePresenter.updateData();
    }

    Сижу, копипазжу... Специально не стала выбиваться из стандарта... Может хоть на секунду мысль о том что мы занимаемся маразмом кому нибудь в голову придет?

    kyzi007, 25 Июня 2012

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

    −32

    1. 1
    2. 2
    3. 3
    4. 4
    Fixed& operator +=(Fixed a) { return *this = *this + a; return *this; }
    Fixed& operator -=(Fixed a) { return *this = *this - a; return *this; }
    Fixed& operator *=(Fixed a) { return *this = *this * a; return *this; }
    Fixed& operator /=(Fixed a) { return *this = *this / a; return *this; }

    http://wiki.yak.net/675/fixed.h
    посоны, зачем так сделано?

    TarasB, 25 Июня 2012

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

    −116

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    ВЫБОР 
    КОГДА ПолФизическихЛиц.Ссылка = "Женский" 
    ТОГДА "М" 
    ИНАЧЕ "Ж" 
    КОНЕЦ

    Вот такой вот забавный запрос

    glavdir, 25 Июня 2012

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

    −85

    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
    if ([stringMonth isEqualToString:NSLocalizedString(@"M1", nil)]) {
            stringMonth = @"01";}
        else if ([stringMonth isEqualToString:NSLocalizedString(@"M2", nil)]) {
                stringMonth = @"02";}
            else if ([stringMonth isEqualToString:NSLocalizedString(@"M3", nil)]) {
                    stringMonth = @"03";}
                else if ([stringMonth isEqualToString:NSLocalizedString(@"M4", nil)]) {
                        stringMonth = @"04";}
                    else if ([stringMonth isEqualToString:NSLocalizedString(@"M5", nil)]) {
                            stringMonth = @"05";}
                        else if ([stringMonth isEqualToString:NSLocalizedString(@"M6", nil)]) {
                                stringMonth = @"06";}
                            else if ([stringMonth isEqualToString:NSLocalizedString(@"M7", nil)]) {
                                    stringMonth = @"07";}
                                else if ([stringMonth isEqualToString:NSLocalizedString(@"M8", nil)]) {
                                        stringMonth = @"08";}
                                    else if ([stringMonth isEqualToString:NSLocalizedString(@"M9", nil)]) {
                                            stringMonth = @"09";}
                                        else if ([stringMonth isEqualToString:NSLocalizedString(@"M10", nil)]) {
                                                stringMonth = @"10";}
                                            else if ([stringMonth isEqualToString:NSLocalizedString(@"M11", nil)]) {
                                                    stringMonth = @"11";}
                                                else if ([stringMonth isEqualToString:NSLocalizedString(@"M12", nil)]) {
                                                        stringMonth = @"12";}

    Как-то так, че.

    1101_debian, 25 Июня 2012

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

    −46

    1. 1
    board.moveBuffer[index++].moveInt = move.moveInt;

    Вырвал из контекста.

    board и move - глобальные переменные.

    index - единственный параметр в монолитной функции длиной в 500 строк (я не преувеличиваю).

    Fai, 25 Июня 2012

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

    +61

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    8. 8
    if (is_page('orders_item')) {
    	die ("<meta http-equiv='refresh' content='0; url=".$base_url."/orders_item.php?pid=".$_GET['pid']."'>");
    } elseif (is_page('orders_garant')) {
    	die ("<meta http-equiv='refresh' content='0; url=".$base_url."/orders_garant.php?pid=".$_GET['pid']."'>");
    } else {
    	die ("<meta http-equiv='refresh' content='0; url=".$base_url."/orders_item.php?pid=".$_GET['pid']."'>");
    }
    exit();

    Хоть опросник пиши:
    - чем первый die() отличается от последнего?
    - почему их 3?
    - кто будет экранировать $_GET?
    - зачем в конце exit() подпирает die()?

    domaster, 25 Июня 2012

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

    −42

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    int main(int argc, char *argv[])‏ 
    { 
    int  i = 0; 
    char stuffing[36]; 
    
    for (i = 0; i <= 32; i += 4)‏ 
    *(long *) &stuffing = 0x8048374 ;  
    puts(stuffing);	
    
    return 0; 
    }

    Имея какую-либо прогу с принтфами и сканфами. имея уязвимости этих функций, мы с помощью программы, скомпилированной с этим кодом, произведем атаку на адрес 0x8048374. по этому адресу в программе - оппоненте находится точка входа в функцию, где происходит ввод строки(scanf'ом). введя строку, программа-атакер не даст выйти из функции и снова ударит по адресу входа и так далее....зацикливание.
    Это лаба по анализу уязвимостей по. вот не пойму только - 8 раз пройдет цикл, и по идее должен завершиться код, но помню когда делал лабу - сканф вызывался бесконечно при атаке. еще ужасная 7я строка создает жуткое впечатление ничегонепонимания )

    idec, 25 Июня 2012

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