Страницы

Поиск по вопросам

среда, 3 апреля 2019 г.

Инспекция генератора имён

Написал я программу, выложил на гитхаб (https://github.com/KaPaHgaIII/namegenerator). Нет ли такого места, где можно показать свой код более опытным людям, чтобы указали на недочёты?


Ответ

1) cmdArguments.getGender().substring(0, 1).toLowerCase().equals("m") //жуть
cmdArguments.getGender() == Genders.MALE //старые добрые enum а вот в getGender нужно писать что-то типо этого switch(gender) { case "male": return Gender.MALE; //и т.п. 2) Random randomizer = new Random(System.nanoTime()); //мелкая придирка, но System.nanoTime() писать не обязательно 3) в for (int i = 0; i < cmdArguments.getCount(); i++) { System.out.println(engine.generateName(cmdArguments.getLength())); } System.out.println лучше выносить в отдельный метод, причём лучше в отдельный класс (правило mvc) 4) catch (FileNotFoundException e) { System.out.println(e); } catch (IOException e) { System.out.println(e); } меняем на catch (Exception e) { System.err.println(e); //обратите внимание на err } 5) readData("male_names.txt"); здесь тоже бы хорошо было бы заюзать enum. А вдруг в будущем вы будете считывать данные не с файла, а с интернета? Будете url каждый раз указывать? 6) огромное количество s.substring(i, i + 2); А почему +2, а не +3? Не помешал бы мелкий комментарий рядом 7) Отдельное текстовое пояснение как работает алгоритм. Иначе он будет понятен только вам 0) Но главное, после моих рекомендаций не превратиться в Бориса из известной статьи Как два программиста хлеб пекли

Комментариев нет:

Отправить комментарий