Boas praticas em_desenvolvimento_de_software

26
Boas práticas em desenvolvimento de software Escrevendo um Código Limpo por Ivan de Assis Leal Palestra

description

Apresentação sobre importância de um código bem escrito

Transcript of Boas praticas em_desenvolvimento_de_software

Page 1: Boas praticas em_desenvolvimento_de_software

Boas práticas em desenvolvimento de software

Escrevendo um Código Limpo

por Ivan de Assis Leal

Palestra

Page 2: Boas praticas em_desenvolvimento_de_software

• Você já perdeu horas tentando entender um código escrito por outra pessoa?

• Você já presenciou o que deveria ser uma alteração unica e direta, mas que em vez disso teve de ser feita em vários módulos?

Você se preocupa com seu o código?

Page 3: Boas praticas em_desenvolvimento_de_software

Se você respondeu "Sim" as estas perguntas então....... você já teve a má experiência de

trabalhar em um código ruim

Você se preocupa com o seu código?

Page 4: Boas praticas em_desenvolvimento_de_software

Você se preocupa com o seu código?

Porque se preocupar em como escrever um código?

Basicamente porque.....

Mas hoje temos tantas ferramentas como IDE sofisticadas, Framework fantásticos e

tanta tecnologia nova...

Page 5: Boas praticas em_desenvolvimento_de_software

Um código mal escrito faz com que...• Cada alteração em uma parte gera uma

cascata de erros.• Cada nova alteração exige que o código

seja entendido.• O tempo de produtividade de uma equipe

seja reduzido ao máximo.

Você se preocupa com o seu código?

Page 6: Boas praticas em_desenvolvimento_de_software

Você se preocupa com o seu código?

Se você quer ser um programador, entenda a importância de escrever

um bom código.

Mas para você ver realmente a importância disto. Veja o que alguns "profissionais" da

sua área dizem sobre esta assunto....

Page 7: Boas praticas em_desenvolvimento_de_software

Robert C. Martin 

Eu sou um distinto professor e titular da Faculdade de Engenharia Presidente em Ciência da Computação na Universidade Texas A & M;Projetei e implementou a linguagem C + + de programação.

Você se preocupa com o seu código?

O que é um bom código para ele?"Deve ser elegante e eficiente....as dependências mínimas para facilitar a manutenção, o tratamento de erro deve ser completo.....O código limpo faz bem apenas uma coisa."

Page 8: Boas praticas em_desenvolvimento_de_software

Dave ThomasDave Thomas tem uma vasta experiência na indústria de software, como engenheiro,consultor, arquiteto executivos e investidores. Ele foi o principal arquiteto visionário e para a  IBM VisualAgeSmalltalk e Java e ferramentas de máquinas virtuais, incluindo o popular open-source, multi-linguagem IDE Eclipse.org. 

Você se preocupa com  o código?

O que ele diz sobre a importância um bom código?"Além de seu criador, um desenvolvedor pode ler e melhorar um código limpo...O código deve ser inteligível..."

Page 9: Boas praticas em_desenvolvimento_de_software

Ward Cunningham Criador do conceito "WikiWiki", criado do Fit, co-criador da Programação Extrema (eXtreme Programming) . Líder da Smalltalk e da OO. Pai de todos aqueles que se importam com código.

Você se preocupa com o seu código?

O que ele diz sobre a importância um bom código?"Você sabe que esta criando um código limpo quando cada rotina que você leia se mostra como o que você esperava"

Page 10: Boas praticas em_desenvolvimento_de_software

Robert C. Martin 

Robert C. Martin tem sido um software profissional desde 1970. Nos últimos 35 anos,trabalhou em várias capacidades em literalmente centenas de projetos de software.Ele é autor de "marco" livros sobre Agile Programming, Extreme Programming, UML,Programação Orientada a Objetos e Programação C + +.  Publicou dezenas deartigos em revistas comerciais diversos. Hoje, ele é uma das maiores autoridades da indústria de software no desenvolvimento ágil de software .

Você se preocupa com o seu código?

O que ele diz sobre a importância um bom código?Bem, para Robert apenas cito que ele é autor de um dos livros mais conhecidos sobre o assunto : Código Limpo - Habilidades práticas do Agile Software.

Page 11: Boas praticas em_desenvolvimento_de_software

Bom, acredito que depois desses depoimentos sobre profissionais com grande

experiência sobre o assunto...

Você se preocupa com o seu código?

Você deve estar mais interessado sobre a importância de se preocupar com a escrita

de seu código..

Page 12: Boas praticas em_desenvolvimento_de_software

Você se preocupa com o seu código?

Como escrever um bom código (Código Limpo) ?

Veja apenas 3 técnicas a seguir..

Page 13: Boas praticas em_desenvolvimento_de_software

Você se preocupa com o seu código?

1. Nomes Significativos – Utilizando nomes que tenham um significado.

Muitos desenvolvedores acham desnecessário pensar em nomes, adequados e significativos sejam para suas variáveis , métodos, classes, tabelas etc..Porem a utilização de nomes significativos para os membros de nosso sistema são de grande importância para o entendimento do código, principalmente em casos de manutenção.

Veja um exemplo:

Page 14: Boas praticas em_desenvolvimento_de_software

Você se preocupa com o seu código?

