Принципы разработки¶
В этом разделе описываются общие принципы разработки, принятые командой. В этой статье описываются базовые вещи, которые в целом относятся к процессу разработки. Вещи, которые требует более детального описания, описываются в отдельных статьях.
Базовые вещи¶
Язык разработки¶
Основной язык разработки - русский. Комментарии к коду, логируемая информация, комментарии коммитов - все должно быть на русском языке. Исключение - пакеты, выложенные на 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)