Upgrade to Pro — share decks privately, control downloads, hide ads and more …

What’s missing?

What’s missing?

Ivan Nemytchenko

April 06, 2019
Tweet

More Decks by Ivan Nemytchenko

Other Decks in Programming

Transcript

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

    View Slide

  2. 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

    View Slide

  3. railshurts.com/lifecycle

    View Slide

  4. railshurts.com

    View Slide

  5. View Slide

  6. View Slide

  7. View Slide

  8. View Slide

  9. View Slide

  10. View Slide

  11. View Slide

  12. View Slide

  13. What’s missing?

    View Slide

  14. ?

    View Slide

  15. OOP?
    Design patterns?
    SOLID?
    Functional Programming?
    DDD?
    7 ways to refactor fat models …
    What should we take
    into account?
    Well…

    View Slide

  16. 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

    View Slide

  17. 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

    View Slide

  18. 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

    View Slide

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

    View Slide

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

    View Slide