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

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

    refactor fat models … What should we take into account? Well…
  4. 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
  5. 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
  6. 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