erlang-guidelines/project-layout.md
2016-02-02 19:35:46 +03:00

3.4 KiB
Raw Blame History

Структура и шаблоны проектов

Набор подходов и рекомендаций к структуре проектов различного типа и назначения и шаблонов этих проектов.

Предложенные шаблоны планируется постоянно развивать и дополнять общим для всех проектов функционалом и инструментарием, поэтому комментарии и в особенности PR по ним приветствуются с крайним радушием.

В качестве средства для сборки проекта, а также множества других задач, используется rebar3, который предъявляет довольно строгие требования к структуре приложений и соответствию этой структуры принципам OTP.

Общее описание

Для проектов, предоставляющих собой библиотеки или встраиваемые приложения, предлагается следующая минимальная структура:

  doc (optional)
  ├── index.md
  └── ...
  src
  ├── lib.app.src
  └── ...
  test
  └── ...
  Makefile
  README.md
  rebar.config
  wercker.yml

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

Документация помечена как опциональная, потому что в случае такого рода проектов часто достаточно встроенной непосредственно в исходники документации, например, посредством спеков и edoc-комментариев.

Для проектов, представляющих собой реализации полноценных боеспособных сервисов, предлагается следующая, во многом похожая структура:

  apps
  └── ...
  config
  ├── sys.config
  ├── vm.args
  └── ...
  doc
  ├── index.md
  └── ...
  Makefile
  README.md
  rebar.config
  wercker.yml

В этом случае наличие документации обязательно, потому как в ней непременно должно фигурировать описание того, как устанавливать и, что пожалуй даже более важно, настраивать предложенный сервис. Однако это не отменяет возможность написания всё тех же спеков и edoc-комментариев.

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