Skip to content

Выполненное задание к 7 спринту - #1

Open
develop-mdv wants to merge 1 commit into
mainfrom
dev
Open

develop-mdv wants to merge 1 commit into
mainfrom
dev

Conversation

@develop-mdv

Copy link
Copy Markdown
Owner

Выполненное задание к 7 спринту

archives.forEach { archive ->
menuItems.add(archive.name to { NoteManager(archive).start() })
}
menuItems.add("Выход" to { exitProcess(0) })

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

exitProcess лучше не использовать для завершения программы - лучше дать программе завершиться естественным путём, вернув управление в точку старта - функцию main

Comment on lines +20 to +24
val name = readLine()?.trim() ?: ""
if (name.isEmpty()) {
println("Имя архива не может быть пустым.")
return
}

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/kotlin/Menu.kt
Comment on lines +14 to +18
val choice = input.toIntOrNull()
if (choice == null || choice !in items.indices) {
println("Ошибка: введите корректный номер пункта меню.")
continue
}

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/kotlin/Models.kt
@@ -0,0 +1,2 @@
data class Note(val name: String, val text: String)
data class Archive(val name: String, val notes: MutableList<Note> = mutableListOf()) No newline at end of file

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

В data классах не рекомендуется хранить мьютабельные данные (в данном случае MutableList), т.к. в многопоточных средах могут возникнуть проблемы с такими объектами, а именно с доступом к чтению и записи изменяемых полей. У data классов автоматически генерируется функция copy, которую можно использовать для изменения полей объекта с помощью его копирования

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