SlideShare a Scribd company logo
1 of 26
Download to read offline
АРХИТЕКТУРА И ДИЗАЙН 
надежнобыстровместительнобезопасновездепроходимый автомобиль 
Yury Chernushenko
ГРЕКАМ И НЕ СНИЛОСЬ 
Yury Chernushenko 
2 
АРХИТЕКТУРА) 
• Типичные ошибки) 
• Драйверы архитектуры) 
• Типы представлений) 
• Примеры шаблонов
БОЕВОЙ НАБОР ИНЖЕНЕРА 
Yury Chernushenko 
3 
Архитектура 
Планирование и 
управление командой 
Дизайн и Разработка 
Упраление 
требованиями
ПОКАЖИТЕ АРХИТЕКТУРУ 
Yury Chernushenko 
4 
FAIL
… ПОЛУЧИЛОСЬ КАК ВСЕГДА - 1 
это слои? как связаны элементы? что такое внутренний компонент? 
Yury Chernushenko 
5
… ПОЛУЧИЛОСЬ КАК ВСЕГДА -2 
где легенда? что означают стрелочки? это взаимодействие в runtime? 
Yury Chernushenko 
6
… ПОЛУЧИЛОСЬ КАК ВСЕГДА - 3 
все на одной диаграмме. что означает форма? что означает цвет? 
Yury Chernushenko 
7
«КТО ВИНОВАТ?» 
ПЛОХО, НЕТ СТРАТЕГИИ РАЗРАБОТКИ 
Требования Спецификация (ТЗ) Приложение 
Yury Chernushenko 
ЕЩЕ ХУЖЕ 
8
«ЧТО ДЕЛАТЬ?» 
На основе 
требований 
На основе 
архитектуры 
Требования АРХИТЕКТУРАСпецификация (ТЗ) Приложение 
Yury Chernushenko 9 
На основе 
дизайна 
АРХИТЕКТУРНЫЕ 
ДРАЙВЕРЫ 
ПРЕДСТАВЛЕНИЯ 
(ДИАГРАММЫ) 
ОПИСАНИЕ ПРИНЯТЫХ РЕШЕНИЙ 
(В ЧЕМ КОМПРОМИСС)
Архитектурный 
«астронавт» 
ЗНАКОМЬТЕСЬ 
ТЕМНАЯ СТОРОНА АРХИТЕКТУРЫ: 
! 
✴ СЛИШКОМ АБСТРАКТНАЯ АРХИТЕКТУРА 
✴ НЕ АДАПТИРОВАННА ПОД СИТУАЦИЮ ПРОЕКТА 
✴ ДЕЛАЕТСЯ НЕТЕХНИЧЕСКИМИ СПЕЦИАЛИСТАМИ 
✴ «ИСТОРИЧЕСКИ СЛОЖИЛОСЬ» 
✴ «ИСПОЛЬЗУЮ MVC ДЛЯ ВСЕГО!» 
Yury Chernushenko 
10
ДРАЙВЕРЫ АРХИТЕКТУРЫ 
Yury Chernushenko 
11 
ФУНКЦИОНАЛЬНЫЕ 
ТРЕБОВАНИЯ 
ТЕХНИЧЕСКИЕ И БИЗНЕС 
АТТРИБУТЫ 
КАЧЕСТВА 
ОГРАНИЧЕНИЯ
ТИПЫ ПРЕДСТАВЛЕНИЙ 
ДИНАМИЧЕСКОЕ - показывает структуру системы как 
набора блоков кода! 
СТАТИЧЕСКОЕ - показывает поведение и 
взаимодействие элементов системы при выполнении 
(runtime)! 
ФИЗИЧЕСКОЕ - показывает конфигурацию 
непрограммных элементов системы 
Yury Chernushenko 
12
ДИНАМИЧЕСКОЕ ПРЕДСТАВЛЕНИЕ 
Yury Chernushenko 
13
СТАТИЧЕСКОЕ ПРЕДСТАВЛЕНИЕ 
Yury Chernushenko 
14
ФИЗИЧЕСКОЕ ПРЕДСТАВЛЕНИЕ 
Yury Chernushenko 
15
АРХИТЕКТУРНЫЕ ШАБЛОНЫ 
• Их много (Client-Server, Broker, Middleware, Publisher- 
Subscriber, Pipe and Filter, Tiers/Layers, и др.)! 
• Они определяют типовую декомпозицию на 
основные элементы и их взаимодействие! 
• Их всегда нужно адаптировать под вашу ситуацию! 
• Нужо понимать и фиксировать все за и против 
использования того или иного решения, это всегда 
компромисс) 
Yury Chernushenko 
16 
Не знаете что выбрать? 
Попробуйте использовать процесс ACDM 
(Architecture-centric design method) 
для определения архитектуры
ПРИМЕРЫ ШАБЛОНОВ - MIDDLEWARE 
Yury Chernushenko 
17
ПРИМЕРЫ ШАБЛОНОВ - PIPE AND FILTER 
Yury Chernushenko 
18
ЧТО ПОЧИТАТЬ 
Yury Chernushenko 
ACMD Шаблоны 
19
Yury Chernushenko 
Robert C. Martin 
(Uncle Bob) 
! 
Выступления про Clean Architecture 
на youtube 
! 
«Architecture create structures that 
allow decisions to be defined later» 
! 
«Good Architects code» 
! 
КОГО ПОСЛУШАТЬ 
20
ИНСТРУМЕНТЫ 
Yury Chernushenko 
Microsoft Visio - основной 
инструмент для построения 
диаграмм 
Keynote или Power Point - хорошее 
качество работы с этими 
инструментами требует высокой 
самодисциплины! 
21
ДИЗАЙН 
Описание конкретных технических решений) 
• Функциональный или ООП подход) 
• Алгоритмы) 
• Описание функций) 
• Описание структур данных) 
• … 
Yury Chernushenko 
про это и многое другое 
COMPUTER SCIENCE 
22
ЧТО ПОЧИТАТЬ 
Yury Chernushenko 
23 
x 3
КОГО ПОСЛУШАТЬ 
Yury Chernushenko 
Олег Бунин 
архитектор высоконагруженных систем 
! 
Выступление на iForum 2013 
! 
Вебинар по проектированию 
высоконагруженных систем 
! 
Материалы конференции HighLoad++ 
24
ЧТО ПОЧИТАТЬ 
Yury Chernushenko 
25
ЧТО ДАЛЬШЕ 
Сбор и определение требований 
Планирование и контроль 
Архитектура и дизайн 
Управление качеством 
Управление рисками 
Yury Chernushenko 
26 
Процессы

