Осознанность рефакторинга: Модель принятия инженерных решенийEvgeniy Krivosheev
Представьте на секунду, что сейчас Вы работаете над сложной высоконагруженной системой, которая делает людей счастливыми. И этот проект настолько важен для человечества, что команда QA и техлиды с архитекторами требует детального обоснования каждого Вашего решения. Как нетрудно догадаться, речь идет о Вашем текущем проекте, к которому вернетесь после конференции.
Как Вы обеспечите качество? Как сделаете дизайн поддерживаемым и приятным, а решения примете осознанно и обоснованно? В докладе мне хотелось бы предложить Вам технику проектирования, которая позволит Вам делать выборы осознанно и вывести мастерство проектирования архитектуры и дизайна на новый уровень.
Предлагаемый подход довольно распространен, его применяют опытные специалисты в различных областях – от сложных корпоративных систем до высоконагруженных публичных веб-проектов. Я попытался обобщить это знание и сформулировать базовые принципы этого подхода к созданию осознанного дизайна.
Интернет развивается с огромной скоростью и одной из основных тенденций последнего времени является перенос десктопных приложений в облака и работа с ними через браузер. Ключевыми особенностями таких «живых» сайтов являются интерактивнось и скорость отклика.
Short introduction into Law of Demeter with examples of satisfaction and violation that demonstrates benefits of following the style as well as potential complexities. Work includes references to empirical validation of OO metrics including violations of Law of Demeter
The talk will compare Cascalog, fully-featured data processing and querying library on top of Hadoop, and Sparkling – A Clojure API for Apache Spark. How both of these compare in terms of performance and code complexity for Big Data processing and why you shouldn’t be writing MapReduce jobs in plain Hadoop API.
XP Days Ukraine 2014 - Refactoring legacy codeDmytro Mindra
Every programmer has to face legacy code day after day. It might be ugly, it might look scary, it can make a grown man cry. Some will throw it away and try rewriting everything from scratch. Most of them will fail.
Refactoring legacy code is a much better idea. It is not so scary when you take it in very small bites, introduce small changes, add unit tests. When code is refactored and unit tests are added, changes to functinality can be introduced.
We will take an open source C# project and will refactor it showing step-by-step examples of the techniques. This session is full of tips and tricks you can start applying immediately. Although the code is in C#, the same principles can be applied in any language.
Presentation from XP Days Ukraine (December, 2011) and QADnepr Mini Conference (Dnepropetrovsk, October 2011) about true role of testers and ways to fix development process to avoid their participation in usual stages of the quality control chain.
The main topic of slides is building high availability high throughput system for receiveing and saving different kind of information with horizontal scalling possibility using HBase, Flume and Grizzly hosted on Amazon EC2 low cost instances. Talk describes HBase HA cluster setup process with useful hints and EC2 pitfalls, Flume setup process with providing comparasion between standalone and embedded Flume versions and show difference and usecases of both versions. A lot of attention payed to Flume2Hbase streaming features with tweaks and different approaches for speeding up this process.
Осознанность рефакторинга: Модель принятия инженерных решенийEvgeniy Krivosheev
Представьте на секунду, что сейчас Вы работаете над сложной высоконагруженной системой, которая делает людей счастливыми. И этот проект настолько важен для человечества, что команда QA и техлиды с архитекторами требует детального обоснования каждого Вашего решения. Как нетрудно догадаться, речь идет о Вашем текущем проекте, к которому вернетесь после конференции.
Как Вы обеспечите качество? Как сделаете дизайн поддерживаемым и приятным, а решения примете осознанно и обоснованно? В докладе мне хотелось бы предложить Вам технику проектирования, которая позволит Вам делать выборы осознанно и вывести мастерство проектирования архитектуры и дизайна на новый уровень.
Предлагаемый подход довольно распространен, его применяют опытные специалисты в различных областях – от сложных корпоративных систем до высоконагруженных публичных веб-проектов. Я попытался обобщить это знание и сформулировать базовые принципы этого подхода к созданию осознанного дизайна.
Интернет развивается с огромной скоростью и одной из основных тенденций последнего времени является перенос десктопных приложений в облака и работа с ними через браузер. Ключевыми особенностями таких «живых» сайтов являются интерактивнось и скорость отклика.
Short introduction into Law of Demeter with examples of satisfaction and violation that demonstrates benefits of following the style as well as potential complexities. Work includes references to empirical validation of OO metrics including violations of Law of Demeter
The talk will compare Cascalog, fully-featured data processing and querying library on top of Hadoop, and Sparkling – A Clojure API for Apache Spark. How both of these compare in terms of performance and code complexity for Big Data processing and why you shouldn’t be writing MapReduce jobs in plain Hadoop API.
XP Days Ukraine 2014 - Refactoring legacy codeDmytro Mindra
Every programmer has to face legacy code day after day. It might be ugly, it might look scary, it can make a grown man cry. Some will throw it away and try rewriting everything from scratch. Most of them will fail.
Refactoring legacy code is a much better idea. It is not so scary when you take it in very small bites, introduce small changes, add unit tests. When code is refactored and unit tests are added, changes to functinality can be introduced.
We will take an open source C# project and will refactor it showing step-by-step examples of the techniques. This session is full of tips and tricks you can start applying immediately. Although the code is in C#, the same principles can be applied in any language.
Presentation from XP Days Ukraine (December, 2011) and QADnepr Mini Conference (Dnepropetrovsk, October 2011) about true role of testers and ways to fix development process to avoid their participation in usual stages of the quality control chain.
The main topic of slides is building high availability high throughput system for receiveing and saving different kind of information with horizontal scalling possibility using HBase, Flume and Grizzly hosted on Amazon EC2 low cost instances. Talk describes HBase HA cluster setup process with useful hints and EC2 pitfalls, Flume setup process with providing comparasion between standalone and embedded Flume versions and show difference and usecases of both versions. A lot of attention payed to Flume2Hbase streaming features with tweaks and different approaches for speeding up this process.
Гости из Москвы из компании USABILITYLAB расскажут нам про историю HCD и usability-тестирование (виды тестирования, требования, ограничения, обработку данных)
Все проекты начинаются с определения требований к проекту. Однако то, каким образом записаны эти требования, сильно влияет на успех проекта. Что значит управлять требованиями гибко? Как управлять требованиями с помощью историй пользователей? Какие подводные камни могут нас ожидать?
Similar to Compilable Specifications - XPDays Ukraine 2012 (13)
6. Требования
• То, что мы не понимаем,
ненадежно.
• Сложность подрывает понимание.
• Чем понятнее и проще требовния,
тем надежнее функцинальность.
@dmytromindra
10. Попробуем ?
Пользовательская история к
системе заказа столиков в кафе.
Для того, чтобы _____________________ ,
Как (в роли кого) ______________________ ,
Я хочу ___________________________________ .
@dmytromindra
11. Попробуем еще?
Для того, чтобы _____________________ ,
Как _____________________________________ ,
Я хочу ___________________________________ .
@dmytromindra
12. Что такое BDD?
• Небольшие и очень четкие
частички поведения, выраженные в
формате пользовательских
историй.
• Примеры, Примеры, Примеры
• Язык, понятный всем членам
команды.
@dmytromindra
13. Что такое BDD?
Для того, чтобы ... , Как ..., Я хочу ...
In order to …, As a … , I want ...
@dmytromindra
14. Структура описания в BDD
Что вы делаете
Context Event Response
Какой это дает результат
Ваше состояние
@dmytromindra
15. Структура описания в BDD
Что вы делаете
GIVEN WHEN THEN
Какой это дает результат
Ваше состояние
Это называется Gherkin
@dmytromindra
16. На что это похоже ?
• Это набр небольших историй,
использующих определенную
грамматическую структуру.
• Поиск пробелов в понимании и
заполнение их пониманием.
• Это похоже на запись беседы.
• Все подкреплено примерами.
@dmytromindra
17. Преимущества ?
Мы говорим о поведении системы,
не затрагивая ее архитектуры.
Мы приводим примеры.
Мы получаем приемочные критерии.
@dmytromindra
18. Практика !
Мне нужен книжный интернет
магазин!
Инвестор
QA Разработчик
@dmytromindra
19. Ты кто такой? Давай техзадание!
Фича
In order to _________________________________ ,
As a _________________________________________ ,
I want _____________________________________ .
Сченарий
Given ______________________________________ ,
When _____________________________________ ,
Then _______________________________________ .
@dmytromindra
20. U01: Поиск
Для того, чтобы книгу(и) купить
Как потенциальный покупатель,
Я дожен сначала ее найти!
это фича ;)
@dmytromindra