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? Mas hoje temos tantas ferramentas como IDE sofisticadas, Framework fantásticos e tanta tecnologia nova... Porque se preocupar em como escrever um código? Basicamente porque.....
Você se preocupa com o seu código? 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? Mas para você ver realmente a importância disto. Veja o que alguns "profissionais" da sua área dizem sobre esta assunto.... Se você quer ser um programador, entenda a importância de escrever um bom código.
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 Thomas 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.  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ê 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?
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á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; 
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 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 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? 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.
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 Leal Dú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.

Boas praticas em_desenvolvimento_de_software

  • 1.
    Boas práticas  emdesenvolvimento de software Escrevendo um Código Limpo por Ivan de Assis Leal Palestra
  • 2.
    Você já perdeuhoras 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?
  • 3.
    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?
  • 4.
    Você se preocupacom o seu código? Mas hoje temos tantas ferramentas como IDE sofisticadas, Framework fantásticos e tanta tecnologia nova... Porque se preocupar em como escrever um código? Basicamente porque.....
  • 5.
    Você se preocupacom o seu código? 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.
  • 6.
    Você se preocupacom o seu código? Mas para você ver realmente a importância disto. Veja o que alguns "profissionais" da sua área dizem sobre esta assunto.... Se você quer ser um programador, entenda a importância de escrever um bom código.
  • 7.
    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."
  • 8.
    Dave Thomas Dave Thomas tem uma vastaexperiê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..."
  • 9.
    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"
  • 10.
    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.
  • 11.
    Bom, acredito quedepois desses depoimentos sobre profissionais com grande experiência sobre o assunto... 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?
  • 12.
    Você se preocupacom o seu código? Como escrever um bom código (Código Limpo) ? Veja apenas 3 técnicas a seguir..
  • 13.
    Você se preocupacom 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.
    Você se preocupacom 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....
  • 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 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.
    Você se preocupacom 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.
    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?
  • 18.
    Complicado não, poderíamostornar 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?
  • 19.
    “ Fulano comovocê 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?
  • 20.
    Vamos a terceiratécnica. 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 código das classes a seguir..... Você se preocupa com o seu código?
  • 21.
    public class Banco{ public bool Salvar() { // Código para Persistir um Banco return false; } } 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.
    Bem considerei apenas3 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?
  • 23.
    Pesquise sobre.... Comoescreve 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?
  • 24.
    Você se preocupacom o seu código?
  • 25.
    Você se preocupacom 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/  :)
  • 26.
    Obrigado! Ivan deAssis Leal Dú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.