21

Boas Práticas de Desenvolvimento em Linguagem Orientada a Objeto

Embed Size (px)

DESCRIPTION

The Best Practices - OOP

Citation preview

Page 1: Boas Práticas de Desenvolvimento em Linguagem Orientada a Objeto
Page 2: Boas Práticas de Desenvolvimento em Linguagem Orientada a Objeto

Boas práticas de Programação (OOP)

Alexsandro Nunes LacerdaMCT | MCPD | MCTS | MCP Blog: http://www.alexsandronunes.com.br Twitter: @AlexsandroNL

01/21

Page 3: Boas Práticas de Desenvolvimento em Linguagem Orientada a Objeto

Alguma vez um código ruim ja lhe atrasou consideravelmente?

Código ruim

02/21

Page 4: Boas Práticas de Desenvolvimento em Linguagem Orientada a Objeto
Page 5: Boas Práticas de Desenvolvimento em Linguagem Orientada a Objeto

Senta que la vem a história

04/21

Page 6: Boas Práticas de Desenvolvimento em Linguagem Orientada a Objeto

Boas práticas de programação

• Nomes significativos- Use nomes que revelem o seu propósito

Prática ruim:int d; // tempo decorrido em dias Boa prática:int diasDecorrido;

05/21

Page 7: Boas Práticas de Desenvolvimento em Linguagem Orientada a Objeto

Boas práticas de programação

• Nomes significativos- Use nomes pronunciaveisPrática ruim: class DtaRcrd102{ private DateTime genmdyhms;... }

Boa prática:class Customer{ private DateTime generationDateTime;... }

06/21

Page 8: Boas Práticas de Desenvolvimento em Linguagem Orientada a Objeto

Boas práticas de programação

• Nomes significativos- Use nomes passiveis de buscaPrática ruim: for (int j=0; j<34; j++) {s += (t[j] * 4) / 5;}

Boa prática:for (int j=0; j < NUMBER_OF_TASKS; j++) {int realTaskDays = taskEstimative[j] * realDaysPerIdealDay;int realTaskWeeks = (realTaskDays / WORK_DAYS_PER_WEEK);sum += realTaskWeeks}

07/21

Page 9: Boas Práticas de Desenvolvimento em Linguagem Orientada a Objeto

Boas práticas de programação

• Nomes significativos- Caso o nome possa gerar confusão,

use prefixo.Prática ruim: ...public string state { get; set;}...

Boa prática:...public string addrState { get; set;}...

08/21

Page 10: Boas Práticas de Desenvolvimento em Linguagem Orientada a Objeto

Boas práticas de programação• Classes e objetos devem ter nomes com

substantivo(s)

Prática ruim: class vendedores{ ... }

Boa prática:class Cliente { ... }class Produto { ... }

09/21

Page 11: Boas Práticas de Desenvolvimento em Linguagem Orientada a Objeto

Boas práticas de programação

• Métodos devem ter verbo

Boa prática:

string name = employee.getName();customer.setName(“Alexsandro”);customer.saveChange(); if (paycheck.isPosted())...

- É bastante recomendado o uso dos prefixos get, set ou is.- Padronize palavras por conceito. (ex. pegar, recuperar, obter)

10/21

Page 12: Boas Práticas de Desenvolvimento em Linguagem Orientada a Objeto

Boas práticas de programação• Principio da Responsabilidade Única (SRP)

- Classes e Métodos devem ter apenas uma função

11/21

Page 13: Boas Práticas de Desenvolvimento em Linguagem Orientada a Objeto

Boas práticas de programação• Principio da Responsabilidade Única (SRP)

12/21

Page 14: Boas Práticas de Desenvolvimento em Linguagem Orientada a Objeto

Boas práticas de programação

• Principio Aberto-Fechado(OCP)“Entidades de software (classes, módulos, funções, etc) devem ser abertas para extensão mas fechadas para modificações” – Bertrand Meyer (1988)

13/21

Page 15: Boas Práticas de Desenvolvimento em Linguagem Orientada a Objeto

Boas práticas de programação• Números de parâmetros de um método

- A quantidade ideal deveria ser zero.- Depois vem um (mônade).- Seguido de dois (díade).- Sempre que possível evite três (tríade).- Mais de três (políade) devem ter um motivo muito

especial, mesmo assim não deveriam ser usados.

- Quanto mais parâmetros mais difícil de entender.- Parâmetros lógicos além de feios já diz que o método faz

mais coisa que deveria fazer.14/217

Page 16: Boas Práticas de Desenvolvimento em Linguagem Orientada a Objeto

Boas práticas de programação• Comentários- Evite comentários, se podemos expressar utilizando nomes

realmente significativos não precisaríamos de comentários.- Se esta precisando utilizar muitos comentários é porque o

código esta ruim- Use os comentários para alertar ou deixar um lembrete de algo

que precisará ser feito no futuro e não para explicar o código.

15/213

Page 17: Boas Práticas de Desenvolvimento em Linguagem Orientada a Objeto

Boas práticas de programação• Organização do código

- Pensamentos devem ser separados por uma linha em branco.- Número de linhas de um método ? O máximo que couber na tela,

mas o recomendado é no máximo 20 linhas.

- A duplicação de código pode ser a raiz de todo o mal no software.

- Variáveis dentro de métodos devem ser criadas bem próximas de onde irão ser usadas.

- Variáveis de classe devem ser escritas no inicio da classe.- Se um método chama outro, estes devem ficar verticalmente

próximos.

16/216

Page 18: Boas Práticas de Desenvolvimento em Linguagem Orientada a Objeto

Boas práticas de programação• Injeção de Dependência (DI)- É utilizado quando é necessário manter baixo o nível de

acoplamento entre diferentes módulos de um sistema.

- No DIP(Dependency Injection Pattern) as dependências entre os módulos não são definidas programaticamente, mas sim pela configuração de uma infraestrutura de software (container) que é responsável por "injetar" em cada componente suas dependências declaradas.

18/212

Page 19: Boas Práticas de Desenvolvimento em Linguagem Orientada a Objeto

Demo

19/21

Page 20: Boas Práticas de Desenvolvimento em Linguagem Orientada a Objeto

21/21

Boas práticas de Programação (OOP)

Alexsandro Nunes LacerdaMCT | MCPD | MCTS | MCP Blog: http://www.alexsandronunes.com.br Twitter: @AlexsandroNL

Page 21: Boas Práticas de Desenvolvimento em Linguagem Orientada a Objeto