Download - Extreme banking

Transcript
Page 1: Extreme banking

eXtreme BankingВадим Герасимов

Андрей Солнцев

Page 2: Extreme banking

Интернет-банкБСПБ

i.bspb.ruдемо-версия: idemo.bspb.ru

В ТОП-3 российских ИБ по версии Markswebb

Page 3: Extreme banking

Интернет-банк в цифрах

Page 4: Extreme banking

4 программера

Page 5: Extreme banking

0 архитекторов

Page 6: Extreme banking

0 архитекторов 0 аналитиков

Page 7: Extreme banking

0 архитекторов 0 аналитиков

0 релиз- менеджеров

Page 8: Extreme banking

0 архитекторов 0 аналитиков

0 тестировщиков 0 релиз- менеджеров

Page 9: Extreme banking

GA спустя 5 месяцев после старта

первый in-house релиз через месяц

Page 10: Extreme banking

Релиз каждые 2-3 дня

Page 11: Extreme banking

180 UI тестов за 4 минуты!

Page 12: Extreme banking

Как мы до такого докатились

Page 13: Extreme banking

Java платформа

Page 14: Extreme banking

НО без энтерпрайз фанатизма

● EJB● ESB● JMS● Spring● WebLogic, Websphere,

JBoss● WAR● EAR

Page 15: Extreme banking

Простой

Наш выбор:

Page 16: Extreme banking

Простой Быстрый в разработке

Наш выбор:

Page 17: Extreme banking

Простой Быстрый в разработке

ИнспирированRoR-ом

Наш выбор:

Page 18: Extreme banking

Простой Быстрый в разработке

Перезагрузка классов на лету

ИнспирированRoR-ом

Наш выбор:

Page 19: Extreme banking

Простой Быстрый в разработке

Перезагрузка классов на лету

Легко масштабируемый

ИнспирированRoR-ом

Наш выбор:

Page 20: Extreme banking

для изменений базы данных

Page 21: Extreme banking

для написания UI тестов

Page 22: Extreme banking

Дисциплины и техники

Page 23: Extreme banking

Парное программирование

Пацан накодил-

пацан протестил

Page 24: Extreme banking

Парное программирование

TDDПацан накодил-

пацан протестил

Page 25: Extreme banking

Парное программирование

TDD

KISS

Пацан накодил-

пацан протестил

Page 26: Extreme banking

Парное программирование

TDD

Частые pair switching

KISS

Пацан накодил-

пацан протестил

Page 27: Extreme banking

Парное программирование

TDD

Частые pair switching

KISScontinuous refactoring

Пацан накодил-

пацан протестил

Page 28: Extreme banking

Прямое общение с заказчиком

Page 29: Extreme banking

Прямое общение с заказчиком

два раза в неделю skype стендапы

Page 30: Extreme banking

Прямое общение с заказчиком

два раза в неделю skype стендапы

раз в 1-1.5 месяца on-site встречи

Page 31: Extreme banking

Прямое общение с заказчиком

два раза в неделю skype стендапы

раз в 1-1.5 месяца on-site встречи

8 x 5 коммуникация через Skype

Page 32: Extreme banking

Минимум документацииDocument driven development

Page 33: Extreme banking

Интерактивная и самотестируемая документация

для интеграции онлайн продавцов с Интернет-банком

Page 34: Extreme banking

It’s DEMO time!

Page 35: Extreme banking

Сколько должно быть тестов?

● Unit● UI● Integration● ...

Page 36: Extreme banking

Unit

UI

Integration

Не жалей!

Page 37: Extreme banking

Unit

UI

Integration

Не жалей!

Бизнес-чувствительная функциональность, базовые сценарии

Page 38: Extreme banking

Unit

UI

Integration

Не жалей!

Бизнес-чувствительная функциональность, базовые сценарии

Критичная функциональность, есть возможность управлять состояниями в backend-ах (или не требует)

Page 39: Extreme banking

Что и как мы тестируемUnit тесты: интеграция с backend-ом, валидация

Page 40: Extreme banking

Что и как мы тестируемUnit тесты: интеграция с backend-ом, валидация

UI тесты: не покрывают backend

Page 41: Extreme banking

Что и как мы тестируемUnit тесты: интеграция с backend-ом, валидация

UI тесты: не покрывают backend

Интеграционные тесты: минимальный набор критических функций

Page 42: Extreme banking

Быстрые UI тесты

Свой in-memory backend

Page 43: Extreme banking

Быстрые UI тесты

Свой in-memory backend Переиспользуем сессию

Page 44: Extreme banking

Быстрые UI тесты

Свой in-memory backend Переиспользуем сессию

Быстрый логин

Page 45: Extreme banking

Быстрые UI тесты

Запускаем только под Chrome

Свой in-memory backend Переиспользуем сессию

Быстрый логин

Page 46: Extreme banking

Быстрые UI тесты

Запускаем только под Chrome

Свой in-memory backend Переиспользуем сессию

Быстрый логин

Оптимизация работы LESS

Page 47: Extreme banking

Билд и релиз

Jenkins CI

Page 48: Extreme banking

Билд и релиз

Jenkins CI

Zero branching

Page 49: Extreme banking

Билд и релиз

Jenkins CI

Zero branching

ранняя доступностьдля альфа-тестеров

Page 50: Extreme banking

Билд и релиз

Jenkins CI

UI тесты часть билда

Zero branching

ранняя доступностьдля альфа-тестеров

Page 51: Extreme banking

Билд и релиз

Jenkins CI

UI тесты часть билдаГотовность в любой момент выслать билд

Zero branching

ранняя доступностьдля альфа-тестеров

Page 52: Extreme banking

Билд и релиз

Jenkins CI

UI тесты часть билдаГотовность в любой момент выслать билд

Zero branchinggit log как release notes

ранняя доступностьдля альфа-тестеров

Page 53: Extreme banking

Итого

● Делай просто

Page 54: Extreme banking

Итого

● Делай просто

● Релизь часто

Page 55: Extreme banking

“Правопорядок в стране определяется не наличием воров, а умением властей их обезвреживать.”

Глеб Жеглов

Page 56: Extreme banking

Итого

● Делай просто

● Релизь часто

● Ты и клиент - единое целое

Page 57: Extreme banking

Итого

● Делай просто

● Релизь часто

● Ты и клиент - единое целое

● Не раздувай команду

Page 58: Extreme banking

Итого

● Делай просто

● Релизь часто

● Ты и клиент - единое целое

● Не раздувай команду

● Тесты - наше всё

Page 59: Extreme banking

Итого

● Делай просто

● Релизь часто

● Ты и клиент - единое целое

● Не раздувай команду

● Тесты - наше всё

● UI тесты должны быть быстрыми

Page 60: Extreme banking
Page 61: Extreme banking

Разработка Интернет-банка для нового клиента

Следующие шаги:

Page 62: Extreme banking

Разработка Интернет-банка для нового клиента

Сохранение и развитие единой платформы

Следующие шаги:

Page 63: Extreme banking

XP работает!

Андрей Солнцев

http://blog.codeborne.com/2012/12/5.html

Вадим Герасимов