Ежедневный workflow разработчика
Руководство по типичному рабочему дню при разработке Integ API.
Начало рабочего дня
1. Подготовка окружения
bash
# Перейти в директорию проекта
cd integ-api
# Обновить код из репозитория
git pull origin dev
# Запустить инфраструктуру
npm run docker:up2. Проверка состояния
bash
# Проверить контейнеры
docker ps
# Ожидаемый вывод:
# CONTAINER ID IMAGE STATUS PORTS
# xxx postgres:16 Up 0.0.0.0:5435->5432/tcp3. Запуск приложения
bash
# Запустить dev сервер
npm start
# Проверить что всё работает
curl http://localhost:3005/health
# {"status":"ok"}Разработка
Создание новой фичи
bash
# 1. Создать ветку
git checkout -b feature/my-feature
# 2. Написать код
# ... coding ...
# 3. Проверить типы
npm run typecheck
# 4. Проверить линтинг
npm run lint
# 5. Запустить тесты (если есть)
npm testРабота с базой данных
bash
# Создать новую миграцию после изменения entity
npm run migration:generate -- src/migrations/MyMigration
# Применить миграции
npm run migration:run
# Откатить последнюю миграцию (если нужно)
npm run migration:revertРабота с API
bash
# Проверить эндпоинт через curl
curl http://localhost:3005/api/integrations \
-H "Authorization: Bearer $TOKEN"
# Или использовать Swagger UI
open http://localhost:3005/api/referenceПеред коммитом
Автоматические проверки
При коммите автоматически запускаются:
- removeComments - удаление комментариев
- removeReturnTypes - удаление явных return types
- pretty-quick - форматирование Prettier
- lint-staged - ESLint проверка
Ручные проверки
bash
# Проверить что нет ошибок типов
npm run typecheck
# Исправить линтинг ошибки
npm run lint:fix
# Отформатировать код
npm run formatСоздание коммита
bash
# Добавить файлы
git add .
# Создать коммит с описательным сообщением
git commit -m "feat: add new integration endpoint"
# Формат сообщения:
# feat: новая функциональность
# fix: исправление бага
# refactor: рефакторинг без изменения функционала
# docs: изменения документации
# chore: технические измененияПеред пушем
Автоматические проверки pre-push
- typecheck - проверка TypeScript
- lint - полная проверка ESLint
- build:dev - тестовая сборка
Пуш изменений
bash
# Отправить изменения
git push origin feature/my-feature
# Если pre-push hook выдаёт ошибки:
npm run lint:fix
npm run typecheck
# Исправить ошибки и повторить pushЗавершение рабочего дня
Сохранение работы
bash
# Закоммитить незавершённую работу (WIP)
git add .
git commit -m "WIP: work in progress"
# Или спрятать изменения
git stash save "My work in progress"Остановка инфраструктуры
bash
# Остановить контейнеры
npm run docker:downБыстрые команды
Cheat sheet
| Действие | Команда |
|---|---|
| Запуск | npm run docker:up && npm start |
| Проверка | npm run typecheck && npm run lint |
| Миграция | npm run migration:run |
| Swagger | open http://localhost:3005/api/reference |
| Логи | docker logs integ-api -f |
| Стоп | npm run docker:down |
Алиасы (опционально)
Добавьте в ~/.bashrc или ~/.zshrc:
bash
alias integ-start="cd ~/Work/integ-api && npm run docker:up && npm start"
alias integ-stop="cd ~/Work/integ-api && npm run docker:down"
alias integ-check="npm run typecheck && npm run lint"
alias integ-migrate="npm run migration:run"Типичные сценарии
Сценарий 1: Добавление нового эндпоинта
bash
# 1. Создать ветку
git checkout -b feature/new-endpoint
# 2. Создать/изменить файлы:
# - src/app/module/controllers/module.controller.ts
# - src/app/module/dtos/new-dto.ts
# - src/app/module/services/module.service.ts
# 3. Проверить
npm run typecheck
npm run lint
# 4. Протестировать через Swagger/curl
# 5. Закоммитить
git add .
git commit -m "feat: add GET /api/new-endpoint"
# 6. Создать PR
git push origin feature/new-endpointСценарий 2: Изменение схемы БД
bash
# 1. Изменить entity
# src/app/module/entities/entity.entity.ts
# 2. Сгенерировать миграцию
npm run migration:generate -- src/migrations/AddNewColumn
# 3. Проверить миграцию
cat src/migrations/xxxxx-AddNewColumn.ts
# 4. Применить
npm run migration:run
# 5. Проверить в БД
docker exec -it postgres psql -U postgres -d integ
\d table_name
# 6. Закоммитить
git add .
git commit -m "feat: add new_column to table"Сценарий 3: Исправление бага
bash
# 1. Создать ветку от dev
git checkout dev
git pull
git checkout -b fix/bug-description
# 2. Найти и исправить баг
# 3. Проверить
npm run typecheck
npm run lint
npm test
# 4. Закоммитить
git add .
git commit -m "fix: correct validation in handler"
# 5. Push и PR
git push origin fix/bug-descriptionСвязанные документы
- Git Workflow - детали git процесса
- Правила кода - стандарты написания
- Частые ошибки - решение проблем
- Первоначальная настройка - если нужно переустановить