Work in progress.
Комментарии и PR приветствуются.
Разработка ведётся под Erlang/OTP версии 18 или выше.
В качестве основного инструмента для сборки, анализа исходного кода и запуска тестов используется rebar3. Рекомендуется использовать GNU Make для автоматизации рутинных операций и организации привычной среды для новых разработчиков.
Управление зависимостями в rebar3 предполагает более тесное использование центрального репозитория пакетов hex.pm, поэтому при поиске подходящих зависимостей следует посетить этот репозиторий в первую очередь.
Для написания функциональных тестов предпочтительно использовать common_test. В случае написания простых модульных тестов для различных библиотек и фрагментов приложений допускается использовать eunit. Все тестовые сценарии должны быть написаны с учётом изолированной среды их исполнения, иными словами, с расчётом на то, что любые внешние зависимости и сервисы недоступны, либо эфемерны.
В качестве инструмента статического анализа настоятельно рекомендуется использовать dialyzer и xref.
При подготовке production ready сборок проектов следует использовать функционал релизов, предоставляемый relx.
В качестве CI/CD сервиса используется wercker, который к тому же предоставляет простой инструмент для локальной отладки билдов и запуска переносимой среды для разработки. В процессе сборки на CI сервисе рекомендуется выполнение:
- сборки;
- запуска наборов eunit и ct тестов;
- статического анализа посредством xref и dialyzer.
При разработке ПО важно уделять внимание к подходам, позволяющим сделать это ПО безопасным. Необходимо руководствоваться следующими материалами: