Go to file
2022-04-07 21:46:28 +03:00
img Finalize github transition 2016-02-02 19:35:46 +03:00
code-style.md Style: fix wording a bit 2016-01-20 22:12:57 +03:00
contributing.md Refresh contributing doc visually 2022-04-07 21:46:28 +03:00
LICENSE add license (#3) 2021-06-24 16:38:45 +03:00
project-layout.md Update project-layout.md 2021-05-20 17:05:19 +03:00
README.md Drop versioning doc as obsolete 2022-04-07 21:46:08 +03:00
tooling.md feat: Add more info about tooling and VCS 2021-05-20 14:15:36 +03:00
working-with-vcs.md feat: Add more info about tooling and VCS 2021-05-20 14:15:36 +03:00
XXE-prevention-guideline.md fix: Remove trailing whitespaes 2021-05-21 14:24:11 +03:00

Рекомендации для разработчиков

Общие сведения

Разработка ведётся под Erlang/OTP версии 24 или выше.

В качестве основного инструмента для сборки, анализа исходного кода и запуска тестов используется rebar3. Рекомендуется использовать GNU Make для автоматизации рутинных операций и организации привычной среды для новых разработчиков.

Управление зависимостями в rebar3 предполагает более тесное использование центрального репозитория пакетов hex.pm, поэтому при поиске подходящих зависимостей следует посетить этот репозиторий в первую очередь.

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

В качестве инструмента статического анализа настоятельно рекомендуется использовать dialyzer и xref.

При подготовке production ready сборок проектов следует использовать функционал релизов, предоставляемый relx.

Чтобы не начинать каждый раз с пустого листа, рекомендуется взять любезно заготовленные шаблоны проектов для rebar3. В них кроме всего прочего демонстрируется работа с thrift и woody, поверх которых построено межсервисное взаимодействие в системе, а также с Github Actions, который мы используем в качестве инструмента CI.

Безопасность

При разработке ПО важно уделять внимание к подходам, позволяющим сделать это ПО безопасным. Необходимо руководствоваться следующими материалами:

  1. Предотвращение XXE

Для дальнейшего ознакомления

  1. Инструментарий
  2. Структура и шаблоны проектов
  3. Написание исходного кода
  4. Внесение изменений
  5. Работа с системой контроля версий
  6. Подготовка релиза