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

/MVCs?/ - The Missing Layer

/MVCs?/ - The Missing Layer

Guilherme Carvalho

July 06, 2013
Tweet

Other Decks in Programming

Transcript

  1. Jamis Buck (37 Signals) Be aggressive! Try to keep your

    controller actions and views as slim as possible. http://weblog.jamisbuck.org/2006/10/18/skinny-controller-fat-model segunda-feira, 8 de julho de 13
  2. Jamis Buck (37 Signals) However, we can do better. There’s

    still a lot of noise in the view, mostly related to conditions and computations on the model objects. Let’s pull some of that into the model: Be aggressive! Try to keep your controller actions and views as slim as possible. http://weblog.jamisbuck.org/2006/10/18/skinny-controller-fat-model segunda-feira, 8 de julho de 13
  3. Dilemas Controladores Magros Modelos Gordos God Models 9 SRP Onde

    colocar a lógica? segunda-feira, 8 de julho de 13
  4. Lógica! •Três tipos, segundo Evans: •Lógica de aplicação •Lógica de

    domínio •Lógica de infraestrutura segunda-feira, 8 de julho de 13
  5. Dilemas Se modelos também devem ser magros, para onde vai

    a lógica? Como resolvemos? segunda-feira, 8 de julho de 13
  6. Dilemas Se modelos também devem ser magros, para onde vai

    a lógica? Como resolvemos? SENTA A PEAA segunda-feira, 8 de julho de 13
  7. PEAA •Quatro padrões para resolver o dilema: •Transaction Script •Domain

    Model •Table Module •Service Layer segunda-feira, 8 de julho de 13
  8. Service Layer Definem fronteiras com ações permitidas no sistema Várias

    interpretações Problemas? segunda-feira, 8 de julho de 13
  9. Domain Model + Service Layer = <3 <3 <3 <3

    <3 segunda-feira, 8 de julho de 13
  10. Services •Um tipo de service para cada lógica! •Application Services

    •Infrastructure Services •Domain Services segunda-feira, 8 de julho de 13
  11. Domain services Caso de uso que envolve múltiplos modelos CRUD

    NÃO! Problemas? segunda-feira, 8 de julho de 13