3.4 KiB
Структура и шаблоны проектов
Набор подходов и рекомендаций к структуре проектов различного типа и назначения и шаблонов этих проектов.
Предложенные шаблоны планируется постоянно развивать и дополнять общим для всех проектов функционалом и инструментарием, поэтому комментарии и в особенности 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-комментариев.
В качестве основы рекомендуется использовать шаблон полноценного, но абсолютно ничего не делающего сервиса.