Skip to content
IRC-CodingIRC-Coding
TDDCICDRed Green RefactorGitHub Actions

TDD & CI/CD: Red-Green-Refactor и Pipeline

Test-Driven Development и CI/CD: Red-Green-Refactor, Continuous Integration/Delivery/Deployment, инструменты и примеры.

S

schutzgeist

1 min read
TDD & CI/CD: Red-Green-Refactor и Pipeline

TDD и CI/CD

Этот материал объясняет ключевые понятия TDD и CI/CD с примерами, контрольными вопросами и основными компонентами.

Коротко

TDD: тесты пишут до кода (Red–Green–Refactor). CI/CD: автоматизированная интеграция и доставка через pipeline.

Определение

TDD работает по циклу:

  • Red: написать тест, который не проходит
  • Green: написать минимум кода для прохождения теста
  • Refactor: улучшить код без изменения функциональности

CI/CD:

  • CI: сборка и тестирование после каждого коммита
  • CD: автоматизированная доставка (Delivery до staging, Deployment до production)

Важные моменты для экзамена

  • TDD = сначала тесты
  • Red-Green-Refactor цикл
  • CI = автоматизированная сборка и тестирование
  • CD = автоматизированная доставка
  • TDD повышает покрытие тестами
  • CI/CD снижает ручные ошибки (безопасность)
  • Быстрые релизы (экономическая эффективность)
  • Pipeline должен быть задокументирован

Основные компоненты

  1. Unit Tests
  2. Фреймворки для тестирования (JUnit/pytest)
  3. CI серверы (Jenkins/GitHub Actions)
  4. Build Tools
  5. Container/Deployment
  6. Pipeline скрипты
  7. Стратегии rollback
  8. Staging окружение
  9. Инструменты для проверки качества кода

Пример с pytest

def add(a, b):
  return a + b

def test_add():
  assert add(2, 3) == 5

Преимущества и недостатки

Преимущества

  • Выше качество кода
  • Автоматизированная QA
  • Быстрая локализация ошибок
  • Воспроизводимые развертывания

Недостатки

  • Начальные инвестиции времени
  • Требует инфраструктуры
  • Нужна дисциплина в команде

Типичные экзаменационные вопросы

  1. Что означает Red-Green-Refactor? Написать тест, реализовать минимум, затем рефакторить.
  2. Цель CI? Автоматизированное тестирование и интеграция кода.
  3. В чём разница Delivery и Deployment? Delivery доставляет в staging, Deployment доставляет в production.

Развернутый ответ

TDD заставляет с самого начала продумать требования и интерфейсы. CI/CD в DevOps контексте стал стандартом и показывает профессиональный подход в проектах.

Как учиться

  1. Разработать простую функцию через TDD.
  2. Настроить GitHub Actions pipeline для сборки и тестов.
  3. Нарисовать pipeline на бумаге (подготовка к экзамену).
  4. Ничего не выпускать без тестов.

Основные источники

  1. https://martinfowler.com/bliki/TestDrivenDevelopment.html
  2. https://docs.github.com/en/actions
Назад к блогу
Share:

Nächster Artikel in Архитектура программного обеспечения

Weiterlesen
TDD и CI/CD просто: Red-Green-Refactor и автоматизация

Похожие статьи