Boas praticas em_desenvolvimento_de_software

850 visualizações

Publicada em

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

Publicada em: Educação
0 comentários
1 gostou
Estatísticas
Notas
  • Seja o primeiro a comentar

Sem downloads
Visualizações
Visualizações totais
850
No SlideShare
0
A partir de incorporações
0
Número de incorporações
3
Ações
Compartilhamentos
0
Downloads
22
Comentários
0
Gostaram
1
Incorporações 0
Nenhuma incorporação

Nenhuma nota no slide

Boas praticas em_desenvolvimento_de_software

  1. 1. Boas práticas  em desenvolvimento de software Escrevendo um Código Limpo por Ivan de Assis Leal Palestra
  2. 2. <ul><ul><li>Você já perdeu horas tentando entender um código escrito por outra pessoa? </li></ul></ul><ul><ul><li>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? </li></ul></ul>Você se preocupa com seu o código?
  3. 3. Se você respondeu &quot;Sim&quot; 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?
  4. 4. Você se preocupa com o seu código? <ul><li>Mas hoje temos tantas ferramentas como IDE sofisticadas, Framework fantásticos e tanta tecnologia nova... </li></ul>Porque se preocupar em como escrever um código? Basicamente porque.....
  5. 5. Você se preocupa com o seu código? <ul><li>Um código mal escrito faz com que... </li></ul><ul><ul><li>Cada alteração em uma parte gera uma cascata de erros. </li></ul></ul><ul><ul><li>Cada nova alteração exige que o código seja entendido. </li></ul></ul><ul><ul><li>O tempo de produtividade de uma equipe seja reduzido ao máximo. </li></ul></ul>
  6. 6. Você se preocupa com o seu código? <ul><li>Mas para você ver realmente a importância disto. Veja o que alguns &quot;profissionais&quot; da sua área dizem sobre esta assunto.... </li></ul>Se você quer ser um programador, entenda a importância de escrever um bom código.
  7. 7. <ul><li>Robert C. Martin   </li></ul><ul><li>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. </li></ul>Você se preocupa com o seu código? O que é um bom código para ele? &quot;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.&quot;
  8. 8. <ul><li>Dave Thomas </li></ul><ul><li>Dave 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.  </li></ul>Você se preocupa com  o código? O que ele diz sobre a importância um bom código? &quot;Além de seu criador, um desenvolvedor pode ler e melhorar um código limpo...O código deve ser inteligível...&quot;
  9. 9. <ul><li>Ward Cunningham </li></ul><ul><li>  Criador do conceito &quot;WikiWiki&quot;, 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. </li></ul>Você se preocupa com o seu código? O que ele diz sobre a importância um bom código? &quot;Você sabe que esta criando um código limpo quando cada rotina que você leia se mostra como o que você esperava&quot;
  10. 10. <ul><li>Robert C. Martin   </li></ul><ul><li>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 &quot;marco&quot; 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 . </li></ul>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.
  11. 11. Bom, acredito que depois desses depoimentos sobre profissionais com grande experiência sobre o assunto... <ul><li>Você deve estar mais interessado sobre a importância de se preocupar com a escrita de seu código.. </li></ul>Você se preocupa com o seu código?
  12. 12. Você se preocupa com o seu código? Como escrever um bom código (Código Limpo) ? Veja apenas 3 técnicas a seguir..
  13. 13. 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:
  14. 14. 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(&quot;15/12/2009&quot;);               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....
  15. 15. <ul><li>double valorMovimento =  70.00; </li></ul><ul><li>double valorDesconto = 8.00; </li></ul><ul><li>double porcentagemJuro = 5.00; </li></ul><ul><li>double valorTotalMovimento = 0.0;                             </li></ul><ul><li>DateTime dataPagamentoMovimento = Convert.ToDateTime(&quot;15/12/2009&quot;); </li></ul><ul><li>bool isPagementoAtrasado = false; </li></ul><ul><li>string mensagem = &quot;&quot;; </li></ul>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.
  16. 16. Você se preocupa com o seu código? 2. Nomes significativos – Nomes Pronunciáveis A 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; 
  17. 17. <ul><li>Seria algo como: </li></ul><ul><li>“ 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 ?.  </li></ul><ul><li>Outra coisa percebi tambem a variável val-Médi-Compê-Ultê-Seis-Ms o para que serve ela?” </li></ul>Você se preocupa com o seu código?
  18. 18. <ul><li>Complicado não, poderíamos tornar a conversa um pouco mais inteligente alterando os nomes das variáveis. </li></ul><ul><li>DateTime dataDaUltimaCompraDoProduto; </li></ul><ul><li>DateTime dataLimiteDoPagamentoSemJuros; </li></ul><ul><li>decimal valorMedioDaCompraDosUltimoSeisMeses; </li></ul><ul><li>Agora essa conversa ficaria bem melhor, algo como.... </li></ul>Você se preocupa com o seu código?
  19. 19. <ul><li>“ Fulano como você faz para pegar o valor da dataDaUltimaCompraDoProduto , você por acaso usa a dataLimiteDePagamentoSemJuros para chegar nesse valor ? </li></ul><ul><li>Outra coisa percebi tambem a variável valorMedioDaCompraNosUltimoSeisMeses para que serve ela?” </li></ul><ul><li>Bem mais fácil de entender. Por isso use  Nomes significativos – Nomes Pronunciáveis </li></ul>Você se preocupa com o seu código?
  20. 20. <ul><li>Vamos a terceira técnica. </li></ul><ul><li>3. Nomes Significativos – Uma palavra por conceito </li></ul><ul><li>Procure 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..... </li></ul>Você se preocupa com o seu código?
  21. 21. <ul><li>public class Banco </li></ul><ul><li>{ public bool Salvar() { // Código para Persistir um Banco return false; } } </li></ul>Você se preocupa com o seu código? p ublic 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.
  22. 22. <ul><li>Bem considerei apenas 3 técnicas para tornar seus código limpo e  conseqüentemente  um melhor programador..... </li></ul><ul><li>Mas existem muitas outras técnicas que você pode aprender e colocar em prática..  </li></ul><ul><li>Sugiro que você pesquisa mais sobre os assuntos a seguir.... </li></ul>Você se preocupa com o seu código?
  23. 23. <ul><li>Pesquise sobre.... </li></ul><ul><ul><li>Como escreve comentários significativos. </li></ul></ul><ul><ul><li>Formatação de Código. </li></ul></ul><ul><ul><li>Não uso de notações Húngara. </li></ul></ul><ul><ul><li>Refactoring  </li></ul></ul><ul><li>Para seu estudo como excelente programador sugiro os livros a seguir.... </li></ul>Você se preocupa com o seu código?
  24. 24. Você se preocupa com o seu código?
  25. 25. Você se preocupa com o seu código? <ul><li>Se a grana está curta, você estudar com o conteúdo dos sites abaixo: </li></ul><ul><ul><li>http://www.refactoring.com/catalog/index.html </li></ul></ul><ul><ul><li>http://sourcemaking.com/ </li></ul></ul><ul><ul><li>http://blog.setforcode.com/  :) </li></ul></ul>
  26. 26. Obrigado! <ul><li>Ivan de Assis Leal </li></ul><ul><li>Dúvidas ou críticas : ivanassisleal@gmail.com </li></ul>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.

×