SlideShare una empresa de Scribd logo
1 de 21
Descargar para leer sin conexión
Программируем по-взрослому!




   Современные инженерные
 практики и процессы разработки
Обо мне
               Серёжа Пономарёв
                ● 6 лет программирую за деньги
                ● Документообороты и веб сайты
                ● Delphi, PHP, Java сейчас Groovy
                ● Обучил несколько джуниоров

Моё резюме stokito.moikrug.ru
Организатор Криворожского клуба программистов
Веду блог stokito.blogspot.com
Агенда

● Баг-трекер
● Система контроля версий
● Тесты
● Рефакторинг
● Автоматическая сборка
● Непрерывная интеграция
● Парное программирование
● TDD
● Процесс разработки
Баг-трекер (Issue tracker)
Система контроля версий
Система контроля версий
         (VCS)
Модульные Тесты (Unit tests)
И зачем оно нам надо?

● Поощрение изменений
● Документирование кода
● Делают лучше архитектуру
● Можно тестировать глубокий код
● Ускоряет разработку



Профессиональным программистом ты
становишься когда начинаешь писать тесты
Виды тестов

● Модульные (Unit tests)
● Интеграционные (Integration tests)
● Функциональные (Functional tests)
Рефакторинг
Refactoring


Изменяем код программы при этом внешне она
работает по старому.
Его цель:
Облегчить понимание её работы.

Не рефакторинг:
● Исправление дефектов
● Оптимизация
● Переписывание "с нуля"
Мартин Фаулер Рефакторинг
Автоматическая сборка
Automatic build

Типичные действия во время сборки:
 ● Генерация кода
 ● Компиляция
 ● Прогон модульных тестов
 ● Копирование ресурсов (картинок, файлов
   конфигураций)
 ● Упаковка
 ● Сборка инсталлятора
Непрерывная интеграция
Continuous integration (CI)

● Выполняется автоматически
● Типичные шаги:
   ○ Получить код из репозитория
   ○ Прогнать модульные тесты
   ○ Выполнить сборку
   ○ Установить приложение
   ○ Прогнать приемочные тесты
   ○ Прогнать статические анализаторы
   ○ Если найдена проблема, поднять тревогу
Парное программирование


● Роли: "штурман" и "водитель"
● Больше глаз - меньше дефектов
● Лучше архитектура
● Понятнее код
● Обмен знаниями
● Производительность такая же, но багов меньше
Test-driven development (TDD)
Водопадная модель
              (Waterfall)




Переход к другой фазе происходит только после
полного завершения предыдущей
Гибка модель (Agile, SCRUM)




Из книги Х. Книберг "Scrum и XP: заметки с передовой"
Вопросы?
Спасибо за внимание!

Блог stokito.blogspot.com
Всегда отвечаю на почту stokito@gmail.
com
Skype stokito
Все книги описаны в Библиотеке

Más contenido relacionado

La actualidad más candente

CodeFest 2011. Климова Н. — FitNesse, полезный для проекта, или история одно...
CodeFest 2011. Климова Н. — FitNesse, полезный для проекта,  или история одно...CodeFest 2011. Климова Н. — FitNesse, полезный для проекта,  или история одно...
CodeFest 2011. Климова Н. — FitNesse, полезный для проекта, или история одно...
CodeFest
 
статические анализаторы кода за и против
статические анализаторы кода  за и противстатические анализаторы кода  за и против
статические анализаторы кода за и против
Roman Kalita
 
Наталья Чуфырина, Mail.Ru Group, «Как создать команду по автоматизации тестир...
Наталья Чуфырина, Mail.Ru Group, «Как создать команду по автоматизации тестир...Наталья Чуфырина, Mail.Ru Group, «Как создать команду по автоматизации тестир...
Наталья Чуфырина, Mail.Ru Group, «Как создать команду по автоматизации тестир...
Mail.ru Group
 
