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
250
4
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Архитектура. Обзор
DAloG
November 20, 2014
More Decks by DAloG
See All by DAloG
State normalization (RU)
dalog
0
250
Redux + MQTT
dalog
1
830
От задач к проблемам
dalog
1
290
Unlimited power of Data-Driven UI
dalog
4
710
Data-Driven View Controllers. Tips and Tricks
dalog
5
2k
2 years of Redux in iOS. Lessons learned
dalog
0
420
Why unidirectional architecture matter for iOS.
dalog
1
340
Mobile backend without REST
dalog
2
150
Self managed teams 101
dalog
0
210
Other Decks in Programming
See All in Programming
Press start. Python's next generation.
willingc
PRO
3
260
リアルな遅延を測る仕様
kota_yata
1
130
Go を使い始めて 2 ヶ月の学び / My first two months with Go
contour_gara
0
390
AI Engineeringは、AIプロダクトだけのものか? 〜AIがソフトウェアを作る時代の新しい当たり前〜 / No AI in your product. AI Engineering in your development.
rkaga
5
550
ドリフトを絶対に許さない(?)CDK運用 / CDK Ops with Zero Tolerance for Drifts (?)
akihisaikeda
1
240
思考垂れ流し開発 ~音声入力 × AIエージェント × 開発ハーネスによる試行錯誤~
npostring
0
420
in-process GraphQL のすすめ #ginzajs
izumin5210
4
1.5k
自動化したのに回らない テスト運用の壁―AI時代の品質責任と生産性
mfunaki
0
530
まずはプロンプトガイドを読もう、話はそれからだ
kiakiraki
1
230
Claude Code全社展開のためにやったことn選~プラグイン302個・コミッター271人を支えるために~
kenchan
5
1.8k
生成AIで帳票OCRが「簡単に」作れる時代になった?
kon_shou
0
1.2k
異なる設計思想のフレームワークを経験して得た学び
amekuhideki
2
830
Featured
See All Featured
How to train your dragon (web standard)
notwaldorf
97
6.8k
Utilizing Notion as your number one productivity tool
mfonobong
4
560
Impact Scores and Hybrid Strategies: The future of link building
tamaranovitovic
0
420
Are puppies a ranking factor?
jonoalderson
2
3.8k
Visualization
eitanlees
152
17k
Google's AI Overviews - The New Search
badams
0
1.6k
世界の人気アプリ100個を分析して見えたペイウォール設計の心得
akihiro_kokubo
PRO
74
42k
How to audit for AI Accessibility on your Front & Back End
davetheseo
0
510
A designer walks into a library…
pauljervisheath
211
24k
Paper Plane (Part 1)
katiecoart
PRO
1
10k
Lessons Learnt from Crawling 1000+ Websites
charlesmeaden
PRO
1
1.5k
How to Talk to Developers About Accessibility
jct
2
530
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]