Slide 1

Slide 1 text

De service objects a use cases Photo by Caleb Jones on Unsplash

Slide 2

Slide 2 text

De service objects a use cases Photo by Caleb Jones on Unsplash

Slide 3

Slide 3 text

De fat controllers a use cases Photo by Caleb Jones on Unsplash

Slide 4

Slide 4 text

@serradura [email protected]

Slide 5

Slide 5 text

Objetivo

Slide 6

Slide 6 text

Fat controllers Fat models + Skinny controllers Service Objects Interactors Domain Objects Use cases 2010 2012 - 2014

Slide 7

Slide 7 text

Fat controllers Fat models + Skinny controllers Service Objects Interactors 2010 2012 - 2014 2009 Domain Objects Use cases

Slide 8

Slide 8 text

Fat controllers Fat models + Skinny controllers Service Objects Interactors 2010 2012 - 2014 2011 2009 Domain Objects Use cases

Slide 9

Slide 9 text

Fat controllers Fat models + Skinny controllers Service Objects Interactors 2010 2012 - 2014 2011 2009 Domain Objects Use cases

Slide 10

Slide 10 text

Fat controllers Fat models + Skinny controllers Service Objects Interactors 2010 2012 - 2014 2011 2009 Domain Objects Use cases

Slide 11

Slide 11 text

Fat controllers Fat models + Skinny controllers Service Objects Interactors 2010 2012 - 2014 2011 2009 Domain Objects Use cases Request model é o input que acionará um caso de uso e que gerará um response model (o resultado) que determinará o output para o usuário.

Slide 12

Slide 12 text

Fat controllers Fat models + Skinny controllers Service Objects Interactors 2010 2012 - 2014 2011 2009 Domain Objects Use cases Request model é o input que acionará um caso de uso e que gerará um response model (o resultado) que determinará o output para o usuário.

Slide 13

Slide 13 text

Fat controllers Fat models + Skinny controllers Service Objects Interactors 2010 2012 - 2014 2011 2009 Domain Objects Use cases Request model é o input que acionará um caso de uso e que gerará um response model (o resultado) que determinará o output para o usuário.

Slide 14

Slide 14 text

Fat controllers Fat models + Skinny controllers Service Objects Interactors 2010 2012 - 2014 2011 2009 Domain Objects Use cases Request model é o input que acionará um caso de uso e que gerará um response model (o resultado) que determinará o output para o usuário.

Slide 15

Slide 15 text

Fat controllers Fat models + Skinny controllers Service Objects Interactors 2010 2012 - 2014 2011 2009 Domain Objects Use cases Request model é o input que acionará um caso de uso e que gerará um response model (o resultado) que determinará o output para o usuário.

Slide 16

Slide 16 text

Fat controllers Fat models + Skinny controllers Service Objects Interactors 2010 2012 - 2014 2011 2009 Domain Objects Use cases Request model é o input que acionará um caso de uso e que gerará um response model (o resultado) que determinará o output para o usuário.

Slide 17

Slide 17 text

Fat controllers Fat models + Skinny controllers Service Objects Interactors 2010 2012 - 2014 2011 2009 Domain Objects Use cases Request model é o input que acionará um caso de uso ....

Slide 18

Slide 18 text

Fat controllers Fat models + Skinny controllers Service Objects Interactors Domain Objects Use cases 2010 2012 - 2014

Slide 19

Slide 19 text

https://github.com/serradura/from-fat-controllers-to-use-cases

Slide 20

Slide 20 text

https://github.com/serradura/from-fat-controllers-to-use-cases

Slide 21

Slide 21 text

https://github.com/serradura/from-fat-controllers-to-use-cases

Slide 22

Slide 22 text

Fat controller Request Controller Model View Response https://github.com/serradura/from-fat-controllers-to-use-cases/commit/99c0e34a6f064305975184d0c2a06b65fd7f52a0

Slide 23

Slide 23 text

Fat model, skinny controller Controller Model View Request Response https://github.com/serradura/from-fat-controllers-to-use-cases/commit/10382990108f37017c1de9effe0184c2e0380dad

Slide 24

Slide 24 text

Concerns (Fat model, skinny controller) Controller Model View Request Response https://github.com/serradura/from-fat-controllers-to-use-cases/commit/55769be6dae4f2e4d312a8973622ad86babc54e3

Slide 25

Slide 25 text

Concerns (Fat model, skinny controller) Controller Model View Request Response https://github.com/serradura/from-fat-controllers-to-use-cases/commit/55769be6dae4f2e4d312a8973622ad86babc54e3

Slide 26

Slide 26 text

Service Objects Controller View Request Response https://github.com/serradura/from-fat-controllers-to-use-cases/commit/0789d32007311334c00d9aff311add0f7e5304fa Model Service Objects

Slide 27

Slide 27 text

Service Objects com herança (excesso) Controller View Request Response https://github.com/serradura/from-fat-controllers-to-use-cases/commit/97e8105fa464474b5dd590e067dc7ba388f3c5f8 https://github.com/serradura/from-fat-controllers-to-use-cases/commit/17a90c28ea14e0131e6477c016c500701492a247 Model Service Objects

Slide 28

Slide 28 text

Interactors Controller View Request Response https://github.com/serradura/from-fat-controllers-to-use-cases/commit/4cc47150115e8230da0daf76e96ef5ade7e02d0f Model Interactors & Organizers (Service Objects) .call result Contrato (padrão)

Slide 29

Slide 29 text

Interactors Controller View Request Response Model Interactors & Organizers (Service Objects) .call result Contrato (padrão) https://github.com/serradura/from-fat-controllers-to-use-cases/commit/4cc47150115e8230da0daf76e96ef5ade7e02d0f

Slide 30

Slide 30 text

Domain Objects Controller View Request Response https://github.com/serradura/from-fat-controllers-to-use-cases/commit/556a52d5acc233f3898cdf14f8862d847fe24d4f Domain objects Model

Slide 31

Slide 31 text

Use Cases Controller View Request Response Model Use case Domain Objects https://github.com/serradura/from-fat-controllers-to-use-cases/commit/07cb885c6f2fb43504a1f200a2fe76771882fb2f https://github.com/serradura/from-fat-controllers-to-use-cases/commit/e6827057e46436bc394a96613017e7a01204e3a6

Slide 32

Slide 32 text

Use Cases Controller View Request Response Model Use case Domain Objects https://github.com/serradura/from-fat-controllers-to-use-cases/commit/07cb885c6f2fb43504a1f200a2fe76771882fb2f https://github.com/serradura/from-fat-controllers-to-use-cases/commit/e6827057e46436bc394a96613017e7a01204e3a6

Slide 33

Slide 33 text

Demo Photo by Denis Pavlovic on Unsplash

Slide 34

Slide 34 text

Fat controllers Fat models + Skinny controllers Service Objects Interactors Domain Objects Use cases

Slide 35

Slide 35 text

Fat controllers Fat models + Skinny controllers Service Objects Interactors Domain Objects Use cases Melhor ou pior é relativo, mas a ideia é reduzir a métrica acima! https://www.osnews.com/story/19266/wtfsm/

Slide 36

Slide 36 text

https://martinfowler.com/articles/is-quality-worth-cost.html

Slide 37

Slide 37 text

Micro::Case momento jabá

Slide 38

Slide 38 text

https://github.com/serradura/u-case

Slide 39

Slide 39 text

https://github.com/serradura/u-case

Slide 40

Slide 40 text

Obrigado @serradura [email protected] ~14 horas de dedicação para preparar esse conteúdo. ;) https://speakerdeck.com/serradura