Skip to content

smecalculus/bezmen

Repository files navigation

Безмен

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Ветки

feature/<concise-name>

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

bugfix/<concise-name>

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

chore/<concise-name>

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

Идеи

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

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

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

  • Правка ворнинга на любом из этапов сборки.

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

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

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

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

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

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

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

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

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

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

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

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

  • Новое целевое использование (purpose) решения (solution) или снаряжения (gear).

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

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

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

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

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

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