Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

minor changes #2

Open
wants to merge 1 commit into
base: homework2
Choose a base branch
from
Open

minor changes #2

wants to merge 1 commit into from

Conversation

medvalna
Copy link
Owner

No description provided.

@LilyKras
Copy link

LilyKras commented Jun 27, 2023

Чистота кода и общая структура проекта
Есть up-to-date README со ссылкой на загрузку .apk, перечнем реализованных фич, пара скриншотов - apk нерабочий (дебаг версия, не удалось скачать) + лучше дать ссылку на скачивание
Добавлен и работает flutter_lints, в коде нет необоснованных игноров правил
Форматирование кода присутствует - его на половину нет(запускала format - код менялся)
Код разбит на фичи и слои (не важно, feature-first / layer-first) - тут все не очень понятно организовано (почему сохранение это модель? а экраны перестали быть частью ui?)

State-Management
Для стейт-менеджмента используется любое решение: Stateful виджеты, любая библиотека, что угодно (не глобальные переменные)
Консистентность данных при редактировании на разных экранах: изменил на одном экране, проросло на другой мгновенно без плясок с открытием чего-либо туда-сюда - у тебя нет половины функциональности (например, экрана редактирования просто нет)

Получение и хранение данных
Реализована работа с бэкендом, данные отправляются/получаются с сервера
Работа с сетью выделена в отдельный слой, код инкапсулирован. Отсутствует логика в слое представления
Ну ее просто нет

Организовано сохранение данных на диск при помощи одной из представленных библиотек (в целом данные не полные - нет дедлайна и важности, поэтому и сохраняешь только часть данных)
Работа выделена в отдельный слой (не входит в отдельный слой, но тип "отделено")

Разное
Работа с асинхронным кодом реализована однородно: нет бессвязной мешанины из .then и async/await, подход выбран логично
Интернационализация: используется пакет intl или аналогичный, строки изолированы и не захардкожены - ошибки при использовании AppLocalizations.of(context)!.helloWorld - везде у тебя нет восклицательного знака (ошибка)

ДОПОЛНИТЕЛЬНО: iphone не запускается(((
https://stackoverflow.com/a/76481892
https://github.com/MedVAL-na/ToDoList/blob/28f0ba8f2ed4cb3690deb2b33ec00da7c7bd5192/lib/main.dart#L6C1-L6C42 - тут убрать точку

+приложение вообще не запустилось (бесконечная загрузка, если первый экран приветственный)

@LilyKras
Copy link

Еще немного:

В main.dart есть проверка if ios/android. Но material под cupertino подстраивается и такие проверки не нужны)

https://www.youtube.com/live/9LvO7xkueT4?feature=share. Тут рассказывается, почему нужно делать отдельные виджеты, а не функции, которые возвращают виджеты

@olegalibekov
Copy link

Чистота кода и общая структура проекта (max 5 баллов)

  • Есть up-to-date README со ссылкой на загрузку .apk, перечнем реализованных фич, пара скриншотов (1/1 баллов)
    Комментарий: APK несовместим с устройством, на которое устнавливался (Samsung A52, Android 13.0)

  • Добавлен и работает flutter_lints, в коде нет необоснованных игноров правил (1/1 баллов)

  • Форматирование кода присутствует (0.5/1 баллов)
    Комментарий: например, todo_event.dart не содержит форматирование

  • Код разбит на фичи и слои (не важно, feature-first / layer-first) (1/2 баллов)
    Комментарий: например, директория models содержит NavigationManager, PersistenceManager

State-Management (max 8 баллов)

  • Для стейт-менеджмента используется любое решение: Stateful виджеты, любая библиотека, что угодно (не глобальные переменные) (5/5 балов)

  • Консистентность данных при редактировании на разных экранах: изменил на одном экране, проросло на другой мгновенно без плясок с открытием чего-либо туда-сюда (1.5/3 баллов)
    Комментарий: для проверки консистентности отсутствует экран редактирования ToDo-элемента

Получение и хранение данных (max 10 баллов)

  • Реализована работа с бэкендом, данные отправляются/получаются с сервера (0/3 баллов)

    • Работа с сетью выделена в отдельный слой, код инкапсулирован. Отсутствует логика в слое представления (0/2 балла)
      Комментарий: отсутствует работа с backend
  • Организовано сохранение данных на диск при помощи одной из представленных библиотек (1.5/3 балла)
    Комментарий: не все возможные данные сохраняются

    • Работа выделена в отдельный слой (1/2 балл).
      Комментарий: выделена противоречиво (т.к. находится в директории models)

Разное (max 3 баллов)

  • Работа с асинхронным кодом реализована однородно: нет бессвязной мешанины из .then и async/await, подход выбран логично (1/1 баллов)
  • Интернационализация: используется пакет intl или аналогичный, строки изолированы и не захардкожены (2/2 баллов)

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