SlideShare uma empresa Scribd logo
Dicas de codificação
                  Parte I


Wende Mendes Higino

email: wende.mendes@bluesoft.com.br
Objetivo

Dar dicas de como escrever um
      código maravilhoso
Livro
Código de fácil leitura
Escrever um código com
 qualidade é uma arte
Menos é mais
Esforce -se para acrescentar
 métodos e deletar código
Pense antes de codificar
O que um design com qualidade?
Sempre ter a opção de
 reaproveitar código
BluesoftELFunctions
public static String concat(final Object str1, final Object str2) {
    return String.valueOf(str1) + String.valueOf(str2);
}

public static Time intToTime(final Integer time) {
    return DataSistema.intToTime(time);
}

public static String toString(final Object object) {
    return String.valueOf(object);
}

public static Object coalesce(final Object s1, final Object s2) {
    return s1 == null || String.valueOf(s1).equals("null") ? s2 : s1;
}

public static boolean contains(final Collection<?> collection, final Object o) {
    return collection.contains(o);
}

public static Integer getSize(final Collection<? extends Object> collection) {
    Integer size = 0;
    if (!CollectionUtil.isEmpty(collection)) {
         size = collection.size();
    }
    return size;
}
public static String getCompetencia(final Integer anoMes) {
    return String.valueOf(DataSistema.anoMesToCompetencia(anoMes));
}
Entenda bem do negócio, para
construir código com qualidade
Professores ensinam
      padrões
Métodos e classes com poucas
      linhas de código
“ Se eu tivesse mais
tempo lhe escreveria uma
     carta mais curta”




Blaise Pascal
Sempre que possível
   roube código
Obrigado
http://www.f ickr.com/photos/25160379@N03/3605886280/
           l
http://www.f ickr.com/photos/moreno/495261846/sizes/l/
           l
http://www.f ickr.com/photos/lisboaqueamanhece/2101463091/
           l
http://www.f ickr.com/photos/doperdopez/2826772718/sizes/l/
           l
http://www.f ickr.com/photos/pedazodevacio/326184912/
           l
http://www.f ickr.com/photos/lesec/3191306795/sizes/o/
           l
http://www.f ickr.com/photos/10258975@N07/4428121416/sizes/l/
           l
http://www.f ickr.com/photos/28317710@N05/3175407178/
           l
http://www.f ickr.com/photos/13514552@N02/3173209191/
           l
http://www.f ickr.com/photos/lucamorlok/3077066114/sizes/o/
           l
http://www.f ickr.com/photos/neilsingapore/3595250019/sizes/l/
           l
http://www.f ickr.com/photos/alreis/134314824/sizes/o/
           l

Mais conteúdo relacionado

Semelhante a Dicas de codificação parte I

[CLPE] Design patterns com c#
[CLPE] Design patterns com c#[CLPE] Design patterns com c#
[CLPE] Design patterns com c#
Felipe Pimentel
 
Programação Orientada a Testes
Programação Orientada a TestesProgramação Orientada a Testes
Programação Orientada a Testes
Gregorio Melo
 
Mock Objects
Mock ObjectsMock Objects
Mock Objects
elliando dias
 
Criando sua própria linguagem de programação
Criando sua própria linguagem de programaçãoCriando sua própria linguagem de programação
Criando sua própria linguagem de programação
ronaldoferraz
 
Pré processamento de grandes dados com Apache Spark
Pré processamento de grandes dados com Apache SparkPré processamento de grandes dados com Apache Spark
Pré processamento de grandes dados com Apache Spark
Felipe
 
Estruturas
EstruturasEstruturas
Curso de Node JS Básico
Curso de Node JS BásicoCurso de Node JS Básico
Curso de Node JS Básico
Victor Hazin da Rocha
 
Função malloc
Função mallocFunção malloc
Desenvolvendo com mongodb
Desenvolvendo com mongodbDesenvolvendo com mongodb
Desenvolvendo com mongodb
Thiago Avelino
 
