boas praticas em_desenvolvimento_de_software

Post on 11-Jun-2015

666 Views

Category:

Education

0 Downloads

Preview:

Click to see full reader

DESCRIPTION

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

TRANSCRIPT

Boas práticas em desenvolvimento de software

Escrevendo um Código Limpo

por Ivan de Assis Leal

Palestra

• 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?

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?

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...

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?

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....

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."

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..."

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"

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.

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..

Você se preocupa com o seu código?

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

Veja apenas 3 técnicas a seguir..

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:

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....

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.

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; 

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?

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?

“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?

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?

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.

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?

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?

Você se preocupa com o seu código?

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/ :)

Obrigado!

Ivan de Assis LealDúvidas ou críticas : ivanassisleal@gmail.com

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.

top related