Boas praticas em_desenvolvimento_de_software

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

Embed Size (px)

description

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

Transcript of Boas praticas em_desenvolvimento_de_software

  • 1. Boas prticas em desenvolvimentode software Escrevendo um Cdigo Limpo por Ivan de Assis Leal Palestra

2.

    • Voc j perdeu horas tentando entender um cdigo escrito por outra pessoa?
    • Voc j presenciou o que deveria ser uma alteraounicae direta, mas que em vez disso teve de ser feita em vrios mdulos?

Voc se preocupa com seu o cdigo? 3. Se voc respondeu "Sim" as estas perguntas ento... .... voc j teve a m experincia de trabalhar em umcdigo ruim Voc se preocupa com o seu cdigo? 4. Voc se preocupa com o seu cdigo?

  • Mas hoje temos tantas ferramentas como IDE sofisticadas,Frameworkfantsticos e tanta tecnologia nova...

Porque se preocupar em como escrever um cdigo? Basicamente porque..... 5. Voc se preocupa com o seu cdigo?

  • Umcdigo malescrito faz com que...
    • Cada alterao em uma parte gera uma cascata de erros.
    • Cada nova alterao exige que o cdigo seja entendido.
    • O tempo de produtividade de uma equipe seja reduzido ao mximo.

6. Voc se preocupa com o seu cdigo?

  • Mas para voc ver realmente a importncia disto. Veja o que alguns "profissionais" da sua rea dizem sobre esta assunto....

Se voc quer ser um programador, entenda a importncia de escrever um bom cdigo. 7.

  • Robert C. Martin
  • Eu souumdistinto professor etitulardaFaculdade deEngenhariaPresidenteem Cincia da ComputaonaUniversidade Texas A &M; Projetei e implementou alinguagem C + +de programao.

Voc se preocupa com o seu cdigo? O que um bom cdigo para ele? "Deve ser elegante e eficiente....as dependncias mnimas para facilitar a manuteno, o tratamento de erro deve ser completo.....O cdigo limpo faz bem apenas uma coisa." 8.

  • Dave Thomas
  • DaveThomastemumavasta experinciana indstria de software, como engenheiro,consultor,arquitetoexecutivoseinvestidores. Ele foioprincipal arquitetovisionrioeparaa IBMVisualAgeSmalltalkeJavaeferramentas demquinasvirtuais, incluindo opopularopen-source, multi-linguagemIDEEclipse.org.

Voc se preocupa com o cdigo? O que ele diz sobre a importncia um bom cdigo? "Alm de seu criador, um desenvolvedor pode ler e melhorar um cdigo limpo...O cdigo deve ser inteligvel..." 9.

  • Ward Cunningham
  • Criador do conceito "WikiWiki", criado do Fit, co-criador da Programao Extrema (eXtreme Programming) . Lder da Smalltalk e da OO. Pai de todos aqueles que se importam com cdigo.

Voc se preocupa com o seu cdigo? O que ele diz sobre a importncia um bom cdigo? "Voc sabe que esta criando um cdigo limpo quando cada rotina que voc leia se mostra como o que voc esperava" 10.

  • Robert C. Martin
  • Robert C. Martin tem sido um software profissional desde 1970. Nos ltimos 35 anos,trabalhou em vrias capacidades em literalmente centenas de projetos de software.Ele autor de "marco" livros sobre Agile Programming, Extreme Programming, UML,Programao Orientada a Objetos e Programao C + +. Publicou dezenas deartigos em revistas comerciais diversos. Hoje, ele uma das maiores autoridades da indstria de software no desenvolvimento gil de software .

Voc se preocupa com o seu cdigo? O que ele diz sobre a importncia um bom cdigo? Bem, para Robert apenas cito que ele autor de um dos livros mais conhecidos sobre o assunto : Cdigo Limpo - Habilidades prticas do Agile Software. 11. Bom, acredito que depois desses depoimentos sobre profissionais com grande experincia sobre o assunto...

  • Voc deve estar mais interessado sobre a importncia de se preocupar com a escrita de seu cdigo..