Introdução ao Deep Learning com o TensorFlow
Introdução ao Deep Learning com o TensorFlowIntrodução ao Deep Learning com o TensorFlow
Introdução ao Deep Learning com o TensorFlow
pichiliani
 
Introdução ao Deep Learning com o TensorFlow
Introdução ao Deep Learning com o TensorFlowIntrodução ao Deep Learning com o TensorFlow
Introdução ao Deep Learning com o TensorFlow
Mauro Pichiliani
 
Fit Metrocamp 2016
Fit Metrocamp 2016Fit Metrocamp 2016
Fit Metrocamp 2016
Leandro Zanotto
 
Capítulo 14 Livro Algoritmos e Programação de Computadores Autores JR., Diler...
Capítulo 14 Livro Algoritmos e Programação de Computadores Autores JR., Diler...Capítulo 14 Livro Algoritmos e Programação de Computadores Autores JR., Diler...
Capítulo 14 Livro Algoritmos e Programação de Computadores Autores JR., Diler...
Os Fantasmas !
 
Intro padroesprojetoadaptertemplateobserver
Intro padroesprojetoadaptertemplateobserverIntro padroesprojetoadaptertemplateobserver
Intro padroesprojetoadaptertemplateobserver
Eduardo Jorge
 
Processar fluxos de textos usando filtros
Processar fluxos de textos usando filtrosProcessar fluxos de textos usando filtros
Processar fluxos de textos usando filtros
SoftD Abreu
 
Csharp.intro
Csharp.introCsharp.intro
Csharp.intro
Hélder Oliveira
 
Visual Studio 2010 e C# 4
Visual Studio 2010 e C# 4Visual Studio 2010 e C# 4
Visual Studio 2010 e C# 4
CDS
 
Cap14 - Respostas dos Exercícios Propostos Livro Algoritmos e Programação de ...
Cap14 - Respostas dos Exercícios Propostos Livro Algoritmos e Programação de ...Cap14 - Respostas dos Exercícios Propostos Livro Algoritmos e Programação de ...
Cap14 - Respostas dos Exercícios Propostos Livro Algoritmos e Programação de ...
Os Fantasmas !
 
O que mudou no Ruby 1.9
O que mudou no Ruby 1.9O que mudou no Ruby 1.9
O que mudou no Ruby 1.9
Nando Vieira
 
Minicurso Ruby on Rails
Minicurso Ruby on RailsMinicurso Ruby on Rails
Minicurso Ruby on Rails
Maurício Eduardo
 

Semelhante a Dicas de codificação parte I (20)

[CLPE] Design patterns com c#
[CLPE] Design patterns com c#[CLPE] Design patterns com c#
[CLPE] Design patterns com c#
 
Programação Orientada a Testes
Programação Orientada a TestesProgramação Orientada a Testes
Programação Orientada a Testes
 
Mock Objects
Mock ObjectsMock Objects
Mock Objects
 
Criando sua própria linguagem de programação
Criando sua própria linguagem de programaçãoCriando sua própria linguagem de programação
Criando sua própria linguagem de programação
 
Pré processamento de grandes dados com Apache Spark
Pré processamento de grandes dados com Apache SparkPré processamento de grandes dados com Apache Spark
Pré processamento de grandes dados com Apache Spark
 
Estruturas
EstruturasEstruturas
Estruturas
 
Curso de Node JS Básico
Curso de Node JS BásicoCurso de Node JS Básico
Curso de Node JS Básico
 
Função malloc
Função mallocFunção malloc
Função malloc
 
Desenvolvendo com mongodb
Desenvolvendo com mongodbDesenvolvendo com mongodb
Desenvolvendo com mongodb
 
Introdução ao Deep Learning com o TensorFlow
Introdução ao Deep Learning com o TensorFlowIntrodução ao Deep Learning com o TensorFlow
Introdução ao Deep Learning com o TensorFlow
 
Introdução ao Deep Learning com o TensorFlow
Introdução ao Deep Learning com o TensorFlowIntrodução ao Deep Learning com o TensorFlow
Introdução ao Deep Learning com o TensorFlow
 
Fit Metrocamp 2016
Fit Metrocamp 2016Fit Metrocamp 2016
Fit Metrocamp 2016
 
