Динамика оценок
0% 25% 50% 75% 100% 16 мая 2026 г.23 мая 2026 г.28 мая 2026 г.11 авг. 2026 г.11 авг. 2026 г.
История ревью
Дата ↓Тема 🔴 🟡 🟢%🟢Замечания
11 августа 2026 г.Utility Types0.322660% Сильная работа: цепочка производных типов (KanbanTask → CreateTaskDTO → Partial) построена правильно, код компилируется, computed readonly, все типы экспортированы. Два обязательных исправления: (1) в теории 1.1 Required<Partial<T>> ≡ T — поля получаются обязательными, нужен просто Partial<Omit<User, 'id'|'createdAt'|'role'>>; (2) tasksByStatus инициализировать объектом со всеми 5 ключами, иначе для пустого статуса в рантайме undefined при том, что типы обещают массив. Мелочи: DTO короче через Omit, id — через crypto.randomUUID(). Пустой App.vue не критичен — по ТЗ код живёт в useKanban.ts и solution.md.
11 августа 2026 г.Renderless Components: абстракция логики без UI2.217747% Сильная реализация renderless-компонента: паттерн, generic-типизация и вынос клавиатуры в композабл — на уровне. Один блокер: при изменении items сбрасывается выбор, но не фокус — закэшированный focusedIndex ведёт к TypeError на Enter/Space (плюс прямое нарушение ТЗ). Плюс функциональные недочёты: глобальный keydown без фильтра target ломает ввод в полях, в slot не передана обязательная clearSelection. После исправлений — тема закрыта.
2 июня 2026 г.Слои приложения1.223758% export забыт, res.ok потерян при рефакторинге, нейминг. Исправлено.
28 мая 2026 г.Presentation vs Container2.19318% Дебаг-вывод в Container, имена пропсов/emit не совпадают, deleteTask с ошибкой
25 мая 2026 г.Анатомия composable3.105338% Отличная архитектура, JSDoc + naming замечания
23 мая 2026 г.Generics: базовый синтаксис, constrained generics0.253220% Много ошибок в ограничениях дженериков и type inference
18 мая 2026 г.Feature-based vs Layer-based1.103240% Dashboard как page, shared/ границы, вопросы не отвечены
16 мая 2026 г.Типы-основа0.1001100% notification?.error→code, narrowing с опциональными полями