Go to file
Alexey cbca4f2c0e
Merge pull request #4 from rbkmoney/xxe-guideline
Create XXE-prevention-guideline.md
2019-06-19 15:15:46 +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 Contrib: mention refactoring 2016-01-22 15:05:58 +03:00
project-layout.md Finalize github transition 2016-02-02 19:35:46 +03:00
README.md Fix list 2019-06-18 11:37:50 +03:00
versioning.md Add versioning basic description 2016-01-22 12:21:02 +03:00
working-with-vcs.md Mention requirement for task id in git object names 2016-03-30 16:37:13 +03:00
XXE-prevention-guideline.md Update XXE-prevention-guideline.md 2019-06-18 16:37:04 +03:00

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

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.

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

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

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

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

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