More Related Content

Viewers also liked

Predicting the future with HERE Traffic
Predicting the future with HERE TrafficPredicting the future with HERE Traffic
Predicting the future with HERE TrafficJumpingJaq
 
La revue de code : facile !
La revue de code : facile !La revue de code : facile !
La revue de code : facile !Lucian Precup
 
Доклад Тимофея Пивсаева на AdTech Moscow 12 мая 2016
Доклад Тимофея Пивсаева на AdTech Moscow 12 мая 2016 Доклад Тимофея Пивсаева на AdTech Moscow 12 мая 2016
Доклад Тимофея Пивсаева на AdTech Moscow 12 мая 2016 Amnet Russia (Dentsu Aegis Network group)
 
Interface fonctionnelle, Lambda expression, méthode par défaut, référence de...
Interface fonctionnelle, Lambda expression, méthode par défaut,  référence de...Interface fonctionnelle, Lambda expression, méthode par défaut,  référence de...
Interface fonctionnelle, Lambda expression, méthode par défaut, référence de...MICHRAFY MUSTAFA
 
Architectural Wonders - The Guggenheim Museum Bilbao
Architectural Wonders - The Guggenheim Museum BilbaoArchitectural Wonders - The Guggenheim Museum Bilbao
Architectural Wonders - The Guggenheim Museum BilbaoKenny Slaught
 
