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
Getting Feature Focused
Search
Ryan Cromwell
October 30, 2012
Programming
2
300
Getting Feature Focused
Experiences build an application organized by feature rather than architecture.
Ryan Cromwell
October 30, 2012
Tweet
Share
More Decks by Ryan Cromwell
See All by Ryan Cromwell
Making the Leap to Tech Lead
cromwellryan
134
9.3k
Letting Users Get On With Their Lives
cromwellryan
2
420
Collaborative APIs
cromwellryan
4
460
Sweet Elixir - Short
cromwellryan
6
560
Growing Great Teams - Codemash 2014 Lightning Talk
cromwellryan
0
410
Professional Scrum with Visual Studio 2012
cromwellryan
0
450
Avoiding Scrummerfall
cromwellryan
3
1.2k
Selenium + Specflow: ATDD for .Net
cromwellryan
2
750
Other Decks in Programming
See All in Programming
レガシーシステムの機能調査・開発におけるAI利活用
takuya_ohtonari
0
170
Cloudflare Realtime と Workers でつくるサーバーレス WebRTC
nekoya3
0
350
Spring gRPC で始める gRPC 入門 / Introduction to gRPC with Spring gRPC
mackey0225
2
400
UPDATEがシステムを複雑にする? イミュータブルデータモデルのすすめ
shimomura
0
400
❄️ tmux-nixの実装を通して学ぶNixOSモジュール
momeemt
1
140
インターフェース設計のコツとツボ
togishima
2
650
無関心の谷
kanayannet
0
110
実はすごいスピードで進化しているCSS
hayato_yokoyama
0
100
Efficiency and Rock 'n’ Roll (Really!)
hollycummins
0
650
Doma で目指す ORM 最適解
nakamura_to
1
170
イベントストーミングから始めるドメイン駆動設計
jgeem
3
720
TypeScript製IaCツールのAWS CDKが様々な言語で実装できる理由 ~他言語変換の仕組み~ / cdk-language-transformation
gotok365
7
400
Featured
See All Featured
Learning to Love Humans: Emotional Interface Design
aarron
273
40k
Distributed Sagas: A Protocol for Coordinating Microservices
caitiem20
331
22k
The Cult of Friendly URLs
andyhume
78
6.4k
Fashionably flexible responsive web design (full day workshop)
malarkey
407
66k
How GitHub (no longer) Works
holman
314
140k
Docker and Python
trallard
44
3.4k
Why Our Code Smells
bkeepers
PRO
337
57k
"I'm Feeling Lucky" - Building Great Search Experiences for Today's Users (#IAC19)
danielanewman
228
22k
Refactoring Trust on Your Teams (GOTO; Chicago 2020)
rmw
34
3k
How to Think Like a Performance Engineer
csswizardry
24
1.6k
Code Review Best Practice
trishagee
68
18k
Why You Should Never Use an ORM
jnunemaker
PRO
56
9.4k
Transcript
Feature Focused A Be.er Applica2on Structure
• Coder • Agile Coach • Scrum.org Trainer
Who am I? Ryan Cromwell
travel + twins = crazy person
where would you go to… update the search algorithm?
add favorite products? one click checkout only show in-‐stock products?
I don’t even like my mouse. My mouse was
crying… omg!
architecture rant bit.ly/unclebobarch bit.ly/screamarch
• Release Reuse • Common Closure • Common
Reuse • Acyclic Dependencies • Stable Dependencies • Stable Abstrac2ons Forgo%en SOLID principals What you hear about • Single Responsibility • Open/Closed • Liskov Subs2tu2on • Interface Segrega2on • Dependency Inversion
common closure Classes that change together are packaged together.
h.p://bit.ly/PrincOOD
• Tasking • Chat (XMPP) Feature Themes walk the
walk Context • Air Force • Old: Thick Client • New: Single Page App • HTML5(ish) + Javascript • Java
Why call them modules? S2ll a lot of noise
spot the feature?
Focus Drill into chat feature Focus
other effects • Conven2ons Within Features • Responsibility Viola2ons
Obvious • Ramp up • Small, Simple Interfeature Collabora2on “Ah consistency, the path to simplicity and the bane of innova6on. Choose wisely” ~ me, on twi<er
what‘s next? • Server + Client side-‐by-‐side (i.e. Controllers)
• CSS/images • Requirejs + unit tes2ng = painful • Frameworks/Tooling
thanks! @cromwellryan h.p://cromwellhaus.com
[email protected]