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
5
600
Practical SOLID with Rails
Ruby Meditation s.1, e.1, Kiev
Andrey Savchenko
February 23, 2013
Tweet
Share
More Decks by Andrey Savchenko
See All by Andrey Savchenko
Building web-API without Rails, registration or sms
ptico
3
870
The big, the small and the Redis
ptico
1
230
Zen TDD
ptico
2
180
The Application: An Unexpected Journey
ptico
1
290
The scary fairy tale about MVC or How to stop worrying and start to write ruby code
ptico
3
270
How to f*ck up the refactoring
ptico
11
450
Redis - little helper for big applications (rus)
ptico
3
160
Other Decks in Programming
See All in Programming
今ならAmazon ECSのサービス間通信をどう選ぶか / Selection of ECS Interservice Communication 2025
tkikuc
11
2.8k
TypeScript LSP の今までとこれから
quramy
1
510
XSLTで作るBrainfuck処理系
makki_d
0
210
実践ArchUnit ~実例による検証パターンの紹介~
ogiwarat
2
280
関数型まつりレポート for JuliaTokai #22
antimon2
0
130
生成AIで日々のエラー調査を進めたい
yuyaabo
0
620
コード書くの好きな人向けAIコーディング活用tips #orestudy
77web
3
320
AWS CDKの推しポイント 〜CloudFormationと比較してみた〜
akihisaikeda
3
290
GoのWebAssembly活用パターン紹介
syumai
3
10k
型付きアクターモデルがもたらす分散シミュレーションの未来
piyo7
0
800
つよそうにふるまい、つよい成果を出すのなら、つよいのかもしれない
irof
1
300
データの民主化を支える、透明性のあるデータ利活用への挑戦 2025-06-25 Database Engineering Meetup#7
y_ken
0
280
Featured
See All Featured
Statistics for Hackers
jakevdp
799
220k
The Web Performance Landscape in 2024 [PerfNow 2024]
tammyeverts
8
660
Templates, Plugins, & Blocks: Oh My! Creating the theme that thinks of everything
marktimemedia
31
2.4k
Faster Mobile Websites
deanohume
307
31k
The Invisible Side of Design
smashingmag
299
51k
A better future with KSS
kneath
239
17k
Imperfection Machines: The Place of Print at Facebook
scottboms
267
13k
The World Runs on Bad Software
bkeepers
PRO
69
11k
What's in a price? How to price your products and services
michaelherold
245
12k
Designing for humans not robots
tammielis
253
25k
Rebuilding a faster, lazier Slack
samanthasiow
81
9k
Fashionably flexible responsive web design (full day workshop)
malarkey
407
66k
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