SlideShare una empresa de Scribd logo
1 de 18
Descargar para leer sin conexión
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

Más contenido relacionado

Similar 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 TestesGregorio Melo
 
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çãoronaldoferraz
 
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 SparkFelipe
 
Desenvolvendo com mongodb
Desenvolvendo com mongodbDesenvolvendo com mongodb
Desenvolvendo com mongodbThiago 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 TensorFlowpichiliani
 
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 TensorFlowMauro Pichiliani
 
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 padroesprojetoadaptertemplateobserverEduardo Jorge
 
Processar fluxos de textos usando filtros
Processar fluxos de textos usando filtrosProcessar fluxos de textos usando filtros
Processar fluxos de textos usando filtrosSoftD Abreu
 
Visual Studio 2010 e C# 4
Visual Studio 2010 e C# 4Visual Studio 2010 e C# 4
Visual Studio 2010 e C# 4CDS
 
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.9Nando Vieira
 

Similar 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
 

Más de Wende Mendes

Angular Nodejs e com mongolab
Angular Nodejs e com mongolabAngular Nodejs e com mongolab
Angular Nodejs e com mongolabWende Mendes
 
Apreenda a trabalhar em equipe
Apreenda a trabalhar em equipeApreenda a trabalhar em equipe
Apreenda a trabalhar em equipeWende Mendes
 
Motivação e Metas para Equipe
Motivação e Metas para EquipeMotivação e Metas para Equipe
Motivação e Metas para EquipeWende 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 frameworkWende Mendes
 
CDI -Contextos e Dependências
CDI -Contextos e DependênciasCDI -Contextos e Dependências
CDI -Contextos e DependênciasWende 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 1Wende Mendes
 
Domain-Driven-Design
Domain-Driven-DesignDomain-Driven-Design
Domain-Driven-DesignWende 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 equipeWende 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áriosWende Mendes
 
Apresentação de ruby parte 5
Apresentação de ruby parte 5Apresentação de ruby parte 5
Apresentação de ruby parte 5Wende 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 exemplosWende 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 maisWende Mendes
 
Ruby com Objetos e classes
Ruby com Objetos e classesRuby com Objetos e classes
Ruby com Objetos e classesWende Mendes
 
Introdução a ruby
Introdução a rubyIntrodução a ruby
Introdução a rubyWende Mendes
 
Palestra codigomaravilhosoparte3
Palestra codigomaravilhosoparte3Palestra codigomaravilhosoparte3
Palestra codigomaravilhosoparte3Wende Mendes
 
Domain-Driven-Design
 Domain-Driven-Design Domain-Driven-Design
Domain-Driven-DesignWende Mendes
 
Dicas de codificação parte II
Dicas de codificação parte IIDicas de codificação parte II
Dicas de codificação parte IIWende Mendes
 

Más 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
 

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