Código limpo: Limites

8

Click here to load reader

Transcript of Código limpo: Limites

Page 1: Código limpo: Limites

LIMITES

Luis Augusto S. Souza / Gabriel Vieira / Tiago Borges / Cézar Augusto Ferreira

por Jammes Grenning

Page 2: Código limpo: Limites

Contexto

Raramente controlamos todos os códigos de nosso sistema:

- compramos pacotes de outros fabricantes;- usamos códigos livres;- ou dependemos de equipes de nossa própria empresa.

Page 3: Código limpo: Limites

O uso de códigos de terceiros

Fornecedor de Interface X seu Usuário:- Fornecedor:

- visa uma maior aplicabilidade da interface para trabalho em diferentes ambientes;- visa atender a um público maior.

- Usuário:- deseja uma interface que atenda suas próprias necessidades.

Page 4: Código limpo: Limites

O uso de códigos de terceiros

Exemplo:- java.util.Map

- os Maps tem uma interface bastante ampla com diversas capacidades.

- Vantagem:- flexibilidade.

- Desvantagem:- o aplicativo pode construir um Map e passá-lo adiante (clear()).

Page 5: Código limpo: Limites

O uso de códigos de terceiros

- A interface no limite (Map) está oculta;- É possível alterá-lo causando pouco impacto no resto do aplicativo;- A classe pode forçar regras de modelo de negócios.

Page 6: Código limpo: Limites

O uso de código que ainda não existe● Há um outro tipo de limite, um que separa o

conhecido do desconhecido.● Existe lugares no código onde nosso conhecimento

parece sumir.● Passos:

○ Definir as fronteiras do conhecido e do desconhecido;

○ Definir a interface limite;

○ Defina um fake para simular as funcionalidades e interações entre as interfaces;

○ Quando a parte desconhecida se tornar conhecida utilize o padrão Adapter para conectar serviços dependentes da interface limite com a API, outrora desconhecida, desenvolvida.

Page 7: Código limpo: Limites

Limites Limpos

● Bons projetos de software acomodam modificações sem muito investimento ou trabalho.○ O uso de códigos fora de controle implica em

uma atenção especial ao investimento para garantir que mudanças futuras não sejam muito onerosas.

● O código nos limites precisa: ○ de uma divisão clara○ de testes que definem o que se deve esperar.

● É importante evitar que grande parte do código "enchergue" a particularidade de terceiros.

Page 8: Código limpo: Limites

Limites Limpos

● Pense que é melhor você depender de algo que você controla do que algo que possa controlar você.

● Para lidar com os limites de código: ○ podemos empacota-los ○ podemos converter a interface perfeita na que

nos for fornecida.

● Vale lembrar que:○ nosso código se comunica melhor conosco○ possui poucos pontos para serem alterados

quando um código externo sofre alteração.