docs/architecture/nodejs
2023-01-03 12:08:58 +03:00
..
README.md docs: init golang/nodejs architecture 2023-01-03 12:08:58 +03:00

Архитектура сервиса/микросервиса на NodeJS

Основа:

├── .husky             - Директория для git скриптов
├── deployments        - Директория для деплоя сервиса
├── docs               - Директория с документация
├── src                - Директория с кодом проекта
├── .commitlintrc.json - Файл настройки для проверки формата коммитов
├── .eslintignore      - Файл для перечисления игнорирования линтера
├── .eslintrc          - Файл настройки линтера
├── .gitignore         - Файл для перечисления игнорирования гита
├── .gitlab-ci.yml     - Файл настройки Gitlab CI
├── .prettierrc        - Файл настройки форматтера Prettier
├── Dockerfile         - Файл контейнеризации сервиса
├── jest.config.js     - Файл настройки Jest фреймворка для написания тестов
├── nodemon.json       - Файл настройки nodemon'а
├── package.json       - Файл настройки проекта
├── README.md          - Общий файл документации (путеводитель)
├── tsconfig.json      - Файл настройки typescript'а
├── yarn.lock          - Файл хранения закреплённых версий загруженных пакетов

Структура /.husky:

├── _           - Сгенерированные git скрипты
├── commit-msg  - Настройки скрипта для проверки формата коммита
├── pre-commit  - Настройки скрипта для выполнения других скриптов перед коммитом

Структура /docs:

├── [group]       - Группа документации
│   ├── README.md - Файл документации

Структура /src:

├── configuration          - Директория с модулями для конфигурации сервиса
├── constans               - Директория констант
├── __tests__              - Директория тестов
│   ├── [group]            - Группа тестов
│   │   ├── [name].test.ts - Файл тестов
├── __mocks__              - Директория моков
│   ├── [name].mocks.ts    - Файл моков
│   handlers               - Директория обработчиков
│   ├── [group]            - Группа обработчиков
│   │   ├── helpers.ts     - Различные функции/утилиты для обработчиков
│   │   ├── index.ts       - Обработчики
│   │   ├── middleware.ts  - Промежуточные обработчики
│   │   ├── types.ts       - Все типы и структуры данных, которые касаются только обработчиков этой группы
├── models                 - Все модели MondoDB/PostgreSQL
│   ├── [name].model.ts    - Файл модели данных
├── routes                 - Директория для роутов, которые по определённому пути назначают обработчик
│   ├── [group].routes.ts  - Файл роутов
├── server                 - Директория с утилитами основного серверного модуля для запуска и работы сервиса
├── swagger                - Схема для валидации и генерации документации роутов
├── types                  - Все типы и структуры данных, которые могут использоватся несколькими модулями
│   ├── [group]            - Группа структур данных и типов
│   │   ├── [name].type.ts - Тип / структура данных
│   ├── [name].type.ts     - Тип / структура данных
├── utils                  - Различные утилиты/функции, которые могут использоваться несколькими модулями
│   ├── [name].util.ts     - Утилита
├── index.ts               - Точка входа программы