Си диез / Говнокод #7085 Ссылка на оригинал

0

  1. 1
  2. 2
  3. 3
  4. 4
  5. 5
  6. 6
  7. 7
if (File.Exists(local)) {
                    if (Connect()) {
                        if (ftpConnection.Exists(remote)) {
//code
                        }
                    }
                }

Запостил: Irdis Irdis, (Updated )

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

    • Очевидное первое предположение:
      if (File.Exists(local) && Connect() && ftpConnection.Exists(remote)) { ... }
      Ответить
      • Это не повод суда постить этот говнокод. Уныло.

        >Connect() && ftpConnection.Exists(remote)
        В C# условия в if'е в каком порядке выполняются?
        Если Connect() поднимает соединение в ftpConnection, то я бы не стал писать и надеяться, что условия выполнятся в правильном порядке.
        Ответить
        • как угодно, блин, выполняются
          сначала первое потом последние...
          а вот из-за таких неуверенных как вы приходиться любоваться
          }}}}}}}}} бесит же
          Ответить
        • Условие в ифе выполняется в порядке, установленном приоритетами операций, использованных в данном ифе.
          В данном случае выполнение будет осуществляться слева направо.
          Ответить
          • >В данном случае выполнение будет осуществляться слева направо.
            В том же си или с++ в старом стандарте это будет не так
            Ответить
          • Приоритет тут совершенно ни при чём. Приоритет заканчивается на этапе синтаксического разбора.

            А играет роль — ленивость операторов.
            Ответить
        • Плюсом, как я понимаю, вычисления ленивые (спасибо местным, что научили правильно выражаться).
          Ответить
          • Текущий говнокод (Current) не менее ленивый, чем во втором комменте
            Ответить
  • Очень напоминает C1 в ЕГЭ по информатике (исправить ошибку) =)
    Ответить
    • Там обычно надо поправить ошибку в проверке на принадлежность точки к некоторому отсечённому куску графика.
      И что самое интересное, написанный тобой код на бумажке они сравнивают с неким "эталоном".
      Интересно мне посмотреть на этот эталон...

      P.S.: Да, я сдавал эту хуиту.
      Ответить
  • ИМХО загонять кучу логики в один оператор - тот ещё говнокод, особенно, когда потом приходится добавлять параметры в функции - условия IF'ов разразастаются в кучу строк. Many if vs compex condition в данном случае есть холивар. Помнится, когда появился LINQ все тоже увлеклись засовыванием безумной логики в один запрос. Ничего, первое же сопровождение эту привычку отбило: стали временные переменные создавать.

    Что мне здесь реально не нравится, это мутная функция Connect() и поле ftpConnection. Как бы не очевидно, куда Connect() и что ftpConnection != null, например. Короче тут явно нужен рефакторинг.
    Ответить

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

Переведи на "PHP", guest!

    А не использовать ли нам bbcode?


    8