Памятка по разработке

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

Backend (Laravel)

  • Политики (нужно ли использовать политики)
  • Транзакции (стоит ли обернуть в транзакцию)
  • Кэширование (возможно стоит использовать кэширование результата)
  • Конфиг файлы (получение параметров из env стоит перенести в конфиги)
  • SOLID, Dry, Kiss, Yagni (соответствует ли код данным принципам)
  • Генерация и отлов ошибок (возможно ли появление ошибки, стоит ли пользователю показать ошибку, как её лучше показать)

Frontend (Vue)

  • Компонент (возможно функционал стоит вынести в отдельный компонент)
  • Миксин (возможно функционал стоит вынести в отдельный миксин)
  • Мутации (сначала мутации, потом глобальные сеттеры)

DB

  • Индекс (стоит ли добавить индекс)
  • Уникальность (добавить уникальное сочетание колонок)
  • join вместо whereIn (для экономии памяти лучше использовать join)
  • Проверить план запроса. Возможно есть варианты лучше и быстрее

Поддержка

  • Насколько легко расширять и дорабатывать новый функционал
  • Насколько просто добавить новый тип, сущность или другую единицу в новый функционал
  • Можно ли этот функционал выделить в отдельный модуль

Общее

  • Стиль кода (проверить на соответствие внутреннему и общепринятому стилю)
  • Названия классов, методов, свойств (достаточно ли говорящие или стоит добавить комментарий)
  • Лишнее при разработке (не остался ли где сервисный код, вроде логгирования)
  • Уже есть такое (убедиться, что сделанное тобой не было уже реализовано, вроде работы с коллекциями, массивами, строками и т.д.)
  • Пользователи глупы и ленивы (не сломает ли юзер твой функционал и нет ли в нём потенциальной ошибки)
  • Попробовать выполнить изменённый запрос из консоли с другими параметрами (проверка уязвимости)
  • Провести испытания с самыми неожиданными условиями