Slide 1

Slide 1 text

What’s missing? Ivan Nemytchenko, @inem, 2019

Slide 2

Slide 2 text

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

Slide 19

Slide 19 text

[email protected] @inem railshurts.com/rails-principles

Slide 20

Slide 20 text

April 14 20:00 (Msk/Minsk time) railshurts.com/webinar How to stop worrying about ActiveRecord and love Rails again