Skip to content

Conversation

github-classroom[bot]
Copy link
Contributor

@github-classroom github-classroom bot commented Mar 20, 2023

👋! GitHub Classroom created this pull request as a place for your teacher to leave feedback on your work. It will update automatically. Don’t close or merge this pull request, unless you’re instructed to do so by your teacher.
In this pull request, your teacher can leave comments and feedback on your code. Click the Subscribe button to be notified if that happens.
Click the Files changed or Commits tab to see all of the changes pushed to main since the assignment started. Your teacher can see this too.

Notes for teachers

Use this PR to leave feedback. Here are some tips:

  • Click the Files changed tab to see all of the changes pushed to main since the assignment started. To leave comments on specific lines of code, put your cursor over a line of code and click the blue + (plus sign). To learn more about comments, read “Commenting on a pull request”.
  • Click the Commits tab to see the commits pushed to main. Click a commit to see specific changes.
  • If you turned on autograding, then click the Checks tab to see the results.
  • This page is an overview. It shows commits, line comments, and general comments. You can leave a general comment below.
    For more information about this pull request, read “Leaving assignment feedback in GitHub”.

Subscribed: @wokuparalyzed @RoketFlame @Lesh79

github-classroom bot and others added 30 commits March 20, 2023 16:43
fix: fix text in LICENSE.txt
feat: release simple_add function
feat: add fun compareTo for BSNode
refactor: rename simple_add to simpleAdd
feat: add fun equals for KeyValue and BSNode
fix: change returned type of simpleContains to NodeType
fix: field parent is correct now (in simpleAdd)
refactor: reformat source files
struct: change struct of project for gradle building
fix: change main class in build.gradle.kts
struct: delete App.kt (useless)
Copy link

@rudolf101 rudolf101 left a comment

Choose a reason for hiding this comment

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

В целом, неплохо, но есть что исправить

CONTRIBUTING.md Outdated
@@ -0,0 +1,40 @@
# Внесение правок

Choose a reason for hiding this comment

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

Славно иметь так называемый Welcome note, где вы поблагодарите человека за потенциальный вклад в проект, а также расскажете чем именно он может помочь, например:

  • Завести баг
  • Предложить новую фичу
  • Исправить существующий баг
  • etc.

# Внесение правок

## Основные советы

Choose a reason for hiding this comment

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

Не говорите что НЕ нужно делать, лучше предоставьте примерный пайплайн человеку, который хочет контрибьютить. Можно сказать, что вы используете Github Flow, поэтому все изменения принимаются через ПР'ы, расскажите о возможных требованиях к названию ветки из мастера. Если новый код требует тестов, нужно ли добавить тесты, если изменилось API, нужно ли обновить документацию? Попросите человека проверить, что его код удовлетворяет принятому в проекте codestyle и приложите ссылку, если таковой имеется.

CONTRIBUTING.md Outdated
1. Не используйте merge, только rebase (для сохранения линейной истории коммитов)
2. Не менять чужие ветки без крайней необходимости
3. Перепроверьте историю коммитов перед созданием пулл реквеста
4. **Перепроверьте, что вы в правильной ветке**, никогда не коммитьте напрямую в main

Choose a reason for hiding this comment

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

История коммитов отлично сохраняются и при использовании merge, вероятно, тут нужен контекст. Остальные пункты немного похожи на воду.

CONTRIBUTING.md Outdated

## Правила для пулл реквестов

**НЕ ТЫКАТЬ НА ЗЕЛЕНУЮ КНОПОЧКУ `REBASE AND MERGE` БЕЗ РЕВЬЮ**

Choose a reason for hiding this comment

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

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

CONTRIBUTING.md Outdated

Если тыкаете на зеленую кнопочку, то **убедитесь**, что на ней написано `REBASE AND MERGE`

Ревью происходит в виде комметариев к пулл реквестам, обсуждения в чате команды и личном общении. No newline at end of file

Choose a reason for hiding this comment

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

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

DOCS.md Outdated

## Storing Trees

