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

    +1

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    8. 8
    9. 9
    void CDiagram::readDomElement( const QDomElement & de )
    {
    // ...
            QString sstratum = de.attribute( "stratum", "1" );
            bool ok = false;
            int istratum = sstratum.toInt( &ok );
            setStratum( ok ? istratum : CTSWConfig::m_SyncStratum );
    // ...
    }

    Парсинг xml конфигов, код не мой, но надо переделывать.

    Запостил: OlegUP, 18 Декабря 2015

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

    • я может слепой, тупой и говнокодер, но я тут ничего страшнее использования защищенного статического поля френд-класса не вижу.
      Ответить
      • Вероятно, автор имеет в виду игнор ошибок в конфигах.
        Но пояснить мысль не помешало бы.
        Ответить
        • если что-то будет не так на этапе парсинга, attribute(...) вернет пустую строку, которая выдаст false в toInt() и алгоритм подставит какое-то стандартное значение
          Ответить
          • Я имею в виду, что если кто-то напишет в конфиге
            stratum="MAXIMUM_STRATUM"
            то система подставит дефолт и промолчит, хотя юзер рассчитывал на другое.
            Ответить
            • de.attribute( "stratum", "1" );
              - вернет "1", если не найдется атрибут тега
              далее идет попытка достать из строки int, и если не получится, то дать ему дефолтное значение, 4я строка не сработает никогда
              на первой строчке должно быть:
              de.attribute( "stratum");
              Ответить
              • Спасибо, кэп, я и без тебя понял, что делает этот код.
                Ответить
              • Она сработает, если значение аттрибута равно чему-то, что не кастится в инт
                Ответить
    • Наша семья только переехала в этот город и в этот дом. Это было так сложно. Тот переезд. Все парни, с кем я дружил до этого момента... мне пришлось всё оставить в прошлом. Собрать свои вещи, сесть в машину и уехать. Отец был так строг, что, видя мои слёзы, даже не разрешил маме меня обнять. Он сказал: "Пусть справится с этим сам. Он уже не маленький", и всю дорогу я смотрел в окно на пустые земли бескрайнего континента. Впервые я осознал, что ничего не решаю, не имею права голоса, не могу распоряжаться собой. Ничего и никак. Я был Остином, только и всего.
      Ответить
    • - А как же! Они хотели нормального, а я тут весь такой цвета неба.
      Ответить

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