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