Skip to content

Ежедневный workflow разработчика

Руководство по типичному рабочему дню при разработке Integ API.

Начало рабочего дня

1. Подготовка окружения

bash
# Перейти в директорию проекта
cd integ-api

# Обновить код из репозитория
git pull origin dev

# Запустить инфраструктуру
npm run docker:up

2. Проверка состояния

bash
# Проверить контейнеры
docker ps

# Ожидаемый вывод:
# CONTAINER ID   IMAGE         STATUS   PORTS
# xxx            postgres:16   Up       0.0.0.0:5435->5432/tcp

3. Запуск приложения

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

Перед коммитом

Автоматические проверки

При коммите автоматически запускаются:

  1. removeComments - удаление комментариев
  2. removeReturnTypes - удаление явных return types
  3. pretty-quick - форматирование Prettier
  4. 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

  1. typecheck - проверка TypeScript
  2. lint - полная проверка ESLint
  3. 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
Swaggeropen 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

Связанные документы