Принцип Inversion Of Control в применении к Agile разработке - Presentation Transcript
Принцип InversionofControl в применении к Agile-разработке Владимир Лешкевич Минск, Intetics Co.
План доклада Процесс познания Принцип Inversion of Control Agile практики
Процесс познания Переход к четвертой ступени познания Интернализация навыка Подмена формальными практиками Неустойчивость третьей ступени Ценность практического опыта (негативного) Дополнение теоретическим изучением Aha-эффект
Inversion of Control Управляющее воздействие осуществляется извне Принцип «шиворот-навыворот» Inversion of Control какинструмент aha-эффекта
Примеры из окружающего мира VS
Agile manifesto Individuals and interactions over processes and tools Working software over comprehensive documentation Customer collaboration over contract negotiation Responding to change over following a plan
Testability Не пытаться тестировать то, что есть Подбираем технологии по критерию testability Выгоды Продуктивность Инновации Человеческий фактор
Test-Driven Development Runnable requirements over dead documentation Реализация, направляемая тестами Пишем требование, код подгоняем под требование Сложная задача заменяется на две более простых Обобщение граничных/вырожденных случаев
Test-Driven Development, пример Задача: факторизовать натуральное число 1 => [1] return [1] 2 => [2] return [n] 4 => [2, 2] if n == 4 return [2, 2] return [n] 6 => [2, 3] if n > 2 && n % 2 == 0 return [2, n / 2] return [n] 8 => [2, 2, 2] result = [] while n > 2 && n % 2 == 0 result.append(2) n /= 2 result.append(n) return result 9 => [3, 3] result = [] foreachi in [2..sqrt(n)] while n > i && n % i == 0 result.append(i) n /= i result.append(n) return result
Архитектура/дизайн
Роль архитектора
Эволюционный дизайн
From smells to patterns, а не наоборот
VS
Человеческий фактор Максимизируем удовлетворенность сотрудников Долгосрочный выигрыш Жизнеспособность? Раздаем все деньги Плохие сотрудники Нельзя уволить Нет негатива Реальные компании?
Обучение Agile Не начинать карьеру сотрудника с изучения Agile Негативный прошлый опыт Создавать его
Заключение «Почему» важнее, чем «что» Ловите aha-моменты Ищите скрытые мотивы Не надейтесь на «куриные мозги», ищите «холодные яйца» Проявляйте смелость
0 comments
Post a comment