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
Practical SOLID with Rails
Search
Andrey Savchenko
February 23, 2013
Programming
640
5
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Practical SOLID with Rails
Ruby Meditation s.1, e.1, Kiev
Andrey Savchenko
February 23, 2013
More Decks by Andrey Savchenko
See All by Andrey Savchenko
Building web-API without Rails, registration or sms
ptico
3
930
The big, the small and the Redis
ptico
1
250
Zen TDD
ptico
2
220
The Application: An Unexpected Journey
ptico
1
330
The scary fairy tale about MVC or How to stop worrying and start to write ruby code
ptico
3
310
How to f*ck up the refactoring
ptico
11
470
Redis - little helper for big applications (rus)
ptico
3
180
Other Decks in Programming
See All in Programming
komatsuna「分散システムにおけるバグ分析手法」
komatsunaqa
0
280
AI時代に学ぶ 好きなルール 嫌いなルール Linter編
shorty5121
0
190
プロポーザルを書いてもらう
pvcresin
0
590
仕様駆動開発へのトライを機に チームに適合する手法を模索し続けている話
freee
PRO
0
640
Press start. Python's next generation.
willingc
PRO
3
250
まだ間に合う!今年の夏こそSchemeのマクロ展開器を完全理解!
omasanori
0
560
いまどきの Codex で開発する visionOS アプリの開発スタイルについて
karad
0
170
VibeCodingからAgenticWorkflowへ
starfish719
0
940
Loosening the Reins: Go Generics Get More Flexible
kuro_kurorrr
0
340
freeeにおけるEvalsの実践例の紹介
freee
PRO
0
160
React本体のコードリーディング
high_g_engineer
1
160
Go 1.27からのGODEBUG / Go 1.27 リリースパーティ #go127party
mazrean
0
250
Featured
See All Featured
More Than Pixels: Becoming A User Experience Designer
marktimemedia
3
500
JAMstack: Web Apps at Ludicrous Speed - All Things Open 2022
reverentgeek
1
580
Building Flexible Design Systems
yeseniaperezcruz
330
41k
Fireside Chat
paigeccino
42
4k
XXLCSS - How to scale CSS and keep your sanity
sugarenia
249
1.3M
Collaborative Software Design: How to facilitate domain modelling decisions
baasie
1
290
Redefining SEO in the New Era of Traffic Generation
szymonslowik
1
400
Build your cross-platform service in a week with App Engine
jlugia
234
19k
GitHub's CSS Performance
jonrohan
1033
470k
First, design no harm
axbom
PRO
2
1.3k
Building the Perfect Custom Keyboard
takai
2
850
Leveraging LLMs for student feedback in introductory data science courses - posit::conf(2025)
minecr
1
360
Transcript
Practical SOLID with Rails Andrey Savchenko CTO @ Aejis Tuesday,
March 19, 13
Let’s start the our new, awesome project! Tuesday, March 19,
13
class < ActiveRecord::Base belongs_to :company has_many :products has_many :warehouses validates_presence_of
:name end Tuesday, March 19, 13
Tuesday, March 19, 13
10 months later... Tuesday, March 19, 13
Tuesday, March 19, 13
Tuesday, March 19, 13
SOLID Tuesday, March 19, 13
SOLID • Single responsibility principle • Open-Closed principle • Liskov
substitution principle • Interface segregation principle • Dependency inversion principle Tuesday, March 19, 13
SRP • Easy to read • Easy to change •
Easy to reuse No god objects Tuesday, March 19, 13
Tuesday, March 19, 13
Tuesday, March 19, 13
Tuesday, March 19, 13
Tuesday, March 19, 13
Tuesday, March 19, 13
Tuesday, March 19, 13
Tuesday, March 19, 13
Tuesday, March 19, 13
Tuesday, March 19, 13
Tuesday, March 19, 13
PROFIT!? Tuesday, March 19, 13
So much objects? NO! Tuesday, March 19, 13
YES! • https://github.com/drapergem/draper • https://github.com/mbj/aequitas • https://github.com/Ptico/resourced • https://github.com/bogdan/datagrid Tuesday,
March 19, 13
OCP Tuesday, March 19, 13
Tuesday, March 19, 13
Tuesday, March 19, 13
LSP Tuesday, March 19, 13
ISP Tuesday, March 19, 13
DI Tuesday, March 19, 13
Tuesday, March 19, 13
Tuesday, March 19, 13
Picture with cat Because everyone loves cats <3 Tuesday, March
19, 13
Questions? • Twitter: @ptico • Github: @ptico Tuesday, March 19,
13