Компонентный веб. Проникновение в дизайн / Антон Виноградов (АО "Альфа-Банк",...
Компонентный веб. Проникновение в дизайн / Антон Виноградов (АО "Альфа-Банк",...Компонентный веб. Проникновение в дизайн / Антон Виноградов (АО "Альфа-Банк",...
Компонентный веб. Проникновение в дизайн / Антон Виноградов (АО "Альфа-Банк",...
Ontico
 
Алексей Петров, Mail.Ru Group, "Организация конвейера автоматизации тестирова...
Алексей Петров, Mail.Ru Group, "Организация конвейера автоматизации тестирова...Алексей Петров, Mail.Ru Group, "Организация конвейера автоматизации тестирова...
Алексей Петров, Mail.Ru Group, "Организация конвейера автоматизации тестирова...
Mail.ru Group
 

La actualidad más candente (20)

Как 3 тестировщика играючи тестируют приложение для 10млн пользователей
Как 3 тестировщика играючи тестируют приложение для 10млн пользователейКак 3 тестировщика играючи тестируют приложение для 10млн пользователей
Как 3 тестировщика играючи тестируют приложение для 10млн пользователей
 
CONTINUOUS INTEGRATION ДЛЯ ЧАЙНИКОВ ВМЕСТЕ С TEAMCITY
CONTINUOUS INTEGRATION ДЛЯ ЧАЙНИКОВ ВМЕСТЕ С TEAMCITYCONTINUOUS INTEGRATION ДЛЯ ЧАЙНИКОВ ВМЕСТЕ С TEAMCITY
CONTINUOUS INTEGRATION ДЛЯ ЧАЙНИКОВ ВМЕСТЕ С TEAMCITY
 
WP как экспериментальная платформа
WP как экспериментальная платформаWP как экспериментальная платформа
WP как экспериментальная платформа
 
Как мы собираем проекты в выделенном окружении в Windows Docker
Как мы собираем проекты в выделенном окружении в Windows DockerКак мы собираем проекты в выделенном окружении в Windows Docker
Как мы собираем проекты в выделенном окружении в Windows Docker
 
Юнит тестирование
Юнит тестированиеЮнит тестирование
Юнит тестирование
 
ThemeForest: Как пробиться и стоит ли игра свеч? | Odessa Frontend Meetup #9
ThemeForest: Как пробиться и стоит ли игра свеч? | Odessa Frontend Meetup #9ThemeForest: Как пробиться и стоит ли игра свеч? | Odessa Frontend Meetup #9
ThemeForest: Как пробиться и стоит ли игра свеч? | Odessa Frontend Meetup #9
 
Slides
SlidesSlides
Slides
 
CodeFest 2011. Климова Н. — FitNesse, полезный для проекта, или история одно...
CodeFest 2011. Климова Н. — FitNesse, полезный для проекта,  или история одно...CodeFest 2011. Климова Н. — FitNesse, полезный для проекта,  или история одно...
CodeFest 2011. Климова Н. — FitNesse, полезный для проекта, или история одно...
 
Непрерывная интеграция и автотесты. Сравнительный анализ инструментов
Непрерывная интеграция и автотесты. Сравнительный анализ инструментовНепрерывная интеграция и автотесты. Сравнительный анализ инструментов
Непрерывная интеграция и автотесты. Сравнительный анализ инструментов
 
статические анализаторы кода за и против
статические анализаторы кода  за и противстатические анализаторы кода  за и против
статические анализаторы кода за и против
 
QA Fes 2016. Анастасия Асеева. Роль тестирования в Devops
QA Fes 2016. Анастасия Асеева. Роль тестирования в DevopsQA Fes 2016. Анастасия Асеева. Роль тестирования в Devops
QA Fes 2016. Анастасия Асеева. Роль тестирования в Devops
 
Способы организаций больших Java проектов по Автоматизированному тестированию
Способы организаций больших Java проектов по Автоматизированному тестированиюСпособы организаций больших Java проектов по Автоматизированному тестированию
Способы организаций больших Java проектов по Автоматизированному тестированию
 
Приемочные тесты на огурце
Приемочные тесты на огурцеПриемочные тесты на огурце
Приемочные тесты на огурце
 
Новый процесс тестирования на "старом" проекте
Новый процесс тестирования на "старом" проектеНовый процесс тестирования на "старом" проекте
Новый процесс тестирования на "старом" проекте
 
Code review как средство обеспечения качества программного обеспечения
Code review как средство обеспечения качества программного обеспеченияCode review как средство обеспечения качества программного обеспечения
Code review как средство обеспечения качества программного обеспечения
 
Наталья Чуфырина, Mail.Ru Group, «Как создать команду по автоматизации тестир...
Наталья Чуфырина, Mail.Ru Group, «Как создать команду по автоматизации тестир...Наталья Чуфырина, Mail.Ru Group, «Как создать команду по автоматизации тестир...
Наталья Чуфырина, Mail.Ru Group, «Как создать команду по автоматизации тестир...
 
QA Fest 2016. Денис Яременко. Как облегчить процесс мобильного тестирования
QA Fest 2016. Денис Яременко. Как облегчить процесс мобильного тестированияQA Fest 2016. Денис Яременко. Как облегчить процесс мобильного тестирования
QA Fest 2016. Денис Яременко. Как облегчить процесс мобильного тестирования
 
C#5 What's new?
C#5 What's new?C#5 What's new?
C#5 What's new?
 
Компонентный веб. Проникновение в дизайн / Антон Виноградов (АО "Альфа-Банк",...
Компонентный веб. Проникновение в дизайн / Антон Виноградов (АО "Альфа-Банк",...Компонентный веб. Проникновение в дизайн / Антон Виноградов (АО "Альфа-Банк",...
Компонентный веб. Проникновение в дизайн / Антон Виноградов (АО "Альфа-Банк",...
 
Алексей Петров, Mail.Ru Group, "Организация конвейера автоматизации тестирова...
Алексей Петров, Mail.Ru Group, "Организация конвейера автоматизации тестирова...Алексей Петров, Mail.Ru Group, "Организация конвейера автоматизации тестирова...
Алексей Петров, Mail.Ru Group, "Организация конвейера автоматизации тестирова...
 

Similar a серёжа пономарёв @ Kuchyn.com.ua junior java developer программируем по-взрослому!

метод организации репозитория исходного кода
метод организации репозитория исходного кодаметод организации репозитория исходного кода
метод организации репозитория исходного кода
Sergii Shmarkatiuk
 
Continuous Deployment (in Russian)
Continuous Deployment  (in Russian)Continuous Deployment  (in Russian)
Continuous Deployment (in Russian)
Smartling
 
Automation from the trenches
Automation from the trenchesAutomation from the trenches
Automation from the trenches
Gleb Rybalko
 
Continuous deployment Smartling event
Continuous deployment Smartling eventContinuous deployment Smartling event
Continuous deployment Smartling event
Viktoriya Pridatko
 
Тестирование весна 2013 лекция 5
Тестирование весна 2013 лекция 5Тестирование весна 2013 лекция 5
Тестирование весна 2013 лекция 5
Technopark
 

Similar a серёжа пономарёв @ Kuchyn.com.ua junior java developer программируем по-взрослому! (20)

Как hh.ru дошли до 500 релизов в квартал без потери в качестве
Как hh.ru дошли до 500 релизов в квартал без потери в качествеКак hh.ru дошли до 500 релизов в квартал без потери в качестве
Как hh.ru дошли до 500 релизов в квартал без потери в качестве
 
Доклад Владислава Чернова на конференции LoveQA. "Continuous delivery в крупн...
Доклад Владислава Чернова на конференции LoveQA. "Continuous delivery в крупн...Доклад Владислава Чернова на конференции LoveQA. "Continuous delivery в крупн...
Доклад Владислава Чернова на конференции LoveQA. "Continuous delivery в крупн...
 
Юрий Василевский "Автоматизация в XCode"
Юрий Василевский "Автоматизация в XCode"Юрий Василевский "Автоматизация в XCode"
Юрий Василевский "Автоматизация в XCode"
 
Юрий Василевский «Автоматизация в XCode»
Юрий Василевский «Автоматизация в XCode»Юрий Василевский «Автоматизация в XCode»
Юрий Василевский «Автоматизация в XCode»
 
метод организации репозитория исходного кода
метод организации репозитория исходного кодаметод организации репозитория исходного кода
метод организации репозитория исходного кода
 
C# Web. Занятие 14.
C# Web. Занятие 14.C# Web. Занятие 14.
C# Web. Занятие 14.
 
Wgforge CI/CD
Wgforge CI/CDWgforge CI/CD
Wgforge CI/CD
 
Continuous Deployment (in Russian)
Continuous Deployment  (in Russian)Continuous Deployment  (in Russian)
Continuous Deployment (in Russian)
 
DevOps в реальном времени
DevOps в реальном времениDevOps в реальном времени
DevOps в реальном времени
 
Automation from the trenches
Automation from the trenchesAutomation from the trenches
Automation from the trenches
 
Лучшие практики на практике
Лучшие практики на практикеЛучшие практики на практике
Лучшие практики на практике
 
mirror world of software development
mirror world of software developmentmirror world of software development
mirror world of software development
 
Continuous deployment Smartling event
Continuous deployment Smartling eventContinuous deployment Smartling event
Continuous deployment Smartling event
 
Готовим Docker для Автоматизации Тестирования
Готовим Docker для Автоматизации ТестированияГотовим Docker для Автоматизации Тестирования
Готовим Docker для Автоматизации Тестирования
 
Тестирование весна 2013 лекция 5
Тестирование весна 2013 лекция 5Тестирование весна 2013 лекция 5
Тестирование весна 2013 лекция 5
 
QAFest. Роль тестирования в Devops
QAFest. Роль тестирования в DevopsQAFest. Роль тестирования в Devops
QAFest. Роль тестирования в Devops
 
Automation from the trenches
Automation from the trenchesAutomation from the trenches
Automation from the trenches
 
Шаги мануальщика к автоматизации на крупном проекте
Шаги мануальщика к автоматизации на крупном проектеШаги мануальщика к автоматизации на крупном проекте
Шаги мануальщика к автоматизации на крупном проекте
 
Java one presentation
Java one presentationJava one presentation
Java one presentation
 
Рефакторинг и второе рождение проекта на примере Zend Framework 2.0
Рефакторинг и второе рождение проекта на примере Zend Framework 2.0Рефакторинг и второе рождение проекта на примере Zend Framework 2.0
Рефакторинг и второе рождение проекта на примере Zend Framework 2.0
 

серёжа пономарёв @ Kuchyn.com.ua junior java developer программируем по-взрослому!