Continuous Integration for PHP projects - Theory by Alex Simanovich

660 views
559 views

Published on

Теория непрервной интеграции: риски, проблемы, цели, процессы, сборки, проверка, инспекция, интеграция с БД, развертывание, обратная связь, культура

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
660
On SlideShare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
3
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide
  • «Непрерывная интеграция это практика разработки ПО, в которой участники команды интегрируют свою работу часто, как минимум ежедневно. Каждая интеграция проверяется автоматической сборкой (включающей тесты) для обнаружения ошибок, как можно быстрее.»Мартин Фаулер
  • Повторяемые процессы:деплоймент, сборка/сжатие/конвертация файлов, поменять права, их последовательность…Мы люди, нам скучно, мы можем забывать, мы можем ошибаться…- «Ой, я забыл закомитить файл»- «Я забыл протестировать, запустить тесты»- «На моей машине это работает»- Реализация одной фичи убила другую фичуНе найденные во время дефекты, контроль состояния проекта, качество
  • Повторы при деплойменте:permissions, configurations, environment setupКачество:- Тестирование- Рефакторинг- Стандарты кодирования- Частые релизы
  • Загружает код из репозиторияЗапускает buildСоставляет репортыОтправляет обратную связь
  • Проверка == Автоматические тесты«Качество – это когда все сделано правильно, даже если никто не проверяет»Генри Форд
  • Инспекция != ПроверкаИнспекция:Анализ кода на основании предопределенных правилПроверка: Динамическое исследование функциональных возможностейСнижаем сложность кодаПоддерживаем стандартыкодаСледим за дублированным кодомОцениваем покрытие кода тестами
  • Управляет изменениями в БДSQL Delta скрипты
  • В любое время, в любом местеМаркируем каждое построениеЗапускаем все проверкиОбеспечиваем возможность отката
  • Дописываем target «deploy»для удаленных серверовСоздаем Job для разворачивания на dev-сервереСоздаем ночной JobСоздаем Job для разворачивания на staging/live server
  • Состояние построенияРезультаты проверкиОтчеты об инспекцииПравильный способПравильное времяПравильные люди
  • Может перенести вниз
  • Continuous Integration for PHP projects - Theory by Alex Simanovich

    1. 1. Continuous Integration for PHP projects
    2. 2.  Долгий процесс интеграции  Актуальность базы данных  Стандарты кодирования  Copy/Pasting  Сложность кода  Новый человек в проекте
    3. 3.  Уменьшение количества повторяемых процессов  Снижение рисков  Возможность быстрого построения ПО  Обеспечение лучшего контроля проекта  Повышение доверия к ПО
    4. 4.  Компиляция исходного кода  Проверка  Инспекция  Интеграция базы данных  Развертывание  Документирование  Обратная связь
    5. 5.  Очистка окружения  Загружаем код из репозитория  Запуск тестов, анализ кода  Генерация документации (API)  Подключение библиотек и фреймворка  Развертывание приложения и базы данных
    6. 6.  Уменьшение количества повторяемых процессов  Снижение рисков  Возможность быстрого построения ПО  Обеспечение лучшего контроля проекта  Повышение доверия к ПО
    7. 7.  Долгий процесс интеграции  Актуальность базы данных  Стандарты кодирования  Copy/Pasting  Сложность кода  Новый человек в проекте
    8. 8.  Передавайте код часто  Ликвидируйте проблемы незамедлительно  Пишите автоматизированные проверки  Все проверки должны быть пройдены  Выполняйте закрытое построение
    9. 9.  Затраты на поддержку CI  Изменения процессов  Слишком много неудачных построений  Издержки на ПО и «железо»
    10. 10. Инструменты не решат ваши проблемы Вам нужна культура!
    11. 11. • Непрерывная Интеграция – Поль М. Дюваль • Integrating PHP Projects with Jenkins – Sebastian Bergmann • Growing Object-Oriented Software, Guided byTests – Steve Freeman, Net Price
    12. 12. • Email: as@extrascript.com • Skype: aliaksandr.simanovich • Twitter: @simanjan • Blog: simanovich.info

    ×