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
590
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
810
The big, the small and the Redis
ptico
1
220
Zen TDD
ptico
2
180
The Application: An Unexpected Journey
ptico
1
280
The scary fairy tale about MVC or How to stop worrying and start to write ruby code
ptico
3
260
How to f*ck up the refactoring
ptico
11
440
Redis - little helper for big applications (rus)
ptico
3
140
Other Decks in Programming
See All in Programming
Save Time (by Creating Custom Rails Generators)
garrettdimon
PRO
1
130
TypeScript Custom GitHub Action Development Tips
peaceiris
5
570
Amazon Aurora Serverless v2が意外と高かった話と、AWS Database Migration Serviceの話
satoshi256kbyte
1
110
チーム立ち上げにAWSを活用したらClaudeさんに褒められた話
mkdev10
3
230
哲学史とモデリング
tanakahisateru
2
430
Documentation testsの恩恵 / Documentation testing benefits
ssssota
1
560
TypeScriptで使いやすいOpenAPIの書き方
yukimochi_dwango
1
910
Findy - エンジニア向け会社紹介 / Findy Letter for Engineers
findyinc
2
74k
GoでParserを書く
karupanerura
3
400
Dev ContainersとTestcontainers
bells17
3
100
TypeScriptの型とパフォーマンス (TSKaigi 2024)
ypresto
14
4.6k
freeeのエンジニアが 就活で出そうな コーディングテストを 解説してみる
freee
1
170
Featured
See All Featured
Templates, Plugins, & Blocks: Oh My! Creating the theme that thinks of everything
marktimemedia
20
1.8k
Distributed Sagas: A Protocol for Coordinating Microservices
caitiem20
323
20k
How to Ace a Technical Interview
jacobian
273
22k
XXLCSS - How to scale CSS and keep your sanity
sugarenia
242
1.2M
Learning to Love Humans: Emotional Interface Design
aarron
267
39k
Designing for humans not robots
tammielis
247
25k
JavaScript: Past, Present, and Future - NDC Porto 2020
reverentgeek
41
4.5k
RailsConf & Balkan Ruby 2019: The Past, Present, and Future of Rails at GitHub
eileencodes
126
32k
ピンチをチャンスに:未来をつくるプロダクトロードマップ #pmconf2020
aki_iinuma
84
45k
The World Runs on Bad Software
bkeepers
PRO
61
6.7k
Into the Great Unknown - MozCon
thekraken
15
1.1k
Adopting Sorbet at Scale
ufuk
69
8.6k
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