Capítulo 14 Livro Algoritmos e Programação de Computadores Autores JR., Diler...
Capítulo 14 Livro Algoritmos e Programação de Computadores Autores JR., Diler...Capítulo 14 Livro Algoritmos e Programação de Computadores Autores JR., Diler...
Capítulo 14 Livro Algoritmos e Programação de Computadores Autores JR., Diler...
 
Intro padroesprojetoadaptertemplateobserver
Intro padroesprojetoadaptertemplateobserverIntro padroesprojetoadaptertemplateobserver
Intro padroesprojetoadaptertemplateobserver
 
Processar fluxos de textos usando filtros
Processar fluxos de textos usando filtrosProcessar fluxos de textos usando filtros
Processar fluxos de textos usando filtros
 
Csharp.intro
Csharp.introCsharp.intro
Csharp.intro
 
Visual Studio 2010 e C# 4
Visual Studio 2010 e C# 4Visual Studio 2010 e C# 4
Visual Studio 2010 e C# 4
 
Cap14 - Respostas dos Exercícios Propostos Livro Algoritmos e Programação de ...
Cap14 - Respostas dos Exercícios Propostos Livro Algoritmos e Programação de ...Cap14 - Respostas dos Exercícios Propostos Livro Algoritmos e Programação de ...
Cap14 - Respostas dos Exercícios Propostos Livro Algoritmos e Programação de ...
 
O que mudou no Ruby 1.9
O que mudou no Ruby 1.9O que mudou no Ruby 1.9
O que mudou no Ruby 1.9
 
Minicurso Ruby on Rails
Minicurso Ruby on RailsMinicurso Ruby on Rails
Minicurso Ruby on Rails
 

Mais de Wende Mendes

Rotas com angular
Rotas com angularRotas com angular
Rotas com angular
Wende Mendes
 
Angular Nodejs e com mongolab
Angular Nodejs e com mongolabAngular Nodejs e com mongolab
Angular Nodejs e com mongolab
Wende Mendes
 
Apreenda a trabalhar em equipe
Apreenda a trabalhar em equipeApreenda a trabalhar em equipe
Apreenda a trabalhar em equipe
Wende Mendes
 
Motivação e Metas para Equipe
Motivação e Metas para EquipeMotivação e Metas para Equipe
Motivação e Metas para Equipe
Wende Mendes
 
Uma breve introdução de play framework
Uma breve introdução de play frameworkUma breve introdução de play framework
Uma breve introdução de play framework
Wende Mendes
 
CDI -Contextos e Dependências
CDI -Contextos e DependênciasCDI -Contextos e Dependências
CDI -Contextos e Dependências
Wende Mendes
 
100 maneiras de motivar sua equipe parte 1
100 maneiras de motivar sua equipe parte 1100 maneiras de motivar sua equipe parte 1
100 maneiras de motivar sua equipe parte 1
Wende Mendes
 
Domain-Driven-Design
Domain-Driven-DesignDomain-Driven-Design
Domain-Driven-Design
Wende Mendes
 
Como aumentar a produtividade da sua equipe
Como aumentar a produtividade da sua equipeComo aumentar a produtividade da sua equipe
Como aumentar a produtividade da sua equipe
Wende Mendes
 
Apresentação de Ruby para desktop, xml, yaml, e testes unitários
Apresentação de Ruby para desktop, xml, yaml, e testes unitáriosApresentação de Ruby para desktop, xml, yaml, e testes unitários
Apresentação de Ruby para desktop, xml, yaml, e testes unitários
Wende Mendes
 
Apresentação de ruby parte 5
Apresentação de ruby parte 5Apresentação de ruby parte 5
Apresentação de ruby parte 5
Wende Mendes
 
Apresentação de ruby com blocos de programação, módulos e outros exemplos
Apresentação de ruby com blocos de programação, módulos e outros exemplosApresentação de ruby com blocos de programação, módulos e outros exemplos
Apresentação de ruby com blocos de programação, módulos e outros exemplos
Wende Mendes
 