double Mov = 70.00;double Desc = 8.00; double J = 5.00; double Tot = 0.0; DateTime DTPag = Convert.ToDateTime("15/12/2009");            

Responda rápido, o que será que armazenam as variáveis abaixo:

Ah! Com alguns minutos de seu tempo é um pouco de esforço pelo menos algumas delas ficam fáceis de ser entendidas. 

Mas esse esforço não precisaria existir se elas tivessem esses nomes....

Page 15: Boas praticas em_desenvolvimento_de_software

double valorMovimento =  70.00;double valorDesconto = 8.00;double porcentagemJuro = 5.00;double valorTotalMovimento = 0.0;                            DateTime dataPagamentoMovimento = Convert.ToDateTime("15/12/2009");bool isPagementoAtrasado = false;string mensagem = "";

Você se preocupa com o seu código?

Acredito que agora ficou mais fácil saber o que cada variável trata, por apenas utilizar Nomes Significativos – Utilizando nomes que tenham um significado.

Page 16: Boas praticas em_desenvolvimento_de_software

Você se preocupa com o seu código?

2. Nomes significativos – Nomes PronunciáveisA utilização de nomes que podem ser facilmente pronunciáveis é um regra bastante útil principalmente ao trabalhar em equipe. Certamente precisamos em determinado ponto da codificação trocar idéias com outros desenvolvedores. Imagine a conversa entre 2 desenvolvedores sobre um algoritmo que possua as 3 variáveis abaixo.

DateTime dtUltCompProd;DateTime dtLimPagImpSJr;decimal valMedCompUltSeisMs; 

Page 17: Boas praticas em_desenvolvimento_de_software

Seria algo como:

“Fulano como você faz para pegar o valor de dêtê-Ultê-Compê-Próde, você por acaso usa a dêtê-Lim-Pague-Impe-S-JotaR para chegar nesse valor ?. 

Outra coisa percebi tambem a variável val-Médi-Compê-Ultê-Seis-Ms o para que serve ela?”

Você se preocupa com o seu código?

Page 18: Boas praticas em_desenvolvimento_de_software

Complicado não, poderíamos tornar a conversa um pouco mais inteligente alterando os nomes das variáveis.

DateTime dataDaUltimaCompraDoProduto;DateTime dataLimiteDoPagamentoSemJuros;decimal valorMedioDaCompraDosUltimoSeisMeses;

Agora essa conversa ficaria bem melhor, algo como....

Você se preocupa com o seu código?

Page 19: Boas praticas em_desenvolvimento_de_software

“Fulano como você faz para pegar o valor da dataDaUltimaCompraDoProduto, você por acaso usa a dataLimiteDePagamentoSemJuros para chegar nesse valor ?

Outra coisa percebi tambem a variável valorMedioDaCompraNosUltimoSeisMeses para que serve ela?”

Bem mais fácil de entender. Por isso use Nomes significativos – Nomes Pronunciáveis

Você se preocupa com o seu código?

Page 20: Boas praticas em_desenvolvimento_de_software

Vamos a terceira técnica.

3. Nomes Significativos – Uma palavra por conceitoProcure utilizar a regra de uma “palavra por conceito” e se apegue a essa palavra, evite usar palavras diferentes para o mesmo conceito como pegar,recuperar e obter. Por exemplo veja o código das classes a seguir.....

Você se preocupa com o seu código?

Page 21: Boas praticas em_desenvolvimento_de_software

public class Banco{ public bool Salvar() { // Código para Persistir um Banco return false; } }

Você se preocupa com o seu código?

public class Endereco { public bool Gravar() { // Código para Persistir um Endereco return false; } }

No exemplo acima possuímos 2 classes com métodos em comum – persistir um objeto no banco de dados – mas observe que para cada classes foi utilizado um nome diferente para o método equivalente.Assim ao definir uma palavra para um conceito abstrato, se apegue a esta palavra e utilize em todo o código.

Page 22: Boas praticas em_desenvolvimento_de_software

Bem considerei apenas 3 técnicas para tornar seus código limpo e conseqüentemente um

melhor programador.....

Mas existem muitas outras técnicas que você pode aprender e colocar em prática.. 

Sugiro que você pesquisa mais sobre os assuntos a seguir....

Você se preocupa com o seu código?

Page 23: Boas praticas em_desenvolvimento_de_software

Pesquise sobre....

• Como escreve comentários significativos.• Formatação de Código.• Não uso de notações Húngara.• Refactoring 

Para seu estudo como excelente programador sugiro os livros a seguir....

Você se preocupa com o seu código?

Page 24: Boas praticas em_desenvolvimento_de_software

Você se preocupa com o seu código?

Page 25: Boas praticas em_desenvolvimento_de_software

Você se preocupa com o seu código?

Se a grana está curta, você estudar com o conteúdo dos sites abaixo:

• http://www.refactoring.com/catalog/index.html• http://sourcemaking.com/• http://blog.setforcode.com/ :)

Page 26: Boas praticas em_desenvolvimento_de_software

Obrigado!

Ivan de Assis LealDúvidas ou críticas : [email protected]

http://twitter.com/lealivan

http://www.linkedin.com/pub/ivan-assis-leal/20/716/17

http://blog.setforcode.com/

Esta apresentação teve como base o livro já cidtado, Código Limpo - Habilidades práticas do Agile Software.