Voc se preocupa com o seu cdigo? 12. Voc se preocupa com o seu cdigo? Como escrever um bom cdigo (Cdigo Limpo) ? Veja apenas 3 tcnicas a seguir.. 13. Voc se preocupa com o seu cdigo? 1. Nomes Significativos Utilizando nomesque tenham um significado. Muitos desenvolvedores acham desnecessrio pensar em nomes, adequados e significativos sejam para suas variveis , mtodos, classes, tabelas etc.. Porem a utilizao de nomes significativos para os membros de nosso sistema so de grande importncia para o entendimento do cdigo, principalmente em casos de manuteno. Veja um exemplo: 14. Voc se preocupa com o seu cdigo? double Mov = 70.00; double Desc = 8.00;double J = 5.00;double Tot = 0.0;DateTime DTPag = Convert.ToDateTime("15/12/2009"); Responda rpido, o que ser que armazenam as variveis abaixo: Ah! Com alguns minutos de seu tempo um pouco de esforo pelo menos algumas delas ficam fceis de ser entendidas. Mas esseesforono precisaria existir se elas tivessem esses nomes.... 15.

  • 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 cdigo? Acredito que agora ficou mais fcil saber o que cada varivel trata, por apenas utilizar Nomes Significativos Utilizando nomesque tenham um significado. 16. Voc se preocupa com o seu cdigo? 2. Nomes significativos Nomes Pronunciveis A utilizao de nomes que podem ser facilmente pronunciveis um regra bastante til principalmente ao trabalhar em equipe.Certamente precisamos em determinado ponto da codificao trocar idias com outros desenvolvedores. Imagine a conversa entre 2 desenvolvedores sobre um algoritmo que possua as 3 variveis abaixo. DateTime dtUltCompProd; DateTime dtLimPagImpSJr; decimal valMedCompUltSeisMs; 17.

  • Seria algo como:
  • Fulano como voc faz para pegar o valor dedt-Ult-Comp-Prde , voc por acaso usa adt-Lim-Pague-Impe-S-JotaRpara chegar nesse valor ?.
  • Outra coisa percebi tambem a varivelval-Mdi-Comp-Ult-Seis-Mso para que serve ela?

Voc se preocupa com o seu cdigo? 18.

  • Complicado no, poderamos tornar a conversa um pouco mais inteligente alterando os nomes das variveis.
  • DateTime dataDaUltimaCompraDoProduto;
  • DateTime dataLimiteDoPagamentoSemJuros;
  • decimal valorMedioDaCompraDosUltimoSeisMeses;
  • Agora essa conversa ficaria bem melhor, algo como....

Voc se preocupa com o seu cdigo? 19.

  • Fulano como voc faz para pegar o valor dadataDaUltimaCompraDoProduto , voc por acaso usa adataLimiteDePagamentoSemJurospara chegar nesse valor ?
  • Outra coisa percebi tambem a varivelvalorMedioDaCompraNosUltimoSeisMesespara que serve ela?
  • Bem mais fcil de entender. Por isso use Nomes significativos Nomes Pronunciveis

Voc se preocupa com o seu cdigo? 20.

  • Vamos a terceira tcnica.
  • 3.Nomes Significativos Uma palavra por conceito
  • 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 cdigo das classes a seguir.....

Voc se preocupa com o seu cdigo? 21.

  • public class Banco
  • { public bool Salvar() { // Cdigo para Persistir um Banco return false; } }

Voc se preocupa com o seu cdigo? p ublic class Endereco { public boolGravar(){ // Cdigo para Persistir um Endereco return false; } } No exemplo acima possumos 2 classes com mtodos em comum persistir um objeto no banco de dados mas observe que para cada classes foi utilizado um nome diferente para o mtodo equivalente. Assim ao definir uma palavra para um conceito abstrato, seapegue a esta palavra e utilize em todo o cdigo. 22.

  • Bem considerei apenas 3 tcnicas para tornar seus cdigo limpo e conseqentemente um melhor programador.....
  • Mas existem muitas outras tcnicas que voc pode aprender e colocar em prtica..
  • Sugiro que voc pesquisa mais sobre os assuntos a seguir....

Voc se preocupa com o seu cdigo? 23.

  • Pesquise sobre....
    • Como escreve comentriossignificativos.
    • Formatao de Cdigo.
    • No uso de notaes Hngara.
    • Refactoring
  • Para seu estudo como excelente programador sugiro os livros a seguir....

Voc se preocupa com o seu cdigo? 24. Voc se preocupa com o seu cdigo? 25. Voc se preocupa com o seu cdigo?

  • Se a grana est curta, voc estudar com o contedo dos sites abaixo:
    • http://www.refactoring.com/catalog/index.html
    • http://sourcemaking.com/
    • http://blog.setforcode.com/ :)

26. Obrigado!

  • Ivan de Assis Leal

http://twitter.com/lealivan http://www.linkedin.com/pub/ivan-assis-leal/20/716/17 http://blog.setforcode.com/ Esta apresentao teve como base o livro j cidtado, Cdigo Limpo - Habilidades prticas do Agile Software.