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
920
The big, the small and the Redis
ptico
1
250
Zen TDD
ptico
2
210
The Application: An Unexpected Journey
ptico
1
320
The scary fairy tale about MVC or How to stop worrying and start to write ruby code
ptico
3
300
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
JavaDoc 再入門
nagise
0
310
AI時代のUIはどこへ行く?その2!
yusukebe
19
6.9k
AIチームを指揮するOSS「TAKT」活用術 / How to Use “TAKT,” an OSS Tool for Orchestrating AI Teams
nrslib
6
850
「AIで開発し、AIを届ける」をEvalでつなぐ 〜AIネイティブに始めるプロダクト開発の実践〜 / Connecting "Develop with AI, deliver AI" with Eval
rkaga
4
4.8k
AIエージェントの隔離技術の徹底比較
kawayu
0
470
Copilot CLI の継戦能力を高める コンテキスト管理
nozomutu
1
1.2k
The NotImplementedError Problem in Ruby
koic
1
660
Javaの型とAI時代に型が大事な理由 / java types and type in AI era
kishida
2
120
New "Type" system on PicoRuby
pocke
1
730
The Arts and Crafts of Work in the AI Era — Toward Mastery in Software Development
kuranuki
1
730
過去最大のMCPアップデート! 2026-07-28 RC版の謎に迫る
licux
6
190
Why Laravel apps break—Mastering the fundamentals to keep them maintainable
kentaroutakeda
1
340
Featured
See All Featured
Easily Structure & Communicate Ideas using Wireframe
afnizarnur
194
17k
The AI Search Optimization Roadmap by Aleyda Solis
aleyda
1
5.9k
Let's Do A Bunch of Simple Stuff to Make Websites Faster
chriscoyier
508
140k
The Art of Programming - Codeland 2020
erikaheidi
57
14k
How to Think Like a Performance Engineer
csswizardry
28
2.6k
Tell your own story through comics
letsgokoyo
1
950
Ruling the World: When Life Gets Gamed
codingconduct
0
250
Designing for Performance
lara
611
70k
Context Engineering - Making Every Token Count
addyosmani
9
950
Collaborative Software Design: How to facilitate domain modelling decisions
baasie
1
240
Mozcon NYC 2025: Stop Losing SEO Traffic
samtorres
1
250
Lessons Learnt from Crawling 1000+ Websites
charlesmeaden
PRO
1
1.3k
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