Rubytrip!
40 days, 4 conferences, 8 countries
- RubyConfBY Minsk - April 6
- RubyDay Verona - April 11
- RubyWine Kishinev - April 13
- RailsConf Minneapolis - April 30
- Saint P RubyConf - June 1-2
railshurts.com/rubytrip
Slide 3
Slide 3 text
railshurts.com/lifecycle
Slide 4
Slide 4 text
railshurts.com
Slide 5
Slide 5 text
No content
Slide 6
Slide 6 text
No content
Slide 7
Slide 7 text
No content
Slide 8
Slide 8 text
No content
Slide 9
Slide 9 text
No content
Slide 10
Slide 10 text
No content
Slide 11
Slide 11 text
No content
Slide 12
Slide 12 text
No content
Slide 13
Slide 13 text
What’s missing?
Slide 14
Slide 14 text
?
Slide 15
Slide 15 text
OOP?
Design patterns?
SOLID?
Functional Programming?
DDD?
7 ways to refactor fat models …
What should we take
into account?
Well…
Slide 16
Slide 16 text
What should we take
into account?
Interaction with external world
Applications vs libraries
Layered architecture
Levels of abstractions
REST
Domain Driven Design
12 factors
Imperative vs Declarative
Functional approach
Side effects
State management
Types
Polymorphism
System thinking
Slide 17
Slide 17 text
Painless Rails principles
1.Differentiate
'schema' from
'implementation'
2.Reduce entry point
pressure
3.Control the number
of degrees of
freedom of the app
4.Don't mix layers of
abstractions
5.Don't fight against
the framework
railshurts.com/rails-principles
Slide 18
Slide 18 text
Sources
SICP
(Structure and
Interpretation of
Computer
Programs)
TAPL
(Types and
Programming
Languages)
by Benjamin C.
Pierce
DDD
(Domain-driven
design)
by Eric J. Evans
CC2e
(Code Complete
2nd edition)
by Steve
McConnell
railshurts.com/rails-principles
ISO/IEC/
IEEE 42010
Systems and
software
engineering —
Architecture
description