`teemEight` provides ~~`JsonRepository`, `SqlRepository` and~~ `Neo4jRepository` to save & load trees.

Choose a reason for hiding this comment

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

В ридми написано, что .json и sql поддерживается, тут они перечеркнуты?

private val sessionFactory = SessionFactory(configuration, "repository")
private val session = sessionFactory.openSession()

//converts Neo4jNodeEntity to SerializableNode.

Choose a reason for hiding this comment

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

Комменты

protected val strategy: Serialization<T, NodeType, TreeType, *>
) {
//An extension function that converts an instance of a NodeType to a serializable
//representation of a SerializableNode using the serialization strategy

Choose a reason for hiding this comment

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

В общем, советую изучить KDoc syntax если вы так любите писать комментарии.

)
}
}
} No newline at end of file

Choose a reason for hiding this comment

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

Возможно хочется увидеть для RBTree тесты с крайними случаями, например, когда удаляем ноду, которая приходилась правым сыном для красного родителя и так далее.

}

@Test
fun `check invariant while deleting`() {

Choose a reason for hiding this comment

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

Общее ко всем тестам, вместо проверки всего и сразу лучше добавить больше проверок на специфичные случаи, например на удаление несуществующей ноды, или на удаление корня, и тд.

Было бы славно еще добавить отчет о покрытии.

Copy link

@rudolf101 rudolf101 left a comment

Choose a reason for hiding this comment

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

Косметические моменты поправить, а так следующие наблюдения:

  • Приложение оформлено довольно хорошо
  • Возле кнопки "выбрать файл" хотелось бы увидеть кнопку "создать пустой", без ридми непонятно что пустой файл нужно создать самому и выбрать после
  • Кнопка перехода на домашнюю страницу должна учитывать были ли сохранены изменения, а то случайно жмакнул туда и потерял весь прогресс. Обычный пайплайн в такой ситуации следующий: файл не изменился с последнего сохранения -> переходим сразу домой, если файл изменился, делаем уведомление с подтверждением, что все несохраненные изменения будут утеряны -> переходим домой / сохраняем файл и только потом идем домой
  • В целом, кнопки подобраны хорошо, нативно понятно что они делают
  • Все функции, зума, перемещения, изменения раскладки и тд работают хорошо, немного смущает, что вся левая часть приложения под окном ввода не прозрачная
  • Кажется не работает кнопка поиска, что бы я туда не вводил ничего не происходит
  • Круто было бы подкрутить логи
  • Кнопка для сброса лейаута была бы кстати, раз вы все равно его сбрасываете при добавлении ноды
  • Хочется видеть какие-то уведомления когда что-то происходит, условно я добавляю вершинку, появляется уведомление, что вершина добавлена. Если попробую добавить такую же, то появится уведомление, что вершина уже существует, и так со всем
  • По нажатию на вершину или при наведении хочется видеть значение вершины
  • Раз сейчас поддерживается только .json, зачем остальные пункты в меню?) Можно их пока убрать, чтобы не смущали. Забавно, что это информация только в ридми. Как вариант сделайте выбор по умолчанию на .json, а остальные варианты оставьте невыбираемыми с пометкой "Coming soon" или что-то в этом роде

Итого, мне понравилось, видно, что немного не хватило времени/желания, с другой стороны патч в доте сам себя не изучит.

// val testTree = avlRepo.loadByName("test")
// println(testTree.preOrder()) // output pre-order traversal of tree
// avlRepo.save("wow", tree)
// println(avlRepo.getNames())

Choose a reason for hiding this comment

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

Почему это закомменчено? Это должно быть здесь?

avlRepo.save("test", tree)
val testTree = avlRepo.loadByName("test")
println(testTree.preOrder()) // output pre-order traversal of tree
``` No newline at end of file

Choose a reason for hiding this comment

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

В доках обязательно нужно добавить раздел с приложением.

import java.awt.Dimension

fun main() = application {
Window(

Choose a reason for hiding this comment

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

Очень не хватило примеров, например .json деревьев где-нибудь в папке sample, чтобы человек мог быстренько скачать, посмотреть как работает.

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.

3 participants