5 принципов организации кода

1. Организуйте код по фичам, не по ролям.

✔️

.
├── product
|   ├── index.js
|   ├── product.js
|   └── product.hbs
├── user
|   ├── index.js
|   ├── user.js
|   └── user.hbs

.
├── controllers
|   ├── product.js
|   └── user.js
├── models
|   ├── product.js
|   └── user.js
├── views
|   ├── product.hbs
|   └── user.hbs

2. Не храните логику в index.js.

Используйте index.js только для экспорта функциональности:

product/index.js:

let product = require('./product')

module.exports = {
create: product.create
}

3. Размещайте тестовые файлы рядом с файлами, которые они тестируют.

Это поможет лучше документировать код, т.к. тестовые файлы описывают, что должно происходить.

Дополнительные тесты храните отдельно.

.
├── test
|   └── setup.spec.js
├── product
|   ├── index.js
|   ├── product.js
|   ├── product.spec.js
|   └── product.hbs
├── user
|   ├── index.js
|   ├── user.js
|   ├── user.spec.js
|   └── user.hbs

4. Используйте config директорию

Храните в config директории файлы конфигурации.

.
├── config
|   ├── index.js
|   └── server.js
├── product
|   ├── index.js
|   ├── product.js
|   ├── product.spec.js
|   └── product.hbs

5. Храните npm скрипты в отдельной директории

.
├── scripts
|   ├── syncDb.sh
|   └── provision.sh
├── product
|   ├── index.js
|   ├── product.js
|   ├── product.spec.js
|   └── product.hbs
Редактировать на GitHub