Skip to content

Instantly share code, notes, and snippets.

@Asenim
Created July 28, 2024 20:14
Show Gist options
  • Save Asenim/a856ae2e9e7e12ed0adc7a7daa49a56b to your computer and use it in GitHub Desktop.
Save Asenim/a856ae2e9e7e12ed0adc7a7daa49a56b to your computer and use it in GitHub Desktop.

https://github.com/Ghennadi-Berezovschi/Roadmap
Ревью от Алексея

Хорошая реализация игры в процедурном стиле. Упрощенный функционал.

Недостатки реализации:

  1. Нет списка правильных и неправильных букв, которые вводили
  2. Можно ввести одну и ту же неправильную букву несколько раз и каждый раз это будет считаться новой ошибкой
  3. В игре всего 4 слова, что хорошо для отладки, но не очень, как игра

Хорошо:

  1. Нейминг
  2. Вся игра в одном классе, но разбита на маленькие методы
  3. Простой и понятный алгоритм
  4. Достаточное количество констант

Замечания:

  1. Нейминг

Убирай товтологию

HangmanGame.playGame()

//ПРАВИЛЬНО:
HangmanGame.play()
  1. Создавай вспомогательные методы, делай программу более простой и понятной:
if (userInput.isEmpty() || userInput.length() != 1 || !Character.isLetter(userInput.charAt(0))) {...}

//ПРАВИЛЬНО:
if (isМетодСназваниемКотороеВсеОбьясняет()) {...}

private static isМетодСназваниемКотороеВсеОбьясняет() {
  return userInput.isEmpty() || userInput.length() != 1 || !Character.isLetter(userInput.charAt(0));
}
  1. Всегда используй классы через их интерфейсы
ArrayList<String> words = createWords();

//ПРАВИЛЬНО:
List<String> words = createWords();
  1. Нарушение инкапсуляции- все методы публичные.

Вывод: в процедурщине ты неплох. Переходи к ООП.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment