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
Sponsored
·
Ship Features Fearlessly
Turn features on and off without deploys. Used by thousands of Ruby developers.
→
DAloG
November 20, 2014
Programming
240
4
Share
Архитектура. Обзор
DAloG
November 20, 2014
More Decks by DAloG
See All by DAloG
State normalization (RU)
dalog
0
230
Redux + MQTT
dalog
1
810
От задач к проблемам
dalog
1
280
Unlimited power of Data-Driven UI
dalog
4
690
Data-Driven View Controllers. Tips and Tricks
dalog
5
2k
2 years of Redux in iOS. Lessons learned
dalog
0
410
Why unidirectional architecture matter for iOS.
dalog
1
320
Mobile backend without REST
dalog
2
140
Self managed teams 101
dalog
0
190
Other Decks in Programming
See All in Programming
煩雑なSkills管理をSoC(関心の分離)により解決する――関心を分離し、プロンプトを部品として育てるためのOSSを作った話 / Solving Complex Skills Management Through SoC (Separation of Concerns)
nrslib
4
970
ハンズオンで学ぶクラウドネイティブ
tatsukiminami
0
130
AIベース静的検査器の偽陽性率を抑える工夫3選
orgachem
PRO
3
320
実用!Hono RPC2026
yodaka
2
230
セグメントとターゲットを意識するプロポーザルの書き方 〜採択の鍵は、誰に刺すかを見極めるマーケティング戦略にある〜
m3m0r7
PRO
0
550
AWSコミュニティ活動は顧客のクラウド推進に効くのか / Do AWS community activities help customers adopt the cloud?
seike460
PRO
0
140
Lightning-Fast Method Calls with Ruby 4.1 ZJIT / RubyKaigi 2026
k0kubun
3
420
瑠璃の宝石に学ぶ技術の声の聴き方 / 【劇場版】アニメから得た学びを発表会2026 #エンジニアニメ
mazrean
0
260
Don't Prompt Harder, Structure Better
kitasuke
0
770
Swift Concurrency Type System
inamiy
0
530
NakouPAY説明用
annouim0
0
230
mruby on C#: From VM Implementation to Game Scripting (RubyKaigi 2026)
hadashia
2
550
Featured
See All Featured
Between Models and Reality
mayunak
3
270
Design and Strategy: How to Deal with People Who Don’t "Get" Design
morganepeng
133
19k
Noah Learner - AI + Me: how we built a GSC Bulk Export data pipeline
techseoconnect
PRO
0
160
How to build an LLM SEO readiness audit: a practical framework
nmsamuel
1
720
Google's AI Overviews - The New Search
badams
0
980
Money Talks: Using Revenue to Get Sh*t Done
nikkihalliwell
0
200
We Have a Design System, Now What?
morganepeng
55
8.1k
WENDY [Excerpt]
tessaabrams
10
37k
Taking LLMs out of the black box: A practical guide to human-in-the-loop distillation
inesmontani
PRO
3
2.1k
XXLCSS - How to scale CSS and keep your sanity
sugarenia
250
1.3M
Crafting Experiences
bethany
1
120
Stop Working from a Prison Cell
hatefulcrawdad
274
21k
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]