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
830
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
450
Redis - little helper for big applications (rus)
ptico
3
150
Other Decks in Programming
See All in Programming
Debugging: A Few Things You Should Know
jmatsu
1
140
メルカリ ハロ アプリの技術スタック
atsumo
2
910
破壊せよ!データ破壊駆動で考えるドメインモデリング / data-destroy-driven
minodriven
4
430
go.mod、DockerfileやCI設定に分散しがちなGoのバージョンをまとめて管理する / Go Connect #3
arthur1
5
1.6k
gopls を改造したら開発生産性が高まった
satorunooshie
7
140
Serverless renderování Webových komponent
rarous
PRO
0
140
Google Play Consoleデベロッパー アカウントの確認 / Verifying your Play Console developer account
kubode
0
320
今日で分かる!カスタムコップの作り方
krpk1900
2
320
Prompt Engineering for Developers @ AWS Community Day Adria 2024
slobodan
0
110
How to debug Xdebug... or any other weird bug in PHP
dunglas
2
1.5k
Kubernetes for Data Engineers: Building Scalable, Reliable Data Pipelines
sucitw
1
110
知られざるNaNの世界
hole
3
1.1k
Featured
See All Featured
Building Better People: How to give real-time feedback that sticks.
wjessup
363
19k
CSS Pre-Processors: Stylus, Less & Sass
bermonpainter
355
29k
Side Projects
sachag
452
42k
Why Our Code Smells
bkeepers
PRO
334
57k
Teambox: Starting and Learning
jrom
132
8.7k
Reflections from 52 weeks, 52 projects
jeffersonlam
346
20k
Producing Creativity
orderedlist
PRO
341
39k
For a Future-Friendly Web
brad_frost
174
9.4k
Building Your Own Lightsaber
phodgson
102
6k
GraphQLとの向き合い方2022年版
quramy
43
13k
Optimising Largest Contentful Paint
csswizardry
31
2.9k
Building an army of robots
kneath
302
42k
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