init
This commit is contained in:
148
DEVELOPMENT.md
Normal file
148
DEVELOPMENT.md
Normal file
@ -0,0 +1,148 @@
|
||||
# Правила локальной разработки
|
||||
|
||||
> **Обязательно к прочтению перед началом работы!**
|
||||
|
||||
---
|
||||
|
||||
## Инструменты
|
||||
|
||||
### MCP серверы
|
||||
- **Serena** — для работы с кодом (символьная навигация, редактирование)
|
||||
- **Context7** — для получения актуальной документации по библиотекам
|
||||
|
||||
Используй эти инструменты для эффективной работы с кодовой базой.
|
||||
|
||||
---
|
||||
|
||||
## Локальное окружение
|
||||
|
||||
### Порты
|
||||
| Сервис | Порт |
|
||||
|--------|------|
|
||||
| Frontend (React) | 4000 |
|
||||
| Backend (NestJS) | 4001 |
|
||||
| PostgreSQL | 5432 |
|
||||
|
||||
### База данных
|
||||
PostgreSQL поднимается в Docker. Файл `docker-compose.yml` в корне проекта.
|
||||
|
||||
```bash
|
||||
# Запуск БД
|
||||
docker-compose up -d postgres
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Правила работы
|
||||
|
||||
### 1. Никогда не запускай сервисы самостоятельно
|
||||
|
||||
**ЗАПРЕЩЕНО** запускать `npm run dev`, `npm start` и подобные команды.
|
||||
|
||||
**Вместо этого:**
|
||||
1. Убедись, что команда запуска есть в `package.json`
|
||||
2. Если команды нет — создай её
|
||||
3. Попроси пользователя запустить:
|
||||
|
||||
```
|
||||
Запусти, пожалуйста:
|
||||
cd backend && npm run dev
|
||||
```
|
||||
|
||||
### 2. Тестирование — только ручное
|
||||
|
||||
После завершения задачи:
|
||||
1. Опиши сценарии для проверки
|
||||
2. Попроси пользователя проверить вручную
|
||||
3. Дождись фидбека
|
||||
|
||||
**Формат:**
|
||||
```
|
||||
Готово! Проверь, пожалуйста:
|
||||
|
||||
1. Открой http://localhost:4000
|
||||
2. Нажми кнопку "Создать идею"
|
||||
3. Заполни форму и сохрани
|
||||
4. Убедись, что идея появилась в списке
|
||||
|
||||
Напиши, если что-то не работает.
|
||||
```
|
||||
|
||||
### 3. Работа поэтапно
|
||||
|
||||
Делай работу **небольшими итерациями**:
|
||||
|
||||
1. **Один этап = одна логическая единица**
|
||||
- Один endpoint
|
||||
- Один компонент
|
||||
- Одна фича
|
||||
|
||||
2. **После каждого этапа:**
|
||||
- Сообщи что сделано
|
||||
- Дай сценарий проверки
|
||||
- Дождись подтверждения
|
||||
|
||||
3. **Не делай сразу много:**
|
||||
- ❌ Весь CRUD за раз
|
||||
- ✅ Сначала GET, проверили, потом POST, проверили...
|
||||
|
||||
### 4. Команды в package.json
|
||||
|
||||
Все команды запуска должны быть в `package.json`:
|
||||
|
||||
```json
|
||||
// backend/package.json
|
||||
{
|
||||
"scripts": {
|
||||
"dev": "nest start --watch",
|
||||
"build": "nest build",
|
||||
"start:prod": "node dist/main"
|
||||
}
|
||||
}
|
||||
|
||||
// frontend/package.json
|
||||
{
|
||||
"scripts": {
|
||||
"dev": "vite --port 4000",
|
||||
"build": "vite build",
|
||||
"preview": "vite preview"
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Чеклист перед началом работы
|
||||
|
||||
- [ ] Прочитал CONTEXT.md
|
||||
- [ ] Прочитал ROADMAP.md (понял текущую фазу)
|
||||
- [ ] Понял задачу
|
||||
- [ ] Готов работать поэтапно
|
||||
- [ ] Помню: не запускаю сервисы сам, прошу пользователя
|
||||
|
||||
---
|
||||
|
||||
## Пример правильного workflow
|
||||
|
||||
```
|
||||
Пользователь: Сделай endpoint для получения списка идей
|
||||
|
||||
Агент:
|
||||
1. Читает документацию через Context7 (NestJS, TypeORM)
|
||||
2. Использует Serena для навигации по коду
|
||||
3. Создаёт endpoint GET /api/ideas
|
||||
4. Сообщает:
|
||||
|
||||
"Создал endpoint GET /api/ideas.
|
||||
|
||||
Запусти backend:
|
||||
cd backend && npm run dev
|
||||
|
||||
Проверь:
|
||||
curl http://localhost:4001/api/ideas
|
||||
|
||||
Должен вернуться пустой массив: { data: [], meta: {...} }"
|
||||
|
||||
5. Ждёт фидбек
|
||||
6. Переходит к следующему этапу
|
||||
```
|
||||
Reference in New Issue
Block a user