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
200
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
124
8.5k
Letting Users Get On With Their Lives
cromwellryan
2
320
Collaborative APIs
cromwellryan
4
360
Sweet Elixir - Short
cromwellryan
5
370
Growing Great Teams - Codemash 2014 Lightning Talk
cromwellryan
0
270
Professional Scrum with Visual Studio 2012
cromwellryan
0
330
Avoiding Scrummerfall
cromwellryan
3
980
Selenium + Specflow: ATDD for .Net
cromwellryan
2
560
Other Decks in Programming
See All in Programming
エンターテイメント業界で利用されるAWS
demuyan
0
210
"config" ってなんだ? / What is "config"?
okashoi
0
240
冗長なエラーログを削減し、スタックトレースを手に入れる / Reducing Verbose Error Logs and Obtaining Stack Traces
upamune
0
480
try!Swift Tokyo 2024 参加報告 LT
akidon0000
1
220
TYPO3 v13 – The road to LTS: What's new and new APIs
luisasofie_xoxo
0
200
HUIT新歓2024「競技プログラミング、やってみませんか?」
slephy2784
1
270
Compose-View Interop in Practice (mDevCamp 2024)
stewemetal
0
120
大規模Reactアプリのリアーキテクチャ~8万行のTanStack Query移行の軌跡~
kj455
4
950
if constexpr文はテンプレート世界のラムダ式である
faithandbrave
3
640
Hanami and htmx
bkuhlmann
0
210
FigmaとPHPで作る1ミリたりとも表示崩れしない最強の帳票印刷ソリューション
ttskch
43
19k
ゆるい個人開発のススメ
kuroppe1819
10
990
Featured
See All Featured
The Cost Of JavaScript in 2023
addyosmani
16
3.9k
Helping Users Find Their Own Way: Creating Modern Search Experiences
danielanewman
20
1.9k
The MySQL Ecosystem @ GitHub 2015
samlambert
243
12k
Writing Fast Ruby
sferik
621
60k
Ruby is Unlike a Banana
tanoku
96
10k
How GitHub Uses GitHub to Build GitHub
holman
468
290k
Side Projects
sachag
451
41k
[Rails World 2023 - Day 1 Closing Keynote] - The Magic of Rails
eileencodes
2
1.3k
Fight the Zombie Pattern Library - RWD Summit 2016
marcelosomers
227
16k
What's new in Ruby 2.0
geeforr
337
31k
WebSockets: Embracing the real-time Web
robhawkes
59
7k
It's Worth the Effort
3n
180
27k
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]