Landscape architecture spatial organisation lecture 3
Landscape architecture spatial organisation lecture 3Landscape architecture spatial organisation lecture 3
Landscape architecture spatial organisation lecture 3Bineet Chhajer
 
Productos arquitectónicos plycem dic 2015
Productos arquitectónicos plycem dic 2015Productos arquitectónicos plycem dic 2015
Productos arquitectónicos plycem dic 2015Sergio Navarro Hudiel
 
Apache flink - retour d'expérience sur la conférence flink forward 2015
Apache flink - retour d'expérience sur la conférence flink forward 2015Apache flink - retour d'expérience sur la conférence flink forward 2015
Apache flink - retour d'expérience sur la conférence flink forward 2015Bilal Baltagi
 

Viewers also liked (9)

Predicting the future with HERE Traffic
Predicting the future with HERE TrafficPredicting the future with HERE Traffic
Predicting the future with HERE Traffic
 
La revue de code : facile !
La revue de code : facile !La revue de code : facile !
La revue de code : facile !
 
Доклад Тимофея Пивсаева на AdTech Moscow 12 мая 2016
Доклад Тимофея Пивсаева на AdTech Moscow 12 мая 2016 Доклад Тимофея Пивсаева на AdTech Moscow 12 мая 2016
Доклад Тимофея Пивсаева на AdTech Moscow 12 мая 2016
 
Interface fonctionnelle, Lambda expression, méthode par défaut, référence de...
Interface fonctionnelle, Lambda expression, méthode par défaut,  référence de...Interface fonctionnelle, Lambda expression, méthode par défaut,  référence de...
Interface fonctionnelle, Lambda expression, méthode par défaut, référence de...
 
Architectural Wonders - The Guggenheim Museum Bilbao
Architectural Wonders - The Guggenheim Museum BilbaoArchitectural Wonders - The Guggenheim Museum Bilbao
Architectural Wonders - The Guggenheim Museum Bilbao
 
Presentation Tips
Presentation TipsPresentation Tips
Presentation Tips
 
Landscape architecture spatial organisation lecture 3
Landscape architecture spatial organisation lecture 3Landscape architecture spatial organisation lecture 3
Landscape architecture spatial organisation lecture 3
 
Productos arquitectónicos plycem dic 2015
Productos arquitectónicos plycem dic 2015Productos arquitectónicos plycem dic 2015
Productos arquitectónicos plycem dic 2015
 
Apache flink - retour d'expérience sur la conférence flink forward 2015
Apache flink - retour d'expérience sur la conférence flink forward 2015Apache flink - retour d'expérience sur la conférence flink forward 2015
Apache flink - retour d'expérience sur la conférence flink forward 2015
 

More from Yury Chernushenko

Solidarity - server architecture
Solidarity - server architectureSolidarity - server architecture
Solidarity - server architectureYury Chernushenko
 
Software Engineering Bootcamp - Meeting 5
Software Engineering Bootcamp - Meeting 5Software Engineering Bootcamp - Meeting 5
Software Engineering Bootcamp - Meeting 5Yury Chernushenko
 
Hardware Talk, sep20 (IT Park, Innopolis, Kazan)
Hardware Talk, sep20 (IT Park, Innopolis, Kazan)Hardware Talk, sep20 (IT Park, Innopolis, Kazan)
Hardware Talk, sep20 (IT Park, Innopolis, Kazan)Yury Chernushenko
 
How to Start a Startup - Yury Chernushenko - Lecture #2
How to Start a Startup - Yury Chernushenko - Lecture #2How to Start a Startup - Yury Chernushenko - Lecture #2
How to Start a Startup - Yury Chernushenko - Lecture #2Yury Chernushenko
 
Software Engineering Bootcamp - Meeting 3
Software Engineering Bootcamp - Meeting 3Software Engineering Bootcamp - Meeting 3
Software Engineering Bootcamp - Meeting 3Yury Chernushenko
 
How to Start a Startup - Yury Chernushenko - Lecture #1
How to Start a Startup - Yury Chernushenko - Lecture #1How to Start a Startup - Yury Chernushenko - Lecture #1
How to Start a Startup - Yury Chernushenko - Lecture #1Yury Chernushenko
 
