1. 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)
  2. Java / Говнокод #11296

    +77

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

    mychka, 25 Июня 2012

    Комментарии (13)
  3. 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)
  4. 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)
  5. 1C / Говнокод #11293

    −116

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

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

    glavdir, 25 Июня 2012

    Комментарии (21)
  6. 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)
  7. C++ / Говнокод #11291

    −46

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

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

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

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

    Fai, 25 Июня 2012

    Комментарии (0)
  8. 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)
  9. 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)
  10. C++ / Говнокод #11288

    −47

    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
    void init_by_array64(unsigned long long init_key[],
    		     unsigned long long key_length)
    {
        unsigned long long i, j, k;
        init_genrand64(19650218ULL);
        i=1; j=0;
        k = (NN>key_length ? NN : key_length);
        for (; k; k--) {
            mt[i] = (mt[i] ^ ((mt[i-1] ^ (mt[i-1] >> 62)) * 3935559000370003845ULL))
              + init_key[j] + j; /* non linear */
            i++; j++;
            if (i>=NN) { mt[0] = mt[NN-1]; i=1; }
            if (j>=key_length) j=0;
        }
        for (k=NN-1; k; k--) {
            mt[i] = (mt[i] ^ ((mt[i-1] ^ (mt[i-1] >> 62)) * 2862933555777941757ULL))
              - i; /* non linear */
            i++;
            if (i>=NN) { mt[0] = mt[NN-1]; i=1; }
        }
    
        mt[0] = 1ULL << 63; /* MSB is 1; assuring non-zero initial array */ 
    }

    "Чистый и ясный код" (с)

    Fai, 24 Июня 2012

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