Ruby com Singleton class, Metaprogramação e muito mais
Ruby com Singleton class, Metaprogramação e muito maisRuby com Singleton class, Metaprogramação e muito mais
Ruby com Singleton class, Metaprogramação e muito mais
Wende Mendes
 
Ruby com Objetos e classes
Ruby com Objetos e classesRuby com Objetos e classes
Ruby com Objetos e classes
Wende Mendes
 
Introdução a ruby
Introdução a rubyIntrodução a ruby
Introdução a ruby
Wende Mendes
 
Javaone2010
Javaone2010Javaone2010
Javaone2010
Wende Mendes
 
Palestra hudson
Palestra hudsonPalestra hudson
Palestra hudson
Wende Mendes
 
Palestra codigomaravilhosoparte3
Palestra codigomaravilhosoparte3Palestra codigomaravilhosoparte3
Palestra codigomaravilhosoparte3
Wende Mendes
 
Domain-Driven-Design
 Domain-Driven-Design Domain-Driven-Design
Domain-Driven-Design
Wende Mendes
 
Dicas de codificação parte II
Dicas de codificação parte IIDicas de codificação parte II
Dicas de codificação parte II
Wende Mendes
 

Mais de Wende Mendes (20)

Rotas com angular
Rotas com angularRotas com angular
Rotas com angular
 
Angular Nodejs e com mongolab
Angular Nodejs e com mongolabAngular Nodejs e com mongolab
Angular Nodejs e com mongolab
 
Apreenda a trabalhar em equipe
Apreenda a trabalhar em equipeApreenda a trabalhar em equipe
Apreenda a trabalhar em equipe
 
Motivação e Metas para Equipe
Motivação e Metas para EquipeMotivação e Metas para Equipe
Motivação e Metas para Equipe
 
Uma breve introdução de play framework
Uma breve introdução de play frameworkUma breve introdução de play framework
Uma breve introdução de play framework
 
CDI -Contextos e Dependências
CDI -Contextos e DependênciasCDI -Contextos e Dependências
CDI -Contextos e Dependências
 
100 maneiras de motivar sua equipe parte 1
100 maneiras de motivar sua equipe parte 1100 maneiras de motivar sua equipe parte 1
100 maneiras de motivar sua equipe parte 1
 
Domain-Driven-Design
Domain-Driven-DesignDomain-Driven-Design
Domain-Driven-Design
 
Como aumentar a produtividade da sua equipe
Como aumentar a produtividade da sua equipeComo aumentar a produtividade da sua equipe
Como aumentar a produtividade da sua equipe
 
Apresentação de Ruby para desktop, xml, yaml, e testes unitários
Apresentação de Ruby para desktop, xml, yaml, e testes unitáriosApresentação de Ruby para desktop, xml, yaml, e testes unitários
Apresentação de Ruby para desktop, xml, yaml, e testes unitários
 
Apresentação de ruby parte 5
Apresentação de ruby parte 5Apresentação de ruby parte 5
Apresentação de ruby parte 5
 
Apresentação de ruby com blocos de programação, módulos e outros exemplos
Apresentação de ruby com blocos de programação, módulos e outros exemplosApresentação de ruby com blocos de programação, módulos e outros exemplos
Apresentação de ruby com blocos de programação, módulos e outros exemplos
 
Ruby com Singleton class, Metaprogramação e muito mais
Ruby com Singleton class, Metaprogramação e muito maisRuby com Singleton class, Metaprogramação e muito mais
Ruby com Singleton class, Metaprogramação e muito mais
 
Ruby com Objetos e classes
Ruby com Objetos e classesRuby com Objetos e classes
Ruby com Objetos e classes
 
Introdução a ruby
Introdução a rubyIntrodução a ruby
Introdução a ruby
 
Javaone2010
Javaone2010Javaone2010
Javaone2010
 
Palestra hudson
Palestra hudsonPalestra hudson
Palestra hudson
 
Palestra codigomaravilhosoparte3
Palestra codigomaravilhosoparte3Palestra codigomaravilhosoparte3
Palestra codigomaravilhosoparte3
 