Software Engineering Bootcamp - Meeting 2
Software Engineering Bootcamp - Meeting 2Software Engineering Bootcamp - Meeting 2
Software Engineering Bootcamp - Meeting 2Yury Chernushenko
 
Software Engineering Bootcamp - Meeting 1
Software Engineering Bootcamp - Meeting 1Software Engineering Bootcamp - Meeting 1
Software Engineering Bootcamp - Meeting 1Yury Chernushenko
 

More from Yury Chernushenko (8)

Solidarity - server architecture
Solidarity - server architectureSolidarity - server architecture
Solidarity - server architecture
 
Software Engineering Bootcamp - Meeting 5
Software Engineering Bootcamp - Meeting 5Software Engineering Bootcamp - Meeting 5
Software Engineering Bootcamp - Meeting 5
 
Hardware Talk, sep20 (IT Park, Innopolis, Kazan)
Hardware Talk, sep20 (IT Park, Innopolis, Kazan)Hardware Talk, sep20 (IT Park, Innopolis, Kazan)
Hardware Talk, sep20 (IT Park, Innopolis, Kazan)
 
How to Start a Startup - Yury Chernushenko - Lecture #2
How to Start a Startup - Yury Chernushenko - Lecture #2How to Start a Startup - Yury Chernushenko - Lecture #2
How to Start a Startup - Yury Chernushenko - Lecture #2
 
Software Engineering Bootcamp - Meeting 3
Software Engineering Bootcamp - Meeting 3Software Engineering Bootcamp - Meeting 3
Software Engineering Bootcamp - Meeting 3
 
How to Start a Startup - Yury Chernushenko - Lecture #1
How to Start a Startup - Yury Chernushenko - Lecture #1How to Start a Startup - Yury Chernushenko - Lecture #1
How to Start a Startup - Yury Chernushenko - Lecture #1
 
Software Engineering Bootcamp - Meeting 2
Software Engineering Bootcamp - Meeting 2Software Engineering Bootcamp - Meeting 2
Software Engineering Bootcamp - Meeting 2
 
Software Engineering Bootcamp - Meeting 1
Software Engineering Bootcamp - Meeting 1Software Engineering Bootcamp - Meeting 1
Software Engineering Bootcamp - Meeting 1
 

