1. Си / Говнокод #7421

    +136

    1. 1
    2. 2
    3. 3
    4. 4
    inline int getMaximumIterations() // НЕ: MAX_ITERATIONS = 25 
    {
        return 25;
    }

    правила использования глобальных переменных ))) прочитанные в доках одной софтовой компании

    Запостил: gentoonofb, 02 Августа 2011

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

    • На случай сложных вычислений MAX_ITERATIONS.
      Ответить
    • нормальный ход, зато нет глобальных переменных!
      Ответить
    • inline bool isItShit() //НЕ: IS_IT_SHIT = false
      {
          return false;
      }
      Ответить
    • > прочитанные в доках одной софтовой компании

      MS?
      Ответить
    • Не считаю, что здесь есть гавно. Если уж нужна глобальная переменная (допустим, без неё вам не заплатят), то уж лучше сделать геттер. "Совершенный код" Макконнелла:
      "Если вы не можете отказаться от глобальных переменных, работайте с ними через методы доступа. Эти методы предоставляют все то же и даже больше, что и глобальные переменные." (с)

      Вот линка с отрывками книги, откуда была взята цитата:

      http://artem.kariavka.info/Science/Programming/CompleteCode/
      Ответить
      • почему бы константу не завести?
        Ответить
        • Из соображений абстракции? Сейчас это констата, а завтра будет читаться из конфигурационного файла. Правда, слово inline убивает половину преимуществ использования метода доступа (возможность изменения значения параметра или реализации функции без перекомпиляции всех зависимых модулей).
          Ответить
        • Fai это аксолотль Fike?
          Ответить
    • Чего-то не хватает.
      Ответить
    • Где здесь Си, gentoonofb?
      Ответить
    • Избавились от работы препроцессора, есть некий плюс, но использовать С, это тоже самое, что ездить на машинах с ножной тягой, по типу флинстоунов.
      Ответить
      • А какой язык Вы предлагаете использовать в данном примере? Если можно, покажите пример кода.
        Ответить
        • В плане давно пора переходить на C++ и не парить мозг.

          Да и жечь в стиле
          struct Config {
          static const unsigned int MaximumIterations = 25;
          }

          Если не разыменовывать, то отличная замена дефайну.
          Ответить
          • Иногда переход на C++ нежелателен или невозможен. Мне лично ANSI C больше нравится из-за его простоты и прозрачности.
            Ответить
            • А мне С++ из-за скорости разработки и простоты поддержки.
              Ответить
              • Не спорю, у C++ есть множество преимуществ. )
                Ответить
              • ЛОЛ
                Ответить
                • дико плюсую тараса
                  Ответить
                • ░░░░░░░░░░████████░░░░░░░░░░
                  ░░░░░░████▓▓▓▓▓▓▓▓████░░░░░░
                  ░░░░██▒▒▒▒▓▓▓▓▓▓▓▓▓▓▓▓██░░░░
                  ░░██▒▒░░░░▒▒▓▓▓▓▓▓▓▓▓▓▓▓██░░
                  ░░██▒▒░░░░▒▒▓▓▓▓▓▓▓▓▓▓▓▓██░░
                  ██▓▓▓▓▒▒▒▒▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓██
                  ██▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓██
                  ████▓▓▓▓██████▓▓▓▓▓▓▓▓▓▓████
                  ████████▒▒░░▒▒██▓▓██████████
                  ░░██████░░░░░░████████████░░
                  ░░██░░██▒▒░░▒▒████████▒▒██░░
                  ░░░░██░░██████▒▒▒▒▒▒▒▒██░░░░
                  ░░░░░░████▒▒▒▒▒▒▒▒████░░░░░░
                  ░░░░░░░░░░████████░░░░░░░░░░
                                 ∧∧
                  Ответить
                • Впервые вижу, чтобы комментарий, состоящий только из междометия, получал столько плюсов. Это успех!
                  Ответить
      • под решёточку хорошо пойдёт
        Ответить

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