Си диез / Говнокод #12228 Ссылка на оригинал

0

  1. 1
  2. 2
  3. 3
  4. 4
  5. 5
  6. 6
  7. 7
  8. 8
  9. 9
  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
//  define types
const int FB2 = 0;
const int TXT = 1;

// private
private int Type;
…

//  class methods
public CVBook(string path, string type) {
    switch(type)
    {
        case "fb2":
            {
                Type = 0;
            }
            break;
        case "txt":
            {
                Type = 1;
            }
            break;
        default:
            {
                throw new Exception("Unknown Book Format");
            }
    }
    …
    switch (Type) {
        case FB2: { … }
        case TXT: { … }
        default:
            {
                throw new Exception("Unknown Book Format");
            }
        }
    }
}

Парсер книг, все в одном методе.

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

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

    • А в Паскале использовать такое говно, как переменные, чьи имена отличаются только регистром, нельзя.
      Ответить
      • Затоможно в одном месте писать tYpE, в другом TYPE, в третьем type и все это будет одним именем.
        Ответить
        • Да. Я в начале конструкции пишу ключевые слова с заглавной буквы (например, Begin, Repeat, If, While, For, Case), а в середине конструкции — со строчной (then, of, do, until, end), потому что считаю это синтаксически верным. Паскаль — один из немногих языков с синтаксисом, приближенным к естественному. Даже программа заканчивается точкой.
          Ответить
          • Тут есть хорошая традиция - помечать текст зелёным. Сам её не одобряю, но в этом случае нужно добавить и выделение жирным.
            Ответить
            • Комментарии набираются мелким шрифтом
              Функция объявляется жирным, тип переменной определяется ее цветом (int красный, string зеленый и т.п.):
              MyFunction x y text
                  mid = (x + y)/2
              В конце функции пишется ее зачеркнутое имя
              MyFunction
              Если функция возвращает значение - ее имя подсвечивается нужным цветом
              Sum x y
                  x + y
              Sum
              Ответить
            • > но в этом случае нужно добавить и выделение жирным
              Только если текст очень зеленый.
              Ответить
  • Процедурненько. А еще очень мило вводить символические константы, а потом использовать магические.
    Ответить
    • > Процедурненько

      Дейкстра, Вирт и Бэкус крутятся на своих профессорских стульях.
      Ответить
    • Полиморфизм можно мутить и на процедурах без всякого там ООП. Так что ни разу не оправдание.
      Ответить
      • Пример? Структура указателей на методы? Структура с функцией принимающей сообщения? Статический полиморфизм через перегрузки методов? Он же через шаблонные функции? Что-то ещё?
        Ответить
        • Ну еще к примеру указатель на функцию, хранящийся в самой структуре. От этого ведь эта структура не станет объектом, ведь правда?
          struct Test {
              void (*cleanup)();
              ...  поля ...
          };
          Ответить
          • >Структура указателей на методы?
            >Ну еще к примеру указатель на функцию, хранящийся в самой структуре
            Я это и имел ввиду.
            Ответить
            • А, а я думал, что вы имели в виду аналог крестовой таблицы виртуальных методов.
              Ответить

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

Помни, guest, за тобой могут следить!

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


    8