Conversation
* интерфейса и каждый из них реализован(shooting в gun, а modificate в weapon) * абстрактный класс entity c абстрактной функцией printInfo() * КАЖДЫЙ класс содержит >2 полей * в каждом классе есть параметризированный конструктор * реализация инкапсуляции в entity, класс coords, где сеттеры posX posY являются private * статическое поле и метод в entity, counter и displayCounter() * методы в каждом классе * методы реализовывают какую-то сложную логику
DS-170
suggested changes
Nov 13, 2024
DS-170
left a comment
There was a problem hiding this comment.
Оставил рекомендательные комментарии. Сама работа не соответствует некоторым условиям задачи:
- Нарушение ООП/ФП. Каждый класс/интерфейс должен быть в своем файле отдельно
- Login должен содержать только латинские буквы, цифры и знак подчеркивания.
- Password должен содержать только латинские буквы, цифры и знак подчеркивания.
- WrongPasswordException и WrongLoginException - пользовательские классы исключения с двумя конструкторами – один по умолчанию, второй принимает сообщение исключения и передает его в конструктор класса Exception.
- Используем multi-catch block.
Owner
Author
|
Исправил |
Owner
Author
|
Исправил
ср, 13 нояб. 2024 г., 11:19 DS-170 ***@***.***>:
… ***@***.**** requested changes on this pull request.
Оставил рекомендательные комментарии. Сама работа не соответствует
некоторым условиям задачи:
- Нарушение ООП/ФП. Каждый класс/интерфейс должен быть в своем файле
отдельно
- Login должен содержать только латинские буквы, цифры и знак
подчеркивания.
- Password должен содержать только латинские буквы, цифры и знак
подчеркивания.
- WrongPasswordException и WrongLoginException - пользовательские
классы исключения с двумя конструкторами – один по умолчанию, второй
принимает сообщение исключения и передает его в конструктор класса
Exception.
- Используем multi-catch block.
------------------------------
In .idea/uiDesigner.xml
<#2 (comment)>
:
> @@ -0,0 +1,124 @@
+<?xml version="1.0" encoding="UTF-8"?>
Пакет .idea нужно убрать из ПР и добавить в gitignore
------------------------------
In src/Main.java
<#2 (comment)>
:
> public class Main {
- public static void main(String[] args) {
- //TIP Press <shortcut actionId="ShowIntentionActions"/> with your caret at the highlighted text
- // to see how IntelliJ IDEA suggests fixing it.
- System.out.printf("Hello and welcome!");
-
- for (int i = 1; i <= 5; i++) {
- //TIP Press <shortcut actionId="Debug"/> to start debugging your code. We have set one <icon src="AllIcons.Debugger.Db_set_breakpoint"/> breakpoint
- // for you, but you can always add more by pressing <shortcut actionId="ToggleLineBreakpoint"/>.
- System.out.println("i test git= " + i);
+ public static void main(String[] args) throws Exception {
+ /*✅
В данном кейсе лучше использовать JavaDoc
/**
* ✅
*✅ Создать статический метод который принимает на вход три параметра:
login, password и confirmPassword.
*✅ Login должен содержать только латинские буквы, цифры и знак
подчеркивания.
*✅ Длина login должна быть меньше 20 символов. Если login не соответствует
этим требованиям, необходимо выбросить WrongLoginException.
*✅ Password должен содержать только латинские буквы, цифры и знак
подчеркивания. Длина password должна быть меньше 20 символов.
*Также password и confirmPassword должны быть равны. Если password не
соответствует этим требованиям, необходимо выбросить
*WrongPasswordException.
*✅ WrongPasswordException и WrongLoginException - пользовательские классы
исключения с двумя конструкторами
*✅ один по умолчанию, второй принимает сообщение исключения и передает его
в конструктор класса Exception.
*✅ Обработка исключений проводится внутри метода.
*✅ Используем multi-catch block.
*✅ Метод возвращает true, если значения верны или false в другом случае.
*/
------------------------------
In src/Main.java
<#2 (comment)>
:
> +
+ String login = "Default_Login";
+ String password = "Default_Password123";
+ String confirmPassword = "Default_Password123";
+ if (args.length == 3){
+ login = args[0];
+ password = args[1];
+ confirmPassword = args[2];
+ }
+
+ System.out.println(authentification(login,password,confirmPassword));
+ }
+ public static boolean authentification(String login,String password, String confirmPassword) throws Exception{
+ boolean auth = false;
+ try {
+ // используем регулярное выражение \w для проверки логина и пароля
Закомментированную строку лучше не оставлять в проекте
------------------------------
In src/Main.java
<#2 (comment)>
:
> + String login = "Default_Login";
+ String password = "Default_Password123";
+ String confirmPassword = "Default_Password123";
+ if (args.length == 3){
+ login = args[0];
+ password = args[1];
+ confirmPassword = args[2];
+ }
+
+ System.out.println(authentification(login,password,confirmPassword));
+ }
+ public static boolean authentification(String login,String password, String confirmPassword) throws Exception{
+ boolean auth = false;
+ try {
+ // используем регулярное выражение \w для проверки логина и пароля
+ boolean loginCheck = Pattern.compile("\\w").matcher(login).find() && login.length()<20;
Нет проверки на соответствие: цифры/латинские буквы/'
*'(знак подчеркивания) Можно использовать RegExp - "[A-Za-z0-9*]+"
------------------------------
In src/Main.java
<#2 (comment)>
:
> + try {
+ // используем регулярное выражение \w для проверки логина и пароля
+ boolean loginCheck = Pattern.compile("\\w").matcher(login).find() && login.length()<20;
+ boolean passwordCheck = Pattern.compile("\\w").matcher(password).find() && login.length()<20 && (password.equals(confirmPassword));
+ if (loginCheck && passwordCheck) {
+ auth = true;
+ System.out.println("You authorizated!");
+ }
+ else if (!loginCheck) {
+ throw new WrongLoginException();
+ }
+ else if(!passwordCheck) {
+ throw new WrongPasswordException();
+ }
+ }
+ catch (WrongLoginException LoginException){
В задании нужно было использовать multi-catch block.
catch (WrongLoginException | WrongPasswordException e) {
//Обработка
}
------------------------------
In src/Main.java
<#2 (comment)>
:
> + }
+
+ static class WrongLoginException extends Exception{
+ WrongLoginException(){
+ super("Wrong login!");
+ }
+ WrongLoginException(String message){
+ super(message);
+ }
+ }
+ static class WrongPasswordException extends Exception{
+ WrongPasswordException(){
+ super("Wrong password!");
+ }
+ WrongPasswordException(String message){
+ super(message);
}
}
}
Пустая строка нужна в конце для корректной работы Git
------------------------------
In src/Main.java
<#2 (comment)>
:
> + }
+ catch (WrongLoginException LoginException){
+ auth = false;
+ System.out.println("ERR: "+ LoginException.getMessage());
+ }
+ catch (WrongPasswordException PasswordException){
+ auth = false;
+ System.out.println("ERR: "+ PasswordException.getMessage());
+ }
+ finally {
+ return auth;
+ }
+ }
+
+ static class WrongLoginException extends Exception{
+ WrongLoginException(){
Конструктор по умолчанию должен выглядеть так:
public WrongPasswordException() {
super();
}
—
Reply to this email directly, view it on GitHub
<#2 (review)>,
or unsubscribe
<https://github.com/notifications/unsubscribe-auth/BA6POAJVUQZH32DXUCS2GH32AL4OXAVCNFSM6AAAAABQBUVGYSVHI2DSMVQWIX3LMV43YUDVNRWFEZLROVSXG5CSMV3GSZLXHMZDIMZSGA4TMNJTGM>
.
You are receiving this because you authored the thread.Message ID:
***@***.***>
|
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
No description provided.