Skip to content

smecalculus/bezmen

Repository files navigation

Безмен

Шаблон backend-проекта на Java и/или Kotlin.

Как использовать шаблон

  1. Создаем проект на основе шаблона

  2. Адаптируем имена (find & replace)

    1. Имя проекта (в шаблоне bezmen)

    2. Имя приложения (в шаблоне sepuling)

    3. Имя базы данных (в шаблоне enteropia)

    4. Имя схемы данных (в шаблоне sepulkarium)

  3. Настраиваем синхронизацию

    1. Создаем Github App на уровне репозитория или организации

    2. Устанавливаем Github App для нового проекта

    3. Создаем переменную с идентификатором Github App

    4. Создаем секрет с приватным ключом Github App

    5. Указываем их в workflow синхронизации

Как нанести пользу

  1. Заводим тикет и описываем идею доработки (можно воспользоваться готовыми из списка).

  2. Настраиваем одну из поддерживаемых сред разработки и фиксируем её в orchestrator/ansible/group_vars/all.yaml.

    # for example
    devenv: turing
  3. Выполняем доработку на отдельной ветке.

  4. Добиваемся успешного прохождения проверок на локальной машине.

    cd orchestrator/ansible
    ansible-playbook stacks.yaml
  5. Создаем пул-реквест.

  6. Добиваемся успешного прохождения проверок в рамках CI.

Ветки

feature/<concise-name>

Функциональность, которая открывает новые возможности для потенциальных пользователей шаблона.

bugfix/<concise-name>

Правка ошибок, опечаток и пр.

chore/<concise-name>

Рефакторинг, технический долг, мелкие улучшения и пр.

Идеи

Низкая сложность

  • Рефакторинг, снижающий сложность и/или повышающий идиоматичность.

  • Добавление теста, увеличивающего покрытие.

  • Правка предупреждения (warning) на любом из этапов сборки.

  • Дополнение или правка документации.

  • Правка ошибки и/или уязвимости.

Средняя сложность

  • Новая метрика качества кодовой базы (в т.ч. архитектурные тесты).

  • Новый уровень качества по одной из существующих метрик.

  • Заморозка версии инструмента в dev или ops окружении.

  • Новое dev или ops окружение.

Высокая сложность

  • Новый инструмент сборки бинарников. Сейчас только Apache Maven.

  • Новый инструмент контейнеризации. Сейчас только Docker Engine.

  • Новый инструмент наката стеков. Сейчас только Docker Compose.

  • Новая реляционная база данных. Сейчас только PostgreSQL.

  • Новая ость (ility) продукта (product) и/или снаряжения (gear).

  • Новая обвязка построения дерева хешей. Сейчас связка Git и Ansible.

Непредсказуемая сложность

  • Новый инструмент оркестрации (orchestrator). Сейчас только Ansible.

  • Новый язык программирования. Сейчас только Java и Kotlin.

  • Новая операционная система в dev или ops окружении. Сейчас только Ubuntu и Alpine соответственно.

  • Новый этап конвейера (pipeline). Сейчас только непрерывная интеграция (CI).