Skip to content
Главы

Основные идеи

В любом клиентском приложении в самом первом приближении можно выделить следующие слои:

  1. Представление (компоненты и стили).
  2. Состояние (пользовательский ввод, данные для вывода, состояние элементов).
  3. Слой взаимодействия с внешними источниками данных (RESTful API, GraphQL, клиентская СУБД, etc).

В зависимости от степени проработки архитектуры, фантазии разработчиков, отведенного на проект времени, размера проекта и прочих факторов, данные слои могут быть склеены и перемешаны друг с другом практически любым образом.

Ключевая идея описываемой архитектуры заключается в том, что все три указанных слоя отделены друг от друга и взаимодействуют только посредством определенного API.

Структура проекта

bash
├── dal
├── declarations
└── features
   └── some-feature
        ├── init.ts
        ├── model
           ├── public.ts
           ├── private.ts
           ├── reducers.ts
           ├── init.ts
           └── index.ts
        └── view
            ├── parts
            ├── containers
            ├── entries
            └── index.ts
├── pages
    └── some-page
        ├── init.ts
        ├── model
           ├── public.ts
           ├── private.ts
           ├── reducers.ts
           ├── init.ts
           └── index.ts
        └── view
            ├── parts
            ├── containers
            ├── entries
            └── index.ts
├── ui
    ├── PrimaryButton.tsx
    ├── Dropdown
    └── index.ts
└── lib

42px Company