Skip to content

MadAngular/MiddleProject

 
 

Repository files navigation

Mentoring users app

This workspace has been generated by NX

Клонирование проекта

В проекте используется формат переноса строки для Unix-систем - LF.

Этот формат, наиболее вероятно, будет у вас на реальной работе.

CRLF который используется в Windows следует переформатироввть при клонированием проекта.

В связи с этим перед клонированием следует ввести в терминал команду git config --global core.autocrlf input

input опция не будет делать преобразование формата при клонировании любых проектов. Так вы избежите ошибок Eslint.

Как запустить проект

Склонируйте проект и запустите npm start для разработки. Проект откроется автоматически (http://localhost:4200/).

Форматирование кода

Наиболее вероятно на вашей будущей работе будут правила по написанию и форматированию кода.

Мы используем Eslint и Prettier.

Рекомендуется сразу включить авто-форматирование (Actions on Save) и обращать внимание на подсказки.

Также для вашего удобства рекомендуем включить Optimize imports. Так ваша IDE будет автоматически удалять неиспользуемые импорты. Скажем нет ручной работе!

Если мощности вашего оборудования недостаточно или вы не хотите следить за этим во время разработки - игнорируйте ошибки до момента отправки вашего кода в репозиторий. Перед отправкой следует выполнить команду npm run lint:fix (она находится в package.json) и исправить ошибки, которые остались после выполнения команды.

Pull Request в котором Eslint завершается ошибкой (мы подключили его в Github Actions) - проверяться не будет.

Так мы сможем проверить ваш код, а не спорить о форматировании. Спасибо за понимание!

Архитектура

В проекте используется модульная архитектура (где под модулями мы подразумеваем библиотеки NX) с использованием DDD.

Используйте NX консоль для генерации библиотек и их наполнения.

Создание библиотек

  1. Библиотеки располагаются в своей доменной области и группируются по типам библиотек
  2. Названия библиотек формируются по шаблону {type}-{use}, например:
Данные, логика Функциональность Глупые компоненты Вспомогательные инструменты
data-access/... features/... ui/... utils/...
data-access-folders feature-users ui-profile-photo util-theme
data-access-materials feature-materials ui-profile-change util-language
data-access-user-dialog feature-user-dialog ui-password-change util-typescript
  1. Задайте alias для вашей библиотеки с помощью importPath опции NX Console, по шаблону {scope}/{domain}/{lib}, например:
    • @core/data-access-interceptors
    • @shared/util-store
    • @users/shared/data-access-models
    • @users/materials/feature-materials
    • @users/materials/data-access-materials

Создание файлов

В корне библиотеки (src/lib/...) сгруппируйте сущности в одноимённые директории, например для библиотеки @users/users/feature-users:

pages/ components/ services/ interfaces/ enums/
users-page.component .../user-list.component users.service user-vm.interface view-mode.enum
profile-page.component .../user-card.component layout.service profile.interface
.../profile-photo.component profile-photo.service

Understand this workspace

Run nx graph to see a diagram of the dependencies of the projects.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • TypeScript 66.8%
  • HTML 14.3%
  • JavaScript 10.2%
  • SCSS 8.7%