Domain-Driven-Design
 Domain-Driven-Design Domain-Driven-Design
Domain-Driven-Design
 
Dicas de codificação parte II
Dicas de codificação parte IIDicas de codificação parte II
Dicas de codificação parte II
 

Último

História da Rádio- 1936-1970 século XIX .2.pptx
História da Rádio- 1936-1970 século XIX   .2.pptxHistória da Rádio- 1936-1970 século XIX   .2.pptx
História da Rádio- 1936-1970 século XIX .2.pptx
TomasSousa7
 
DESENVOLVIMENTO DE SOFTWARE I_aula1-2.pdf
DESENVOLVIMENTO DE SOFTWARE I_aula1-2.pdfDESENVOLVIMENTO DE SOFTWARE I_aula1-2.pdf
DESENVOLVIMENTO DE SOFTWARE I_aula1-2.pdf
Momento da Informática
 
Logica de Progamacao - Aula (1) (1).pptx
Logica de Progamacao - Aula (1) (1).pptxLogica de Progamacao - Aula (1) (1).pptx
Logica de Progamacao - Aula (1) (1).pptx
Momento da Informática
 
Certificado Jornada Python Da Hashtag.pdf
Certificado Jornada Python Da Hashtag.pdfCertificado Jornada Python Da Hashtag.pdf
Certificado Jornada Python Da Hashtag.pdf
joaovmp3
 
Manual-de-Credenciamento ANATER 2023.pdf
Manual-de-Credenciamento ANATER 2023.pdfManual-de-Credenciamento ANATER 2023.pdf
Manual-de-Credenciamento ANATER 2023.pdf
WELITONNOGUEIRA3
 
TOO - TÉCNICAS DE ORIENTAÇÃO A OBJETOS aula 1.pdf
TOO - TÉCNICAS DE ORIENTAÇÃO A OBJETOS aula 1.pdfTOO - TÉCNICAS DE ORIENTAÇÃO A OBJETOS aula 1.pdf
TOO - TÉCNICAS DE ORIENTAÇÃO A OBJETOS aula 1.pdf
Momento da Informática
 
PRODUÇÃO E CONSUMO DE ENERGIA DA PRÉ-HISTÓRIA À ERA CONTEMPORÂNEA E SUA EVOLU...
PRODUÇÃO E CONSUMO DE ENERGIA DA PRÉ-HISTÓRIA À ERA CONTEMPORÂNEA E SUA EVOLU...PRODUÇÃO E CONSUMO DE ENERGIA DA PRÉ-HISTÓRIA À ERA CONTEMPORÂNEA E SUA EVOLU...
PRODUÇÃO E CONSUMO DE ENERGIA DA PRÉ-HISTÓRIA À ERA CONTEMPORÂNEA E SUA EVOLU...
Faga1939
 
Segurança Digital Pessoal e Boas Práticas
Segurança Digital Pessoal e Boas PráticasSegurança Digital Pessoal e Boas Práticas
Segurança Digital Pessoal e Boas Práticas
Danilo Pinotti
 

Último (8)

História da Rádio- 1936-1970 século XIX .2.pptx
História da Rádio- 1936-1970 século XIX   .2.pptxHistória da Rádio- 1936-1970 século XIX   .2.pptx
História da Rádio- 1936-1970 século XIX .2.pptx
 
DESENVOLVIMENTO DE SOFTWARE I_aula1-2.pdf
DESENVOLVIMENTO DE SOFTWARE I_aula1-2.pdfDESENVOLVIMENTO DE SOFTWARE I_aula1-2.pdf
DESENVOLVIMENTO DE SOFTWARE I_aula1-2.pdf
 
Logica de Progamacao - Aula (1) (1).pptx
Logica de Progamacao - Aula (1) (1).pptxLogica de Progamacao - Aula (1) (1).pptx
Logica de Progamacao - Aula (1) (1).pptx
 
Certificado Jornada Python Da Hashtag.pdf
Certificado Jornada Python Da Hashtag.pdfCertificado Jornada Python Da Hashtag.pdf
Certificado Jornada Python Da Hashtag.pdf
 
