Slide 1

Slide 1 text

Princípios de SOLID & Clean Arch mariofelesdossantosjunior.github.io

Slide 2

Slide 2 text

Mario Feles dos Santos Junior Desenvolvedor Android Tribo B2B(Time mobile - APP-BLU) Slack BLU @mario

Slide 3

Slide 3 text

Por que é importante falar de Solid e Clean Arch? Fluxo comum de um software/produto: ● No começo tudo é lindo, tudo está indo muito bem; ● Tudo é novo, muito claro; ● As entregas estão rápidas; ● Turnover está baixo; ● Com o passar do tempos: ● vai desacelerando, desacelerando; ● A feature que demorava 1 sprint agora demora 1/2 mês; ● Turnover alto; ● Time crescendo ao mesmo tempo;

Slide 4

Slide 4 text

Como nós desenvolvedores podemos colaborar? Como continuar evoluindo o software? Como continuar adicionando novas features? ….

Slide 5

Slide 5 text

No content

Slide 6

Slide 6 text

Exemplos de aplicação do Solid!

Slide 7

Slide 7 text

Exemplos de aplicação do Solid!

Slide 8

Slide 8 text

Exemplos de aplicação do Solid!

Slide 9

Slide 9 text

Exemplos de aplicação do Solid!

Slide 10

Slide 10 text

Exemplos de aplicação do Solid!

Slide 11

Slide 11 text

Exemplos de aplicação do Solid!

Slide 12

Slide 12 text

Exemplos de aplicação do Solid!

Slide 13

Slide 13 text

Prazer Robert C. Martin (Uncle Bob)

Slide 14

Slide 14 text

Reflita! “Sempre fomos guiados a desenvolver softwares orientados a banco de dados, onde na verdade, você precisa olhar para a tecnologia banco de dados como um detalhe na sua aplicação, diferente do modelo de dados, esse sim tem muita relevância e peso na sua aplicação.” Rodrigo Branas, Live Clean Architecture

Slide 15

Slide 15 text

Reflita! “A qualidade de software pode ser medida pelo esforço para entregar uma nova funcionalidade. Se esse esforço é baixo e permanece baixo durante a vida útil do sistema, o design é bom. Se esse esforço aumenta a cada nova versão, o design é ruim.” Book Clean Arch, Robert C. Martin

Slide 16

Slide 16 text

Principais objetivos do Clean Arch Um dos principais objetivos do Clean Arch é fornecer aos desenvolvedores uma maneira de organizar o código de forma que encapsule a lógica de negócios, mas mantenha-o separado do mecanismo de entrega.

Slide 17

Slide 17 text

Diagrama Clean Arch!

Slide 18

Slide 18 text

No content

Slide 19

Slide 19 text

Como estamos aplicando no App Blu!

Slide 20

Slide 20 text

No content

Slide 21

Slide 21 text

● Baixo acoplamento ● Reutilização de código ● Baixa dificuldade de entendimento das regras e suas responsabilidades ● Baixa complexibilidade dos testes ● Possibilidade de expansão de features ● Escalabilidade de times ● Possibilidade de implementar camadas fakes/mocks Ganhos com Solid e o Clean Arch

Slide 22

Slide 22 text

Slack BLU @mario mariofelesdossantosjunior.github.io Dúvidas?