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

    −12

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    template <typename T, typename = std::enable_if_t<std::is_floating_point<T>::value>>
    inline void
    _getAttr(const IAttributes& attrs, int idx, double& number)
    {
      if (attrs.has(idx))
      {
        const IValueString& attr = attrs.get(idx);
        number = std::stod(std::string(attr.c_str(), attr.length()));
      }
    }

    Шаблонили-шаблонили на невышаблонили
    Спойлер: строки 1 и 3

    Запостил: Elvenfighter, 03 Марта 2017

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

    • кресты как кресты. поэтому то и называются крестами.
      Ответить
      • > кресты как кресты

        В том смысле, что горе-кресто-оптимизаторы пытаются навернуть что-то умное, но на самом деле получается просто вжик?
        Ответить
        • когда люди пытаются делать что то умное, и оно выглядит как нечто умное, скорее всего оно не особенно сильно умное. умные вещи выглядят как правило неприглядно, и с первого взгляда и не улавливаешь что что-то умное происходит (если сам с проблематикой не трахался).

          подобно тому как все начинающие начинают с "какие все тупые! я ща тут замучу генерик архитектуру на плагинах на которой можно будет написасть всё! ВСЁ! и как все идиоты со стажем еще до этого не догадалить? наверное они просто все тупые." "гибкие архитектуры" и "плагины" выглядят умно и круто, а на самом деле в 90% случаев не нужны, жутко избыточны, работают криво - или вообще не работают. case in point: mirinda.
          Ответить
          • С одной стороны да.

            А с другой стороны я постоянно вижу: "тут сложно что-то генерализировать" / "всего три использования" / "код сложный" и в итоге одно и тоже написано семь раз, и везде немного по разному.
            Ответить
            • > одно и тоже написано семь раз, и везде немного по разному.

              если код одинаковый - это еще не значит что это дупликация.

              если код одинаковый и отвечает идентичным требованиям - только тогда это дупликация.

              ты плюешься на семь раз тоже самое писаное. я чаще плююсь на то что народ генерик замутят, а потом начинается как в басне про рака, щуку и лебедя, потому что генерик куче требований отвечает, но ни одному требованию не отвечает полноценно. код дуплицированый удалять нааааамного проще чем удалять воркараунды/врапперы/адаптеры которыми обрастают генерик реализации.
              Ответить
              • >>и отвечает идентичным требованиям
                Разумеется я говорю про код,который выражает одну и ту же логику.
                Тобишь одно и тоже знание написано в нескольких местах несколько раз.

                Но я согласен с тем что пафосный фреймворк, не отвечающий при этом твоим требованиям это в тыщу раз хуже чем тупой бойлерплейт который точно так же им не отвечает
                Ответить
                • >> и отвечает идентичным требованиям
                  > Разумеется я говорю про код,который выражает одну и ту же логику.
                  > Тобишь одно и тоже знание написано в нескольких местах несколько раз.

                  в этом и твоя ошибка.

                  одинаковая логика != одинакавые требование.

                  логика это внутрее - это просто реализация. требования они происходят из вне - это ожидания клиентов по отношению к используемой реализации.

                  даже если реализация в текущий момент времени случилась идентичной, это не означает что ожидания клиентов тоже стали одинаковыми.
                  Ответить
                  • Ну ты реально считаешь я не отличаю копипаст от случайно совпавшего кода?

                    Если нам известно что при оплате картой Visa надо давать скидку 20%, или что при регистрации человека в системе надо слать ему sms, или конфиги лежат в папке %FOO%/configs/, или что доступ к сервису Bar требует привилегии "админ" то очевидно что эти знания должны быть написаны один раз, а не несколько. Вот про них я и говорю.
                    Ответить
              • проблема копипасты не в том, что код одинаковый. А в том, что он как раз-таки немного, да разный (потому что отвечает разным требованиям). Тут надо менять/править одно, там другое и со временем ветки начинают жить каждая своей жизнью. И как только появятся новые требования как раз окажется, что ни одна версия не удовлетворяет им полностью, а синхронизация версий сложнее написания с нуля. Я говорю о модулях.

                У нас так в трех проектах использовались разные версии одного и того же кода. Один по полной отрефакторили, второй похоронили и я пишу с нуля, третий на очереди.

                А вообще, имо, хороший код легко переиспользовать не меняя и расширять, не ломая.
                Ответить
                • >> переиспользовать не меняя и расширять, не ломая.
                  Open/Closed principle)
                  Ответить
          • твой пост выглядит как что-то умное, а на самом деле будопешт неосилятора
            Ответить
    • Борманд бы заценил
      Ответить
      • Заценил твой узкий анус, проверь.
        Ответить
        • http://buy-cialis-canada.com/ buy cialis online <a href=http://buy-cialis-canada.com/>Cialis Official Website</a> buying cialis
          Ответить
        • Дай пароль от guest.
          Ответить

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