Зыбин - 3 tasks: encrypt, decrypt, bruteForce, consoleMenu#29
Зыбин - 3 tasks: encrypt, decrypt, bruteForce, consoleMenu#29ZyibinAV wants to merge 15 commits intodemologin:mainfrom
Conversation
…ypt, class BruteForce. Change class ConsoleMenu
…ypt, class BruteForce. Change class ConsoleMenu
Khmelov
left a comment
There was a problem hiding this comment.
Проект хорошо структурирован по пакетам, но в некоторых классах нужен рефакторинг. Выполнено три из четырёх видов шифрования и дешифрования, поставил оценку б
|
|
||
| public static void main(String[] args) { | ||
|
|
||
| ConsoleMenuRunner runner = new ConsoleMenuRunner(); |
There was a problem hiding this comment.
В этой точке хорошая привычка передавать все или хотя бы некоторые зависимости приложения
| @@ -0,0 +1,10 @@ | |||
| package com.javarush.zybin.cipher; | |||
|
|
|||
| public class Alphabet { | |||
There was a problem hiding this comment.
Если это класс а не интерфейс то полезно добавить ему приватный конструктор
| int maxMatches = 0; | ||
| String bestDecryption = ""; | ||
|
|
||
| System.out.println(" \uD83D\uDE80 Starting brute force attack..."); |
There was a problem hiding this comment.
Во внутренних компонентах приложения допускается логирование, то есть вывод информации для разработчика, а пользовательский вывод лучше разместить на верхних уровнях
| } | ||
| } | ||
| System.out.println("=".repeat(60)); | ||
| System.out.println("Best key found: " + bestKey + " with " + maxMatches + " matches"); |
|
|
||
| public class Decrypt { | ||
|
|
||
| public String action(String text, int key) { |
There was a problem hiding this comment.
Данный способ передачи ограничен размерами памяти приложения, если бы это были потоки ввода и вывода, то данного ограничения не было бы
| for (char character : text.toCharArray()) { | ||
| int index = -1; | ||
| int newIndex; | ||
| for (int i = 0; i < ALPHABET.length; i++) { |
There was a problem hiding this comment.
Эти два метода очень сильно похожи друг на друга поэтому лучше вынести общий код в абстракцию
|
|
||
| public ConsoleMenu() { | ||
| this.encrypt = new Encrypt(); | ||
| this.decrypt = new Decrypt(); |
There was a problem hiding this comment.
Кажется я где-то видел второе создание экземпляр дешифровке, лучше бы взять его отсюда
|
|
||
| public void handleEncryption() { | ||
| try { | ||
| System.out.println("Enter the encryption key (1-80)"); |
There was a problem hiding this comment.
В принципе все понятно но когда методы становятся большими лучше выделить из них дополнительные под методы с понятными именами, это делает код более читабельным
|
|
||
| public void handleBruteForce() { | ||
| try { | ||
| System.out.println("Write the path to the file or the choice will occur by default"); |
There was a problem hiding this comment.
Очень перегруженный метод тут нужен рефакторинг
| int choice = consoleMenu.getUserChoice(); | ||
|
|
||
| switch (choice) { | ||
| case 1: |
There was a problem hiding this comment.
Сложно отличить под смыслу эту единицу от той которая идёт ниже, возможно их лучше вынести в константы с понятными именами
No description provided.