Software Engineering Bootcamp - Meeting 4

  • 1. АРХИТЕКТУРА И ДИЗАЙН надежнобыстровместительнобезопасновездепроходимый автомобиль Yury Chernushenko
  • 2. ГРЕКАМ И НЕ СНИЛОСЬ Yury Chernushenko 2 АРХИТЕКТУРА) • Типичные ошибки) • Драйверы архитектуры) • Типы представлений) • Примеры шаблонов
  • 3. БОЕВОЙ НАБОР ИНЖЕНЕРА Yury Chernushenko 3 Архитектура Планирование и управление командой Дизайн и Разработка Упраление требованиями
  • 5. … ПОЛУЧИЛОСЬ КАК ВСЕГДА - 1 это слои? как связаны элементы? что такое внутренний компонент? Yury Chernushenko 5
  • 6. … ПОЛУЧИЛОСЬ КАК ВСЕГДА -2 где легенда? что означают стрелочки? это взаимодействие в runtime? Yury Chernushenko 6
  • 7. … ПОЛУЧИЛОСЬ КАК ВСЕГДА - 3 все на одной диаграмме. что означает форма? что означает цвет? Yury Chernushenko 7
  • 8. «КТО ВИНОВАТ?» ПЛОХО, НЕТ СТРАТЕГИИ РАЗРАБОТКИ Требования Спецификация (ТЗ) Приложение Yury Chernushenko ЕЩЕ ХУЖЕ 8
  • 9. «ЧТО ДЕЛАТЬ?» На основе требований На основе архитектуры Требования АРХИТЕКТУРАСпецификация (ТЗ) Приложение Yury Chernushenko 9 На основе дизайна АРХИТЕКТУРНЫЕ ДРАЙВЕРЫ ПРЕДСТАВЛЕНИЯ (ДИАГРАММЫ) ОПИСАНИЕ ПРИНЯТЫХ РЕШЕНИЙ (В ЧЕМ КОМПРОМИСС)
  • 10. Архитектурный «астронавт» ЗНАКОМЬТЕСЬ ТЕМНАЯ СТОРОНА АРХИТЕКТУРЫ: ! ✴ СЛИШКОМ АБСТРАКТНАЯ АРХИТЕКТУРА ✴ НЕ АДАПТИРОВАННА ПОД СИТУАЦИЮ ПРОЕКТА ✴ ДЕЛАЕТСЯ НЕТЕХНИЧЕСКИМИ СПЕЦИАЛИСТАМИ ✴ «ИСТОРИЧЕСКИ СЛОЖИЛОСЬ» ✴ «ИСПОЛЬЗУЮ MVC ДЛЯ ВСЕГО!» Yury Chernushenko 10
  • 11. ДРАЙВЕРЫ АРХИТЕКТУРЫ Yury Chernushenko 11 ФУНКЦИОНАЛЬНЫЕ ТРЕБОВАНИЯ ТЕХНИЧЕСКИЕ И БИЗНЕС АТТРИБУТЫ КАЧЕСТВА ОГРАНИЧЕНИЯ
  • 12. ТИПЫ ПРЕДСТАВЛЕНИЙ ДИНАМИЧЕСКОЕ - показывает структуру системы как набора блоков кода! СТАТИЧЕСКОЕ - показывает поведение и взаимодействие элементов системы при выполнении (runtime)! ФИЗИЧЕСКОЕ - показывает конфигурацию непрограммных элементов системы Yury Chernushenko 12
  • 16. АРХИТЕКТУРНЫЕ ШАБЛОНЫ • Их много (Client-Server, Broker, Middleware, Publisher- Subscriber, Pipe and Filter, Tiers/Layers, и др.)! • Они определяют типовую декомпозицию на основные элементы и их взаимодействие! • Их всегда нужно адаптировать под вашу ситуацию! • Нужо понимать и фиксировать все за и против использования того или иного решения, это всегда компромисс) Yury Chernushenko 16 Не знаете что выбрать? Попробуйте использовать процесс ACDM (Architecture-centric design method) для определения архитектуры
  • 17. ПРИМЕРЫ ШАБЛОНОВ - MIDDLEWARE Yury Chernushenko 17
  • 18. ПРИМЕРЫ ШАБЛОНОВ - PIPE AND FILTER Yury Chernushenko 18
  • 19. ЧТО ПОЧИТАТЬ Yury Chernushenko ACMD Шаблоны 19
  • 20. Yury Chernushenko Robert C. Martin (Uncle Bob) ! Выступления про Clean Architecture на youtube ! «Architecture create structures that allow decisions to be defined later» ! «Good Architects code» ! КОГО ПОСЛУШАТЬ 20
  • 21. ИНСТРУМЕНТЫ Yury Chernushenko Microsoft Visio - основной инструмент для построения диаграмм Keynote или Power Point - хорошее качество работы с этими инструментами требует высокой самодисциплины! 21
  • 22. ДИЗАЙН Описание конкретных технических решений) • Функциональный или ООП подход) • Алгоритмы) • Описание функций) • Описание структур данных) • … Yury Chernushenko про это и многое другое COMPUTER SCIENCE 22
  • 23. ЧТО ПОЧИТАТЬ Yury Chernushenko 23 x 3
  • 24. КОГО ПОСЛУШАТЬ Yury Chernushenko Олег Бунин архитектор высоконагруженных систем ! Выступление на iForum 2013 ! Вебинар по проектированию высоконагруженных систем ! Материалы конференции HighLoad++ 24
  • 25. ЧТО ПОЧИТАТЬ Yury Chernushenko 25
  • 26. ЧТО ДАЛЬШЕ Сбор и определение требований Планирование и контроль Архитектура и дизайн Управление качеством Управление рисками Yury Chernushenko 26 Процессы