Ответы пользователя по тегу Code review
  • Какое оформление предпочтительнее?

    FoggyFinder
    @FoggyFinder
    Общие замечания (ко всем кусочкам):

    Нет разделения на функции (проблема: дублирование кода, усложняет восприятие)

    Вынесите каждую часть в удобный метод и вызывайте. Например:
    * Получение числа с консоли
    * Поиск минимального из трех чисел
    * Проверка на четность

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

    Общие проблемы закончились, теперь сверху вниз:

    1 кусок:

    1. [ Критично ] Нет проверки на корректность ввода. Пользователь может случайно ввести букву и метод Convert.ToInt32 выбросит исключение. Довольно неприятно.

    2. Нарушение соглашения об именовании для переменной FinalResult

    3. Необязательная инициализация переменной FinalResult при объявлении.

    4. [ Субъективно ] Проблемы с форматированием: тернарный оператор занимает слишком много места для одной строки

    5. [ Может рассматриваться как придирка ] Копипаст подход. Вывод сообщения можно вынести из if-ов в - он одинаков для всех случаев.

    2 кусок:

    1. [ Критично ] Аналогично предыдущему

    2. Нарушение соглашения об именования для переменной MuchSmaller

    3. Объявление и лишняя инициализация переменной MuchSmaller намного впереди реального использования.

    4. Слишком сложные условные выражения.

    5. Аналогично п.5 предыдущего примера.

    3 кусок:

    Здесь, ура!, нет основной проблемы которая встречается во всех остальных примерах.

    1. Нарушение соглашения об именовании для переменной Result

    2. Странная смесь английского и русского языка в информационных сообщениях

    3. Странная смесь использования интернирования строк ($) и старого форматирования.

    4 кусок:

    1. [ Критично ] Нет проверки на корректность ввода. Пользователь может случайно ввести букву и метод Convert.ToInt32 выбросит исключение. Довольно неприятно.

    2. [ Существенно ] Копипаст подход для проверки на четность.

    3. Избыточные скобки в switch case

    5 кусок:

    1. [ Критично ] Нет проверки на корректность ввода. Пользователь может случайно ввести букву и метод Parse выбросит исключение.

    2. Проблемы с названием переменных. inputOne

    Итого:

    3-ий вариант условно нормальный. Остальные хуже.

    Упражнение:

    Попробуйте написать свой вариант с учетом замечаний перечисленных выше =)
    Ответ написан
    Комментировать