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
How to Explore a Large Rails Application
Search
Nick Bienko
September 26, 2015
Programming
1
98
How to Explore a Large Rails Application
Rails Club 2015 talk by Nikolay Bienko
Nick Bienko
September 26, 2015
Tweet
Share
More Decks by Nick Bienko
See All by Nick Bienko
Monorails Application Design vs Cult of Microservices
bikolya
3
230
Other Decks in Programming
See All in Programming
What you can do with Ruby on WebAssembly
kateinoigakukun
0
170
長期運用プロダクトの開発速度を維持し続けるためのリファクタリング実践例
wataruss
8
2.7k
KSPの導入・移行を前向きに検討しよう!
shxun6934
PRO
0
280
Kotlin 2.0が与えるAndroid開発の進化
masayukisuda
1
410
Findy - エンジニア向け会社紹介 / Findy Letter for Engineers
findyinc
4
90k
マルチモジュールにおけるテスト最適化
fxwx23
0
210
LangGraphでのHuman-in-the-Loopの実装
os1ma
3
1.1k
状態管理ライブラリZustandの導入から運用まで
k1tikurisu
3
470
Boost Performance and Developer Productivity with Jakarta EE 11
ivargrimstad
0
490
[DroidKaigi 2024] Android ViewからJetpack Composeへ 〜Jetpack Compose移行のすゝめ〜 / From Android View to Jetpack Compose: A Guide to Migration
syarihu
1
630
Using Livebook to build and deploy internal tools @ ElixirConf 2024
hugobarauna
0
250
Increased Performance and Developer Productivity with Jakarta EE 11
ivargrimstad
0
380
Featured
See All Featured
Art, The Web, and Tiny UX
lynnandtonic
294
20k
Fashionably flexible responsive web design (full day workshop)
malarkey
401
65k
Facilitating Awesome Meetings
lara
49
5.9k
Thoughts on Productivity
jonyablonski
66
4.2k
Why You Should Never Use an ORM
jnunemaker
PRO
53
8.9k
Making Projects Easy
brettharned
113
5.8k
Building Adaptive Systems
keathley
36
2.1k
Designing Experiences People Love
moore
138
23k
Adopting Sorbet at Scale
ufuk
73
8.9k
5 minutes of I Can Smell Your CMS
philhawksworth
202
19k
What’s in a name? Adding method to the madness
productmarketing
PRO
21
3k
Rebuilding a faster, lazier Slack
samanthasiow
78
8.6k
Transcript
How to Explore a Large Rails Application Nikolay Bienko, AT
Consulting @bikolyarb
[email protected]
Plan UI Traversing & Domain knowledge Get the app up
and running Estimate codebase Check out primary entities ApplicationController Follow main use cases POROs and pattern objects
UI Traversing & Domain knowledge Explore what is your app
about Documentation Grasp domain knowledge
None
None
Get the app up and running Make tests green bin/setup
rake --tasks routes.rb gemfile-verboser
None
None
None
None
gemfile-verboser
Estimate codebase rake stats wc -l app/models/**/*.rb | sort gem
‘rails-erd’ gem ‘railroady’
None
None
wc -l app/models/**/*.rb wc -l app/controllers/**/*.rb
gem ‘rails-erd’
gem ‘railroady’
Check out primary entities Entity-Relationship Diagrams schema.rb gem ‘annotate’
gem ‘annotate’
ApplicationController Callbacks Methods and helper methods Authentication
ApplicationController
Follow main use cases routes -> controller -> model ->
view pry pry-byebug stack-trace Introspection methods ctags Integration testing gem ‘rails-footnotes’ gem ‘state_machine’ with graphs
None
gem ‘rails-footnotes’
gem ‘state_machine’ with graphs
POROs and pattern objects lib app/services app/decorators app/facades app/helpers
Summary UI Traversing & Domain knowledge Get the app up
and running Estimate codebase Check out primary entities ApplicationController Follow main use cases POROs and pattern objects
None
None
Feedback is welcome Nikolay Bienko, AT Consulting @bikolyarb
[email protected]