Использовалась ли автоматизация процессов в вашей предыдущей команде?

Ответ

Да, мы активно внедряли автоматизацию для повышения скорости и надежности разработки на C++. Основные направления:

  • CI/CD: Использовали Jenkins и GitLab CI для автоматической сборки, тестирования и развертывания. Конвейер включал этапы статического анализа, сборки с CMake, модульного и интеграционного тестирования.
  • Статический анализ: Интегрировали Clang-Tidy и Cppcheck в процесс сборки для выявления потенциальных ошибок и нарушений code style.
  • Скрипты для рутины: Писали Bash и Python скрипты для автоматизации повторяющихся задач: генерации документации (Doxygen), подготовки релизов, мониторинга сборок.

Пример скрипта для сборки и тестирования C++ проекта:

#!/bin/bash
set -e

# Создание и переход в директорию сборки
mkdir -p build && cd build

# Конфигурация с CMake и сборка
cmake -DCMAKE_BUILD_TYPE=Release ..
make -j$(nproc)

# Запуск тестов
./runUnitTests

Также мы настраивали Git Hooks (pre-commit) для автоматического форматирования кода с помощью clang-format, что значительно ускоряло процесс код-ревью.

Ответ 18+ 🔞

Ну ты представляешь, как мы там всё автоматизировали, чтобы не ебаться с этой рутиной каждый день? Чисто чтобы не превращаться в обезьяну с клавиатурой, которая одно и то же делает по сто раз. Основные загоны были вот какие:

  • CI/CD: Внедрили Jenkins и GitLab CI, чтобы всё само собиралось, тестировалось и выкатывалось. Конвейер, блядь, такой настроили: сначала статический анализ кода, потом сборка через CMake, потом модульные тесты, потом интеграционные — полный фарш. Чтоб ни одна хрень не проскочила.
  • Статический анализ: Впихнули в процесс Clang-Tidy и Cppcheck. Эти ребята, как надзиратели злые, каждый чих в коде ловят — где потенциальная ошибка, где стиль кривой. Доверия к ручному review, блядь, ноль, после этого.
  • Скрипты для рутины: Ну а куда без них? Писали на Bash и Python всякие штуки, чтобы не делать одно и то же руками. Генерация документации через Doxygen, подготовка релизов, мониторинг сборок — всё на скриптах, ядрёна вошь.

Вот, смотри, пример скрипта для сборки и тестирования. Просто, но эффективно, как удар вилкой в глаз:

#!/bin/bash
set -e

# Создание и переход в директорию сборки
mkdir -p build && cd build

# Конфигурация с CMake и сборка
cmake -DCMAKE_BUILD_TYPE=Release ..
make -j$(nproc)

# Запуск тестов
./runUnitTests

А ещё, хитрая жопа, мы настроили Git Hooks, конкретно pre-commit. Чтоб перед каждым коммитом clang-format сам запускался и приводил код в божеский вид. После этого код-ревью проходило в разы быстрее, потому что не приходилось друг другу в комментариях писать «Иди нахуй, отступы поправь». В общем, автоматизация — это пизда рулю, без неё сейчас нихуя.