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

    +159

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    14. 14
    15. 15
    16. 16
    17. 17
    18. 18
    19. 19
    20. 20
    21. 21
    22. 22
    23. 23
    24. 24
    25. 25
    26. 26
    27. 27
    28. 28
    29. 29
    30. 30
    31. 31
    32. 32
    33. 33
    34. 34
    35. 35
    36. 36
    37. 37
    38. 38
    39. 39
    40. 40
    41. 41
    bool CSomeClass::Init( int argc, wchar_t* argv[] )
    
    {
    
          bool isOk = true;
    
          bool goOn = true;
    
          for( int i = 0; isOk && goOn; ++i ) {
    
                switch( i ) {
    
                      case 0:
    
                            isOk = checkCommandLine( argc, argv );
    
                            break;
    
                      case 1:
    
                            isOk = checkFileExistence();
    
                            break;
    
                      case 2:
    
                            isOk = initFiles();
    
                            break;
    
                      default:
    
                            goOn = false;
    
                }
    
          }
    
          return isOk;
    
    }

    Запостил: w100, 14 Мая 2011

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

    • > CSomeClass
      это же Си!
      Ответить
    • один из способов писания FSM.

      ничего нового. не говно.
      Ответить
      • Так говнокод в том, что получилось очень много лишних слов. Вполне хватило бы
        return checkCommandLine( argc, argv ) && checkFileExistence() && initFiles();

        Ну, или по крайней мере 2 переменные goOn и isOk легко можно было бы заменить одной (нам же изначально известно, сколько витков должен сделать цикл).
        Ответить
        • и да и нет. в твоем коде нет никакой внешней сериализации в какая из функций в данный момент выполняется. не смотря на форму кода, самая важная переменная здесь: "i". в паре прог которые я знаю подобный код используется для перезапускаемой инициализации и деинициализации, но там "i" есть мембер класса.

          goOk & isOk, да, редундантны и больше похожи на нечто из корпоративного принудительного стайл гайд.
          Ответить
          • Да, то что i локальная - настораживает. Да и for( int i = 0; isOk && goOn; ++i )...
            Недоделанная корутина? Заготовка?
            Ответить
    • показать все, что скрытоЗачем все строчки через одну пустые? Дурацкий язык, непродуманный.
      Ответить
    • Въебал ТарасуБ 3 минуса.
      Ответить
    • Говновенгерка намекаэ
      Ответить
    • bool CSomeClass::Init(int argc, wchar_t* argv[])
      {
            bool isOk = true;
            bool goOn = true;
      
            for( int i = 0; isOk && goOn; ++i )  {
                  switch( i ) {
                        case 0:
                              isOk = checkCommandLine( argc, argv );
                              isOk = isOk && checkFileExistence();
                              isOk = isOk && initFiles();
                              goOn = false;
                     default:
                          break;
                  }
            }
      
            return isOk;
      }
      Ответить
    • показать все, что скрытоvanished
      Ответить

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