Skip to content

и снова пробую сдать работу - #1

Open
I1kham wants to merge 1 commit into
mainfrom
dev
Open

I1kham wants to merge 1 commit into
mainfrom
dev

Conversation

@I1kham

@I1kham I1kham commented Jun 4, 2023

Copy link
Copy Markdown
Owner

и снова здравствуйте

Comment thread README.md
@@ -1 +1,29 @@
# Пустой репозиторий для работы с Java кодом в Android Studio
# мы тут исходя из своих способностей городим консольное приложение кто во что гаразд (•◡•) /

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

😄

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Многие техники и практики при разработке программ приходят лишь с опытом. Для всех нас еще совсем недавно вызывало огромную головную боль вопрос "а нужно ли мне вытаскивать эту логику в отдельный метод?" или "а как правильно назвать эту переменную, чтобы всем было понятно?". Мы все с понимаем относимся к пути изучения разработки, т.к. все проходили примерно через одни и те же трудности)

Comment thread src/main/java/Main.java
public static void main(String[] args) {
System.out.println("Hello world!");
Locale.setDefault(ROOT);
ProductList.productList = ""; /*инициализируем переменные, содержащиеся в соответствующих классах*/

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⏫ Лучше для классов ProductList, Calculate и UI создать объекты, а не хранить все данные в статических синглтонах. Обычно , если какой-то класс хранит данные, необходимые для работы программы, стоит создавать объекты этих классов, чтобы обеспечить алокацию (уничтожение) объектов и их данных из памяти, когда мы их уже не используем.
Если же класс содержит лишь функции, которые исполняют какое-то действие бех сохранения промежуточных значений, можно делать данные функции static.

В текущем спринте мы познакомились с мощной парадигмой программирования - ООП. Стоит воспользоваться принципами этой парадигмы, чтобы организовать работу программы

Comment thread src/main/java/UI.java
public static boolean readyToGo(Scanner input, String needVariableType) {/*метод, для получения разрешения на продолжения программы
в зависимости от от двух аргументов, введенной переменной и строки, включающая в себя необходимый ти переменной,
возвращает true или false, в ходе работы использует методы прооверки текущего класса*/
switch (needVariableType) {

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

👍 Очень крутая валидация на вводимые значения. Выглядит мощно

⏫ Единственное, делать needVariableType через String - плохая практика. Лучше применить тип с огранизенными количеством значенией - например enum class.

@@ -0,0 +1,18 @@
public class ProductList { /*класс для хранения списка продуктов, как по мне
*костыль, но в массивы мы не умеем ¯\_( ͡❛ ͜ʖ ͡❛)_/¯*/
public static String productList;

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⏫ Решение хранить значения сразу в String тоже имеет иместо быть. Но каждый раз при добавлении нового продукта и конкатенции (соединении) строк происходит создание нового экземпляра String, что пораждает большое количество неиспользуемых объектов. Чтобы это исправить можно воспользоваться StringBuilder. Вот статья на JavaRush, о преимуществах StringBuilder и как его правильно использовать.

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

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants