1. C# / Говнокод #626

    +107.8

    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
    string status = ProcessData("db1");
                if (status == "ERROR") goto ErrorOccured;
                status = ProcessData("db2");
                if (status == "ERROR") goto ErrorOccured;
                status = ProcessData("db3");
                if (status == "ERROR") goto ErrorOccured;
                if (status == "OK") goto NoError;
    
                ErrorOccured:
                    tran.Rollback();
                    return status;
                NoError:
                    tran.Commit()

    пятница однако... :)

    вот "обнаружил" кодЪ (не забываем, что C#)::

    чем товарищЪ думал, трудно понять...

    Запостил: guest, 27 Февраля 2009

    Комментарии (8) RSS

    • Бушок с фильтром:
      поистине индусский кодЪ
      Ответить
    • повбивав бы.
      Ответить
    • скажи исключениям НЕТ, пиши действительно безопасный код!!!11
      Ответить
    • Анонкодер:
      Я за запрещение показа этого куска кода. Он вызывает желание убиться апстену.
      Ответить
    • Умный кодер:
      А собственно, что тут такого крамольного? Код совершенно понятен любому его читающему ...
      Или по принципу - один баран сказал, что "goto" - это плохо, то и все другие тоже блеют на этой же ноте?
      Ответить
    • ядщи:
      только бараны не понимают, что goto плохо.
      Ответить
    • болт:
      студентик небось какой-нибудь накотал в ускоренном темпе лишь бы впарить преподу с надеждой что последний и смотреть не станет
      Ответить
    • [quote=Умный кодер]А собственно, что тут такого крамольного?[/quote]

      Написали ж для умников
      [quote=Говногость](не забываем, что C#)[/quote]

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

      Ещё плохая обработка этих кодов. Если первые два вызова ProcessData верут "UNKNOWN", это сойдёт за "OK", третий сойдёт за "ERROR"

      Ещё плохо использование строк в качестве кодов возврата.

      Кроме понятности, от кода требуется работоспособность и поддерживаемость.

      В goto, разумеется, ничего плохого нет. Однако, если этот код нписать как он должен быть написан, goto здесь не нужен.
      Ответить

    Добавить комментарий