Перейти к содержанию

Принципы разработки

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

Базовые вещи

Язык разработки

Основной язык разработки - русский. Комментарии к коду, логируемая информация, комментарии коммитов - все должно быть на русском языке. Исключение - пакеты, выложенные на github.

Дата и время

Сервер хранит дату и время в UTC, поэтому в сущностях не нужно добавлять суффикс UTC, исключение - название методов получения времени, например, GetCurrentTimeUtc().

Сервер должен принимать время в UTC, отдавать в UTC. Исключение - Razor страницы, они сразу генерируются в локальном времени.

Каталоги приложения

Файлы серверных приложений нужно размещать по разным каталогам, стандартным для данного типа файлов в Linux.

Типы файлов Каталог хранения
Бинарники /opt/{project_name}/{stage}/{app_name}
Конфигурационные файлы /etc/{project_name}/{stage}/{app_name}/{node_name}
Логи /var/log/{project_name}/{stage}/{app_name}/{node_name}
Файлы приложения /var/lib/{project_name}/{stage}/{app_name}/{node_name}
Временные файлы /tmp/{project_name}/{stage}/{app_name}/{node_name}
  • project_name - название проекта (например, ssng или u-cati)
  • stage - название окружения; возможные варианты: dev, rc. На prod не используется
  • app_name - название приложения; использовать, если в проекте несколько приложений (например, isacr, data-exporter)
  • node_name - название ноды; использовать, если запущено несколько инстансов одного приложения; можно просто нумеровать, можно давать название по клиентам (например, isacr-1, webdata-shared)