Добавить билдер и репозиторий в типовые фичи: что поможет снизить зависимость от бэкенда и позволит писать тесты на моковых данных, при этом унифицировав кодовую базу
Ускорить процесс создания типовых фич: высвободить время под покрытие тестами и решение техдолга, не замедляя основную доставку ценности
Что это такое?
В этой папке собраны готовые решения и проверенные практики для нашего проекта. Когда мы используем их вместе с LLM-агентом, получается мощный инструмент для быстрого и предсказуемого создания бойлерплейта - нудного в письме, но нужного для вынесения абстракций.
Что где лежит
.rules/
├── patterns/ # Готовые решения и шаблоны кода
├── anti-patterns/ # Примеры плохих практик
├── ...
├── components.md # Как работать с компонентами
└── formating.md # Как форматировать код
Как работать с LLM-агентом
Основные правила
Берите паттерны по одному
Лучше использовать один-два паттерна за раз
Не пытайтесь сразу применить все паттерны из .rules
Выбирайте только те, которые нужны для текущей задачи
Работа с Git
Перед применением паттернов сделайте stage или commit
Так вы сможете легко откатить изменения, если что-то пойдет не так
Для временного сохранения используйте git stash
Как применять паттерны
Откройте нужный паттерн в редакторе
Используйте его в запросах к LLM-агенту
Например: "Сделай форму входа по примеру из .rules/patterns/form.md и добавь нужные данный бизнес-контекст"
Как это работает с LLM-агентом
LLM лучше понимает за счет ограниченного контекста
Паттерны помогают делать мелкие шаги в правильной последовательности для создания предсказуемого результата
Чем меньше контекст и предсказуемее интерфейс, тем лучше LLM заполнит "пропуски" в шаблоне при помощи доступных данных из бизнес-контекста
Считайте LLM глупым и не давайте ему свободу выбора
Считайте, что любое его решение - наихудшее решение из возможных
Только разработчик знает лучшее решение
Если решение имеет стабильный интерфейс в коде - это хороший паттерн, можете добавить его в .rules
Работа с бизнес-контекстом
Не скармливайте все бизнес-требования или бизнес-аналитику, подготовьте ее, создав файл и вырезав ненужное
Оставляйте файл с бизнес-контекстом в репозитории, пока не завершите работу над имплементацией в коде
Добавляйте свои комментарии о том, что есть что в бизнес-аналитике
Например, подскажите о связи между сущностями, их отношении в бизнес-логике
Учитывайте контекст паттерна в своих комментариях
На пример для паттерна repository: минимум бизнес-логики, максимум сведений о типах данных
Как добавлять новые паттерны
Создание паттерна
За основу берите шаблон из patterns/patterns-template.md
Добавляйте понятные примеры
Пишите про ограничения и особенности
Указывайте связи с другими паттернами
Сохраняйте краткость, но помните, что вам самим его потом читать и редактировать
Как оформлять паттерн
# Название
## В чём проблема
## Как решаем
## Как применять
## Примеры
## Связанные паттерны
Как писать для LLM
Пишите чётко и последовательно
Добавляйте код с комментариями
Добавляйте правильные и неправильные примеры кода
Просите помощи у LLM для форматирования и стандартизации стиля
Используйте markdown для структуры
Как эффективно использовать
Начните с простого
Сначала берите простые паттерны
Постепенно добавляйте сложные
Шаг за шагом пробуйте их сочетать
Держите контекст
Открывайте нужные паттерны под рукой
Ссылайтесь на конкретные части в запросах
Не причиняйте рефакторинг - он размывает контекст
Делайте постепенно
Проверяйте получившийся код
Улучшайте паттерны по результатам
Изучайте и оптимизируйте последовательность своих действий
Делитесь находками на фронтенд викликах
Развивайте паттерны
Добавляйте примеры из реального кода, которые хотите раскатить на весь проект
Обсуждайте и модифицируйте палитру .rules для текущих целей
Как обычно это происходит
Делаем новую фичу
1. Сохраняем текущие изменения (stage/commit)
2. Готовим минимально дробимый бизнес-контекст
3. Смотрим, какой паттерн подойдет
4. Последовательно или одновременно применяем нужные паттерны к бизнес-контексту
5. Добиваемся валидности по типам
6. Сохраняем текущие изменения (stage/commit)
7. Добиваемся работоспособности алгоритма
8. Сохраняем текущие изменения (stage/commit)
9. Рефакторим очевидные неточности
10. Сохраняем текущие изменения (stage/commit)
11. Покрываем тестами - теперь при следующей работе с этим кодом можно просить LLM-агента запускать тесты
Улучшаем паттерны - главное не добиться потрясающего конечного результата а ускорить создание универсальных сценариев
1. Записываем, где пригодился паттерн
2. Добавляем примеры из проекта
3. Дополняем особенности и ограничения
4. Проверяем на LLM
Планы развития
Улучшение работы с бизнес-контекстом
Создать шаблоны для подготовки бизнес-требований
Добавить примеры правильной минимизации аналитики
Сделать чек-листы по работе с разными типами требований
Автоматизация и инструменты
Написать скрипты для быстрой подготовки контекста
Добавить линтеры для проверки правильности паттернов
Сделать инструменты для анализа использования паттернов в коде
Развитие палитры паттернов
Добавить паттерны для работы с новыми фичами проекта