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

What’s missing?

What’s missing?


Ivan Nemytchenko

April 06, 2019

More Decks by Ivan Nemytchenko

Other Decks in Programming


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

  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
  3. railshurts.com/lifecycle

  4. railshurts.com

  5. None
  6. None
  7. None
  8. None
  9. None
  10. None
  11. None
  12. None
  13. What’s missing?

  14. ?

  15. OOP? Design patterns? SOLID? Functional Programming? DDD? 7 ways to

    refactor fat models … What should we take into account? Well…
  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
  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
  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
  19. inem@bk.ru @inem railshurts.com/rails-principles

  20. April 14 20:00 (Msk/Minsk time) railshurts.com/webinar How to stop worrying

    about ActiveRecord and love Rails again