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
630
5
Share
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
910
The big, the small and the Redis
ptico
1
240
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
290
How to f*ck up the refactoring
ptico
11
460
Redis - little helper for big applications (rus)
ptico
3
170
Other Decks in Programming
See All in Programming
Surviving Black Friday: 329 billion requests with Falcon!
ioquatix
0
3.1k
How We Practice Exploratory Testing in Iterative Development( #scrumniigata ) / 反復開発の中で、探索的テストをどう実施しているか
teyamagu
PRO
3
840
関係性から理解する"同一性"の型用語たち
pvcresin
1
130
GoogleCloudとterraform完全に理解した
terisuke
1
200
PHPでローカル環境用のSSL/TLS証明書を発行することはできるのか? #phpconkagawa
akase244
0
370
GitHubCopilotCLIをはじめよう.pdf
htkym
0
330
AlarmKitで明後日起きれるアラームアプリを作る
trickart
0
140
Spec-Driven Development with AI Agents (Workshop, May 2026)
antonarhipov
3
360
Augmenting AI with the Power of Jakarta EE
ivargrimstad
0
460
Symfony AI in Action - SymfonyLive Berlin 2026
chr_hertel
1
150
AI時代だからこそ「Bloc」を採用する価値があるのかもしれない
takuroabe
0
180
Import assertionsが消えた日~ECMAScriptの仕様はどう決まり、なぜ覆るのか~
bicstone
2
180
Featured
See All Featured
The Invisible Side of Design
smashingmag
302
52k
Performance Is Good for Brains [We Love Speed 2024]
tammyeverts
12
1.6k
Why Your Marketing Sucks and What You Can Do About It - Sophie Logan
marketingsoph
0
140
Writing Fast Ruby
sferik
630
63k
Ethics towards AI in product and experience design
skipperchong
2
270
The Power of CSS Pseudo Elements
geoffreycrofte
82
6.2k
Design of three-dimensional binary manipulators for pick-and-place task avoiding obstacles (IECON2024)
konakalab
0
420
Refactoring Trust on Your Teams (GOTO; Chicago 2020)
rmw
35
3.5k
Introduction to Domain-Driven Design and Collaborative software design
baasie
1
780
Balancing Empowerment & Direction
lara
6
1.1k
技術選定の審美眼(2025年版) / Understanding the Spiral of Technologies 2025 edition
twada
PRO
118
110k
Tips & Tricks on How to Get Your First Job In Tech
honzajavorek
1
500
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