Dividir para Conquistar! - DCI e Engines para construção de aplicações modulares com Rails
Nesta palestra será abordado o uso do framework Rails de forma não convencional. Visando ter uma melhor organização que privilegie a arquitetura de um sistema sobre as convenções do MVC do Rails
Years by Robert Martin MountainWest RubyConf 2013 Component-based Architectures in Ruby and Rails by Stephan Hagemann https://www.youtube.com/watch?v=-54SDanDC00
functionality to their host applications. ! A Rails application is actually just a "supercharged" engine, with the Rails::Application class inheriting a lot of its behavior from Rails::Engine. http://guides.rubyonrails.org/engines.html
Testes em isolamento • Isolamento de escopo • Bom ensaio de evolução para SOA • Complexidade inicial maior; • Mais complicado de testar no início; • Não é possível fazer deploy de engines separadamente, como serviços. CONTRAS
is." The data part of the DCI architecture is its (relatively) static data model with relations. The data design is usually coded up as conventional classes that represent the basic domain structure of the system. DATA http://en.wikipedia.org/wiki/Data,_context_and_interaction
its instance) whose code includes the Roles for a given algorithm, scenario, or use case, as well as the code to map these Roles into objects at run time and to enact the use case. CONTEXT http://en.wikipedia.org/wiki/Data,_context_and_interaction
does." The interaction is implemented as Roles which are played by objects at run time. These objects combine the state and methods of a data (domain) object with methods (but no state, as Roles are stateless) from one or more Roles. INTERACTION http://en.wikipedia.org/wiki/Data,_context_and_interaction
a vida, mas pode te conduzir para um miojão de primeira; • Tente privilegiar sua arquitetura e não o framework; • Engines pode te ajudar a desenvolver melhores arquiteturas; • Abra seus horizontes, não se limite ao MVC.