Список вещей, на которые стоит обратить внимание при разработке любого функционала.
Backend (Laravel)
- Политики (нужно ли использовать политики)
- Транзакции (стоит ли обернуть в транзакцию)
- Кэширование (возможно стоит использовать кэширование результата)
- Конфиг файлы (получение параметров из env стоит перенести в конфиги)
- SOLID, Dry, Kiss, Yagni (соответствует ли код данным принципам)
- Генерация и отлов ошибок (возможно ли появление ошибки, стоит ли пользователю показать ошибку, как её лучше показать)
Frontend (Vue)
- Компонент (возможно функционал стоит вынести в отдельный компонент)
- Миксин (возможно функционал стоит вынести в отдельный миксин)
- Мутации (сначала мутации, потом глобальные сеттеры)
DB
- Индекс (стоит ли добавить индекс)
- Уникальность (добавить уникальное сочетание колонок)
- join вместо whereIn (для экономии памяти лучше использовать join)
- Проверить план запроса. Возможно есть варианты лучше и быстрее
Поддержка
- Насколько легко расширять и дорабатывать новый функционал
- Насколько просто добавить новый тип, сущность или другую единицу в новый функционал
- Можно ли этот функционал выделить в отдельный модуль
Общее
- Стиль кода (проверить на соответствие внутреннему и общепринятому стилю)
- Названия классов, методов, свойств (достаточно ли говорящие или стоит добавить комментарий)
- Лишнее при разработке (не остался ли где сервисный код, вроде логгирования)
- Уже есть такое (убедиться, что сделанное тобой не было уже реализовано, вроде работы с коллекциями, массивами, строками и т.д.)
- Пользователи глупы и ленивы (не сломает ли юзер твой функционал и нет ли в нём потенциальной ошибки)
- Попробовать выполнить изменённый запрос из консоли с другими параметрами (проверка уязвимости)
- Провести испытания с самыми неожиданными условиями