Manual-de-Credenciamento ANATER 2023.pdf
Manual-de-Credenciamento ANATER 2023.pdfManual-de-Credenciamento ANATER 2023.pdf
Manual-de-Credenciamento ANATER 2023.pdf
 
TOO - TÉCNICAS DE ORIENTAÇÃO A OBJETOS aula 1.pdf
TOO - TÉCNICAS DE ORIENTAÇÃO A OBJETOS aula 1.pdfTOO - TÉCNICAS DE ORIENTAÇÃO A OBJETOS aula 1.pdf
TOO - TÉCNICAS DE ORIENTAÇÃO A OBJETOS aula 1.pdf
 
PRODUÇÃO E CONSUMO DE ENERGIA DA PRÉ-HISTÓRIA À ERA CONTEMPORÂNEA E SUA EVOLU...
PRODUÇÃO E CONSUMO DE ENERGIA DA PRÉ-HISTÓRIA À ERA CONTEMPORÂNEA E SUA EVOLU...PRODUÇÃO E CONSUMO DE ENERGIA DA PRÉ-HISTÓRIA À ERA CONTEMPORÂNEA E SUA EVOLU...
PRODUÇÃO E CONSUMO DE ENERGIA DA PRÉ-HISTÓRIA À ERA CONTEMPORÂNEA E SUA EVOLU...
 
Segurança Digital Pessoal e Boas Práticas
Segurança Digital Pessoal e Boas PráticasSegurança Digital Pessoal e Boas Práticas
Segurança Digital Pessoal e Boas Práticas
 

Dicas de codificação parte I

  • 1. Dicas de codificação Parte I Wende Mendes Higino email: wende.mendes@bluesoft.com.br
  • 2. Objetivo Dar dicas de como escrever um código maravilhoso
  • 5. Escrever um código com qualidade é uma arte
  • 7. Esforce -se para acrescentar métodos e deletar código
  • 8. Pense antes de codificar
  • 9. O que um design com qualidade?
  • 10. Sempre ter a opção de reaproveitar código
  • 11. BluesoftELFunctions public static String concat(final Object str1, final Object str2) { return String.valueOf(str1) + String.valueOf(str2); } public static Time intToTime(final Integer time) { return DataSistema.intToTime(time); } public static String toString(final Object object) { return String.valueOf(object); } public static Object coalesce(final Object s1, final Object s2) { return s1 == null || String.valueOf(s1).equals("null") ? s2 : s1; } public static boolean contains(final Collection<?> collection, final Object o) { return collection.contains(o); } public static Integer getSize(final Collection<? extends Object> collection) { Integer size = 0; if (!CollectionUtil.isEmpty(collection)) { size = collection.size(); } return size; } public static String getCompetencia(final Integer anoMes) { return String.valueOf(DataSistema.anoMesToCompetencia(anoMes)); }
  • 12. Entenda bem do negócio, para construir código com qualidade
  • 14. Métodos e classes com poucas linhas de código
  • 15. “ Se eu tivesse mais tempo lhe escreveria uma carta mais curta” Blaise Pascal
  • 16. Sempre que possível roube código
  • 18. http://www.f ickr.com/photos/25160379@N03/3605886280/ l http://www.f ickr.com/photos/moreno/495261846/sizes/l/ l http://www.f ickr.com/photos/lisboaqueamanhece/2101463091/ l http://www.f ickr.com/photos/doperdopez/2826772718/sizes/l/ l http://www.f ickr.com/photos/pedazodevacio/326184912/ l http://www.f ickr.com/photos/lesec/3191306795/sizes/o/ l http://www.f ickr.com/photos/10258975@N07/4428121416/sizes/l/ l http://www.f ickr.com/photos/28317710@N05/3175407178/ l http://www.f ickr.com/photos/13514552@N02/3173209191/ l http://www.f ickr.com/photos/lucamorlok/3077066114/sizes/o/ l http://www.f ickr.com/photos/neilsingapore/3595250019/sizes/l/ l http://www.f ickr.com/photos/alreis/134314824/sizes/o/ l