Кресты / Говнокод #19530 Ссылка на оригинал

0

  1. 1
if ( LIKELY( _mode == normal ))

_mode задается один раз в начале программы по конфигурационному файлу.

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

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

  • Для полноты картины:
    1) условие используется в цикле;
    2) у _mode всего 2 различных значения
    Ответить
    • Ну и из данного кода видно, что _mode скорее всего будет "normal", по этому компилятор сгенерирует код с минимумов прыжков для такого варианта событий.

      В где говно?
      Ответить
      • Мысли следующие:
        1) как было сказано, _mode задается конфигом. Зачем так портить жизнь другому значению параметра конфига, отличного от normal? Что за дискриминация?
        2) раз уж пошла такая отимизационная пьянка, что мешает запилить два различных цикла - для одного значения параметра конфига, и для другого. И вынести это условие из цикла наверх?
        3) да и вообще, начать запиливать likely и при этом на каждой итерации цикла сравнивать одно и то же с одним и тем же (_mode никогда не меняется) выглядит как-то иронично, что ли...
        Ответить
        • Видимо автору было лень сопровождать два одинаковых куска кода, отличающейся только одной строчкой. Однако он знал, что в >99.99% случаев _mode == normal. Тогда почему бы не поставить likely?
          Ответить
          • Как он может об этом знать? В конфиг выносят параметры как раз для того, чтобы подстроиться к переменчивой среде без пересборки кода. Если сегодня normal чаще всего используется, кто сказал, что завтра его вообще не перестанут использовать, а будут использовать другое значение параметра?
            Ответить
            • Полагаю, кроме normal, там ещё бывает а-ля «debug». И автору насрать тормозит или нет в debug-режиме, но не хочется, чтобы этот if вообще чувствовался в normal-режиме. Но это лишь догадка. Однако, пока это не опровергнуто, не вижу причин называть код говнокодом.
              Ответить
  • Никогда не понимал этот блять С++, винапи в 100 раз проще
    Ответить
    • признайся
      ты это просто так написал? от балды?
      ты ведь ни в С++ ни в винапи ничерта не поним
      Ответить
                    • Идеологически - нет. Технически - да.

                      З.Ы. Точно не помню, но вроде в макоси дрова на крестах.
                      Ответить
                      • да, на сабсете C++
                        точнее в XNU
                        а еще точнее в mach:)

                        IOKit
                        Ответить
                    • Да, на крестах:
                      C++ was chosen for several reasons. The C++ compiler is mature and the language provides support for system programming. In addition, there is already a large community of Macintosh (and BSD) developers with C++ experience.

                      The restricted subset disallows certain features of C++, including
                      - Exceptions
                      - Multiple inheritance
                      - Templates
                      - Runtime type information (RTTI)
                      Ответить
                      • > Multiple inheritance
                        > Runtime type information (RTTI)
                        Не нужно.
                        > Exceptions
                        Нужно в исключительных ситуациях ЕВПОЧЯ.
                        Ответить
                          • Долго компилируются, имеют свойство распидорашиваться в мегабайты.
                            Хз. Шаблоны - это ж один из китов на которых стоят кресты.
                            Ответить
                            • Ну это если их абузить и всякие MPL хуярить. А если простенький контейнер или смартпоинтер - ничё там не распидорашивает...
                              Ответить
                              • >всякие MPL хуярить
                                Лол, я как раз хотел сказать "чтоб буст в дрова не тащили".
                                Да понятно что штука полезная. А разосрать и препроцессором можно.
                                Ответить
                                  • > ограничение на экспорт
                                    Ну можно же шаблоны юзать только для удобства реализации, а в интерфейсы не выставлять...
                                    Ответить

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

Семь раз отмерь — один отрежь, guest!

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


    8