×
Copy
Open
Link
Embed
Share
Beginning
This slide
Copy link URL
Copy link URL
Copy iframe embed code
Copy iframe embed code
Copy javascript embed code
Copy javascript embed code
Share
Tweet
Share
Tweet
Slide 1
Slide 1 text
Practical SOLID with Rails Andrey Savchenko CTO @ Aejis Tuesday, March 19, 13
Slide 2
Slide 2 text
Let’s start the our new, awesome project! Tuesday, March 19, 13
Slide 3
Slide 3 text
class < ActiveRecord::Base belongs_to :company has_many :products has_many :warehouses validates_presence_of :name end Tuesday, March 19, 13
Slide 4
Slide 4 text
Tuesday, March 19, 13
Slide 5
Slide 5 text
10 months later... Tuesday, March 19, 13
Slide 6
Slide 6 text
Tuesday, March 19, 13
Slide 7
Slide 7 text
Tuesday, March 19, 13
Slide 8
Slide 8 text
SOLID Tuesday, March 19, 13
Slide 9
Slide 9 text
SOLID • Single responsibility principle • Open-Closed principle • Liskov substitution principle • Interface segregation principle • Dependency inversion principle Tuesday, March 19, 13
Slide 10
Slide 10 text
SRP • Easy to read • Easy to change • Easy to reuse No god objects Tuesday, March 19, 13
Slide 11
Slide 11 text
Tuesday, March 19, 13
Slide 12
Slide 12 text
Tuesday, March 19, 13
Slide 13
Slide 13 text
Tuesday, March 19, 13
Slide 14
Slide 14 text
Tuesday, March 19, 13
Slide 15
Slide 15 text
Tuesday, March 19, 13
Slide 16
Slide 16 text
Tuesday, March 19, 13
Slide 17
Slide 17 text
Tuesday, March 19, 13
Slide 18
Slide 18 text
Tuesday, March 19, 13
Slide 19
Slide 19 text
Tuesday, March 19, 13
Slide 20
Slide 20 text
Tuesday, March 19, 13
Slide 21
Slide 21 text
PROFIT!? Tuesday, March 19, 13
Slide 22
Slide 22 text
So much objects? NO! Tuesday, March 19, 13
Slide 23
Slide 23 text
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
Slide 24
Slide 24 text
OCP Tuesday, March 19, 13
Slide 25
Slide 25 text
Tuesday, March 19, 13
Slide 26
Slide 26 text
Tuesday, March 19, 13
Slide 27
Slide 27 text
LSP Tuesday, March 19, 13
Slide 28
Slide 28 text
ISP Tuesday, March 19, 13
Slide 29
Slide 29 text
DI Tuesday, March 19, 13
Slide 30
Slide 30 text
Tuesday, March 19, 13
Slide 31
Slide 31 text
Tuesday, March 19, 13
Slide 32
Slide 32 text
Picture with cat Because everyone loves cats <3 Tuesday, March 19, 13
Slide 33
Slide 33 text
Questions? • Twitter: @ptico • Github: @ptico Tuesday, March 19, 13