Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Архитектура. Обзор
Search
DAloG
November 20, 2014
Programming
4
210
Архитектура. Обзор
DAloG
November 20, 2014
Tweet
Share
More Decks by DAloG
See All by DAloG
State normalization (RU)
dalog
0
150
Redux + MQTT
dalog
1
730
От задач к проблемам
dalog
1
170
Unlimited power of Data-Driven UI
dalog
4
580
Data-Driven View Controllers. Tips and Tricks
dalog
5
1.7k
2 years of Redux in iOS. Lessons learned
dalog
0
320
Why unidirectional architecture matter for iOS.
dalog
1
260
Mobile backend without REST
dalog
2
72
Self managed teams 101
dalog
0
120
Other Decks in Programming
See All in Programming
How to implement a RubyVM with PHP?
memory1994
PRO
2
540
Effectで作る堅牢でスケーラブルなAPIゲートウェイ / Robust and Scalable API Gateway Built on Effect
yasaichi
7
1.2k
酒飲んでたらテックリードになった話
spbaya0141
0
210
slog登場に伴うloggerの取り回し手法の見直し / kamakura.go #6
arthur1
0
150
PHPコードの実行モデルを理解する / Understanding-the-PHP-Execution-Model
shin1x1
0
1.1k
JS RPCを理解する
yusukebe
5
280
TypeScriptの型とパフォーマンス (TSKaigi 2024)
ypresto
14
4.6k
CREってこういうこと? 体験入社 - 提案資料 - / what-is-cre-trial-employment
shinden
1
620
勉強会4_アップデートされたAssistantsAPIを試す
milky04
0
100
The Final Frontier of Web Development: React Server Components vs Jakarta EE
ivargrimstad
0
130
WinActorの勉強を継続する方法
tamai_63
0
130
mb_trim関数を作りました
youkidearitai
PRO
1
230
Featured
See All Featured
10 Git Anti Patterns You Should be Aware of
lemiorhan
649
58k
A Modern Web Designer's Workflow
chriscoyier
689
190k
Music & Morning Musume
bryan
41
5.6k
Designing with Data
zakiwarfel
96
4.8k
Web Components: a chance to create the future
zenorocha
306
41k
Ruby is Unlike a Banana
tanoku
96
10k
The Success of Rails: Ensuring Growth for the Next 100 Years
eileencodes
34
6.1k
Code Reviewing Like a Champion
maltzj
515
39k
A better future with KSS
kneath
231
16k
Navigating Team Friction
lara
179
13k
The Straight Up "How To Draw Better" Workshop
denniskardys
228
130k
The Cult of Friendly URLs
andyhume
74
5.7k
Transcript
Архитектура в мобильных проектах Основы, обзор, описание Алексей Демедецкий. Ноябрь
2014 @ Ciklum speakers corner
Определения
Архитектура - описание принципов распределения ролей и ответственностей в системе
Проектирование - процесс модификации архитектуры
Разработка - процесс забивания на архитектуру
Разработка - процесс поиска компромиса c архитектурой
Цели архитектуры
Цели • Гибкость • Предсказуемость • Жесткость • Понятность
Роли в проектировании
Роли • Команда • Бизнес • Тестировщики
Контекст принятия решений
Требования Команда Сроки
Контекст - определяющий момент в принятии решения.
Все решения принимаются с учетом контекста, поэтому слабо переносимы.
Характеристики архитектуры
• Связанность по коду (3) • Связанность по фичам (7)
• Модульность (8) • Прогнозируемость (9) • Самоподобие(10)
Актуальность
Способы анализа архитектуры
• Метрики кода (6) • Процессные метрики (8) • Мнение
команды (10)
Интеграция архитектур и фреймворков
Мета-архитектура
Мета-Мета-архитектура
Типы архитектур в мобильных приложениях
• Платформо-специфическая (как все) • Транзакционная • С моделью доменной
области • «Шина событий» • Слоевая • Радиальная
Фреймворк - каркас помогающий в решении проблем Архитекура - каркас
для выбора будущих проблем
Стоимость принятия архитектурных решений
Время Стоимость Раньше == Дешевле?
Так было раньше.
Время обратной связи >> Время изменения архитектуры
Время обратной связи ~ Время изменения архитектуры
Каждое решение отрезает путь для тысячи вариантов.
Время Стоимость Вовремя == Дешевле!
Рекомендации по выбору хороших решений
Литература • http://martinfowler.com/articles/designDead.html • http://alistair.cockburn.us/index.php/ Hexagonal_architecture • http://silkandspinach.net/2005/05/23/databases-as-life- support-for-domain-objects •
http://silkandspinach.net/2005/11/28/gravity-and- software-adaptability • http://martinfowler.com/eaaDev/PresentationModel.html
• http://www.amazon.com/Code-Complete-Practical- Handbook-Construction/dp/0735619670 • http://www.extremeprogramming.org • http://www.martinfowler.com/books/eaa.html
• http://blog.8thlight.com/arlandis-lawrence/2014/08/03/ prideful-programming.html • http://www.javaworld.com/article/2076128/design- patterns/hmvc--the-layered-pattern-for-developing- strong-client-tiers.html • http://www.targetprocess.com/articles/visual- specifications.html
• https://www.destroyallsoftware.com/talks/boundaries • http://www.targetprocess.com/articles/speed-in- software-development.html
Архитектура - один из аспектов качества продукта.
Ориентированность на продукт • http://www.youtube.com/watch?v=I5RqcYzrY4Y
Вопросы Алексей Демедецкий Skype: nobidon e-mail:
[email protected]