SlideShare a Scribd company logo
1 of 8
Download to read offline
Por Alysson Vasconcelos
 Convenções de código são importantes para os
programadores para um certo número de razões:
◦ 80% do custo da vida útil de um software é com
manutenção.
◦ • Dificilmente qualquer software existente é mantido
por toda a sua vida pelo autor original.
◦ • Convenções de código melhoram a legibilidade do◦ • Convenções de código melhoram a legibilidade do
software, permitindo aos
◦ engenheiros/analistas/programadores entender o
novo código de forma mais rápida e
◦ completamente.
◦ • Se você enviar o seu código-fonte como um produto,
você precisa ter certeza de que está
◦ bem embalado e limpo como qualquer outro produto
que você cria. (ORACLE)
 As regras básicas para nomes em programação Java
são bem simples e vale a pena memorizar:
◦ Os nomes de classe e interface começam com letra
maiúscula, como em Frame.
◦ • Os nomes de método, campo e variável local começam
com letra minúscula, como em
◦ read().
◦ • Os nomes de classe, método e campo todos usam◦ • Os nomes de classe, método e campo todos usam
minúsculas com maiúsculas em qualquer
◦ posição ("camel casing"), como em InputStream e
readFully().
◦ • Constantes — campos estáticos finais e
ocasionalmente variáveis locais finais — são
◦ escritas todas em letras maiúsculas com sublinhados
separando as palavras, como em MAX_CONNECTIONS.
◦ • Não abreviar
 Nomes como sprintf e nmtkns são relíquias de
um tempo em que os supercomputadores tinham
32 KB de memória. Os compiladores
economizavam memória limitando os
identificadores a 8 caracteres ou menos.
Entretanto, isto já não é problema há mais de 30
anos.anos.
 Hoje, não há desculpa para não escrever por
extenso os nomes de variáveis e métodos. Nada
marca um programa como o produto de um
hacker de C convertido mais obviamente que
nomes de variáveis sem vogais, como na
Listagem a seguir:
 Nomes não abreviados em “Camel Case” são
bem mais legíveis, como se pode ver na
listagem abaixo:
 O código é mais frequentemente lido que escrito, e a linguagem
Java é otimizada para leitura. Os
 programadores em C tem uma atração quase instintiva para
código ofuscado; Os programadores
 Java não. A linguagem Java prioriza a legibilidade sobre a
concisão.
 Algumas abreviações são tão comuns que você pode usá-las
sem culpa:sem culpa:
◦ max para máximo
◦ min para mínimo
◦ in para InputStream
◦ out para OutputStream
◦ e ou ex para uma exceção em uma cláusula catch (embora em nenhum
outro lugar)
◦ num para número, apesar de apenas quando usado como prefixo como
em numTokens, ou numHits
◦ tmp para uma variável temporária usada muito localmente — por
exemplo, ao trocar dois valores
 ORACLE
http://www.oracle.com/technetwork/java/java
se/documentation/codeconventions-
139411.html#16712
 IBM IBM
http://www.ibm.com/developerworks/br/java/
library/j-noaccent/

More Related Content

What's hot

Vagrant - ambiente de desenvolvimento virtualizado
Vagrant - ambiente de desenvolvimento virtualizadoVagrant - ambiente de desenvolvimento virtualizado
Vagrant - ambiente de desenvolvimento virtualizadoVinícius Krolow
 
Deixando de ser moleque com PHP
Deixando de ser moleque com PHPDeixando de ser moleque com PHP
Deixando de ser moleque com PHPVinícius Krolow
 
Joomla! do desktop ao datacenter
Joomla! do desktop ao datacenterJoomla! do desktop ao datacenter
Joomla! do desktop ao datacenterPaulino Michelazzo
 
Depurando Aplicacoes PHP com XDebug e FirePHP II
Depurando Aplicacoes PHP com XDebug e FirePHP IIDepurando Aplicacoes PHP com XDebug e FirePHP II
Depurando Aplicacoes PHP com XDebug e FirePHP IIJefferson Girão
 
Depurando Aplicações PHP com XDebug e FirePHP - SETI 2008
Depurando Aplicações PHP com XDebug e FirePHP - SETI 2008Depurando Aplicações PHP com XDebug e FirePHP - SETI 2008
Depurando Aplicações PHP com XDebug e FirePHP - SETI 2008Jefferson Girão
 
Cacheamento Lado Servidor
Cacheamento Lado ServidorCacheamento Lado Servidor
Cacheamento Lado ServidorMario Guedes
 
Phpreact flisol-fb-2014
Phpreact flisol-fb-2014Phpreact flisol-fb-2014
Phpreact flisol-fb-2014Adler Medrado
 
Porque aprender várias linguagens me tornou um DBA (e desenvolvedor) melhor
Porque aprender várias linguagens me tornou um DBA (e desenvolvedor) melhorPorque aprender várias linguagens me tornou um DBA (e desenvolvedor) melhor
Porque aprender várias linguagens me tornou um DBA (e desenvolvedor) melhorDickson S. Guedes
 
Big data da teoria à prática
Big data  da teoria à práticaBig data  da teoria à prática
Big data da teoria à práticaMario Guedes
 
Práticas de Programação em .NET
Práticas de Programação em .NETPráticas de Programação em .NET
Práticas de Programação em .NETComunidade NetPonto
 
9 erros que desenvolvedores Node.js cometem
9 erros que desenvolvedores Node.js cometem9 erros que desenvolvedores Node.js cometem
9 erros que desenvolvedores Node.js cometemFernando Henriques
 
gRPC: Por que você ainda usa REST?
gRPC: Por que você ainda usa REST?gRPC: Por que você ainda usa REST?
gRPC: Por que você ainda usa REST?Yago Tomé
 
Just groovy
Just groovyJust groovy
Just groovyIsmael
 
Entendendo um pouco melhor o que é Ruby
Entendendo um pouco melhor o que é RubyEntendendo um pouco melhor o que é Ruby
Entendendo um pouco melhor o que é Rubycodeland
 

What's hot (20)

Vagrant - ambiente de desenvolvimento virtualizado
Vagrant - ambiente de desenvolvimento virtualizadoVagrant - ambiente de desenvolvimento virtualizado
Vagrant - ambiente de desenvolvimento virtualizado
 
Deixando de ser moleque com PHP
Deixando de ser moleque com PHPDeixando de ser moleque com PHP
Deixando de ser moleque com PHP
 
POG nunca mais - SOLISC
POG nunca mais - SOLISCPOG nunca mais - SOLISC
POG nunca mais - SOLISC
 
Joomla! do desktop ao datacenter
Joomla! do desktop ao datacenterJoomla! do desktop ao datacenter
Joomla! do desktop ao datacenter
 
Curso gratuitoshellscript nivel-2
Curso gratuitoshellscript nivel-2Curso gratuitoshellscript nivel-2
Curso gratuitoshellscript nivel-2
 
Depurando Aplicacoes PHP com XDebug e FirePHP II
Depurando Aplicacoes PHP com XDebug e FirePHP IIDepurando Aplicacoes PHP com XDebug e FirePHP II
Depurando Aplicacoes PHP com XDebug e FirePHP II
 
Depurando Aplicações PHP com XDebug e FirePHP - SETI 2008
Depurando Aplicações PHP com XDebug e FirePHP - SETI 2008Depurando Aplicações PHP com XDebug e FirePHP - SETI 2008
Depurando Aplicações PHP com XDebug e FirePHP - SETI 2008
 
Cacheamento Lado Servidor
Cacheamento Lado ServidorCacheamento Lado Servidor
Cacheamento Lado Servidor
 
Phpreact flisol-fb-2014
Phpreact flisol-fb-2014Phpreact flisol-fb-2014
Phpreact flisol-fb-2014
 
Bdd&tdd
Bdd&tddBdd&tdd
Bdd&tdd
 
Porque aprender várias linguagens me tornou um DBA (e desenvolvedor) melhor
Porque aprender várias linguagens me tornou um DBA (e desenvolvedor) melhorPorque aprender várias linguagens me tornou um DBA (e desenvolvedor) melhor
Porque aprender várias linguagens me tornou um DBA (e desenvolvedor) melhor
 
Big data da teoria à prática
Big data  da teoria à práticaBig data  da teoria à prática
Big data da teoria à prática
 
Práticas de Programação em .NET
Práticas de Programação em .NETPráticas de Programação em .NET
Práticas de Programação em .NET
 
9 erros que desenvolvedores Node.js cometem
9 erros que desenvolvedores Node.js cometem9 erros que desenvolvedores Node.js cometem
9 erros que desenvolvedores Node.js cometem
 
Introducao XP
Introducao XPIntroducao XP
Introducao XP
 
Ruby
RubyRuby
Ruby
 
gRPC: Por que você ainda usa REST?
gRPC: Por que você ainda usa REST?gRPC: Por que você ainda usa REST?
gRPC: Por que você ainda usa REST?
 
Just groovy
Just groovyJust groovy
Just groovy
 
Entendendo um pouco melhor o que é Ruby
Entendendo um pouco melhor o que é RubyEntendendo um pouco melhor o que é Ruby
Entendendo um pouco melhor o que é Ruby
 
Desenvolvendo com IONIC
Desenvolvendo com IONICDesenvolvendo com IONIC
Desenvolvendo com IONIC
 

Viewers also liked

Apresentação linguagem cobol
Apresentação linguagem cobolApresentação linguagem cobol
Apresentação linguagem cobolAlexByDoomS
 
Documentação CakePHP - Português Br
Documentação CakePHP -  Português BrDocumentação CakePHP -  Português Br
Documentação CakePHP - Português BrLuiz Ladeira
 
Lista de exercícios resolvidos
Lista de exercícios resolvidosLista de exercícios resolvidos
Lista de exercícios resolvidosCrishna Irion
 
Simbolos logicos com tabelas verdad
Simbolos logicos com tabelas verdadSimbolos logicos com tabelas verdad
Simbolos logicos com tabelas verdadReginaldo Steinhardt
 
Algoritmos resolvidos lista 2
Algoritmos resolvidos lista 2Algoritmos resolvidos lista 2
Algoritmos resolvidos lista 2isa_ise
 
Exercícios resolvidos de Algoritmo
Exercícios resolvidos de AlgoritmoExercícios resolvidos de Algoritmo
Exercícios resolvidos de AlgoritmoJota Thin
 
50978145 algoritmos-exercicios-resolvidos
50978145 algoritmos-exercicios-resolvidos50978145 algoritmos-exercicios-resolvidos
50978145 algoritmos-exercicios-resolvidosEdvan Mateó
 
Aula 8 - Lógica de Programação - Variáveis, Tipos de dados e Operadores
Aula 8 - Lógica de Programação - Variáveis, Tipos de dados e OperadoresAula 8 - Lógica de Programação - Variáveis, Tipos de dados e Operadores
Aula 8 - Lógica de Programação - Variáveis, Tipos de dados e OperadoresAndré Constantino da Silva
 
Análise assintótica
Análise assintóticaAnálise assintótica
Análise assintóticaPablo Silva
 
Conceitos básicos de AEDS
Conceitos básicos de AEDSConceitos básicos de AEDS
Conceitos básicos de AEDSPablo Silva
 
Dicas para aumentar a performance de um software PHP
Dicas para aumentar a performance de um software PHPDicas para aumentar a performance de um software PHP
Dicas para aumentar a performance de um software PHPAlmir Neto
 
CakePHP com sotaque brasileiro
CakePHP com sotaque brasileiroCakePHP com sotaque brasileiro
CakePHP com sotaque brasileiroJuan Basso
 
Assembly para pc-25paginas
Assembly para pc-25paginasAssembly para pc-25paginas
Assembly para pc-25paginasMikeNandes
 

Viewers also liked (20)

ideias de programação
ideias de programaçãoideias de programação
ideias de programação
 
Apresentação linguagem cobol
Apresentação linguagem cobolApresentação linguagem cobol
Apresentação linguagem cobol
 
Documentação CakePHP - Português Br
Documentação CakePHP -  Português BrDocumentação CakePHP -  Português Br
Documentação CakePHP - Português Br
 
Lista de exercícios resolvidos
Lista de exercícios resolvidosLista de exercícios resolvidos
Lista de exercícios resolvidos
 
Simbolos logicos com tabelas verdad
Simbolos logicos com tabelas verdadSimbolos logicos com tabelas verdad
Simbolos logicos com tabelas verdad
 
Algoritmos resolvidos lista 2
Algoritmos resolvidos lista 2Algoritmos resolvidos lista 2
Algoritmos resolvidos lista 2
 
Exercícios resolvidos de Algoritmo
Exercícios resolvidos de AlgoritmoExercícios resolvidos de Algoritmo
Exercícios resolvidos de Algoritmo
 
50978145 algoritmos-exercicios-resolvidos
50978145 algoritmos-exercicios-resolvidos50978145 algoritmos-exercicios-resolvidos
50978145 algoritmos-exercicios-resolvidos
 
Aula 2 - Processos de Software
Aula 2 - Processos de SoftwareAula 2 - Processos de Software
Aula 2 - Processos de Software
 
Aula 8 - Lógica de Programação - Variáveis, Tipos de dados e Operadores
Aula 8 - Lógica de Programação - Variáveis, Tipos de dados e OperadoresAula 8 - Lógica de Programação - Variáveis, Tipos de dados e Operadores
Aula 8 - Lógica de Programação - Variáveis, Tipos de dados e Operadores
 
Análise assintótica
Análise assintóticaAnálise assintótica
Análise assintótica
 
Recursividade
RecursividadeRecursividade
Recursividade
 
Conceitos básicos de AEDS
Conceitos básicos de AEDSConceitos básicos de AEDS
Conceitos básicos de AEDS
 
Dicas para aumentar a performance de um software PHP
Dicas para aumentar a performance de um software PHPDicas para aumentar a performance de um software PHP
Dicas para aumentar a performance de um software PHP
 
CakePHP com sotaque brasileiro
CakePHP com sotaque brasileiroCakePHP com sotaque brasileiro
CakePHP com sotaque brasileiro
 
Assembly para pc-25paginas
Assembly para pc-25paginasAssembly para pc-25paginas
Assembly para pc-25paginas
 
Apostila cobol
Apostila cobolApostila cobol
Apostila cobol
 
Funções em C
Funções em CFunções em C
Funções em C
 
PROGRAMAS QBASIC
PROGRAMAS QBASICPROGRAMAS QBASIC
PROGRAMAS QBASIC
 
Introdução ao PHP
Introdução ao PHPIntrodução ao PHP
Introdução ao PHP
 

Similar to Convenções de código para a linguagem de programação

Módulo 5 Arquitetura de Computadores
Módulo 5 Arquitetura de ComputadoresMódulo 5 Arquitetura de Computadores
Módulo 5 Arquitetura de ComputadoresLuis Ferreira
 
Boas praticas em_desenvolvimento_de_software
Boas praticas em_desenvolvimento_de_softwareBoas praticas em_desenvolvimento_de_software
Boas praticas em_desenvolvimento_de_softwareivanassisleal
 
Introdução à Linguagem de Programação C
Introdução à Linguagem de Programação CIntrodução à Linguagem de Programação C
Introdução à Linguagem de Programação CJose Augusto Cintra
 
paradigmasdlsksmmskskkekekekekedmmmdmdmmf.pdf
paradigmasdlsksmmskskkekekekekedmmmdmdmmf.pdfparadigmasdlsksmmskskkekekekekedmmmdmdmmf.pdf
paradigmasdlsksmmskskkekekekekedmmmdmdmmf.pdfAndreiaCristinaFlore
 
Vulnerabilidade Out-of-bounds-Write (CWE-787)
Vulnerabilidade Out-of-bounds-Write (CWE-787)Vulnerabilidade Out-of-bounds-Write (CWE-787)
Vulnerabilidade Out-of-bounds-Write (CWE-787)GuilhermeDutra48
 
Clean code @rogeriofontes-techfriday-everis
Clean code @rogeriofontes-techfriday-everisClean code @rogeriofontes-techfriday-everis
Clean code @rogeriofontes-techfriday-everisRogerio Fontes
 
Palestra: Introdução à TypeScript & Features Ts 2.x
Palestra: Introdução à TypeScript & Features Ts 2.x Palestra: Introdução à TypeScript & Features Ts 2.x
Palestra: Introdução à TypeScript & Features Ts 2.x Glaucia Lemos
 
Linguagem c-para-microcontroladores
Linguagem c-para-microcontroladoresLinguagem c-para-microcontroladores
Linguagem c-para-microcontroladores34macchia34
 
Apresentação Introdução Typescript - .Net Caxias do Sul
Apresentação   Introdução Typescript - .Net Caxias do SulApresentação   Introdução Typescript - .Net Caxias do Sul
Apresentação Introdução Typescript - .Net Caxias do SulGlaucia Lemos
 
The Language VolcanX - ABMSL
The Language VolcanX - ABMSLThe Language VolcanX - ABMSL
The Language VolcanX - ABMSLMichel Alves
 
Clean Code: Por um mundo com códigos melhores - SETI 2017
Clean Code: Por um mundo com códigos melhores - SETI 2017Clean Code: Por um mundo com códigos melhores - SETI 2017
Clean Code: Por um mundo com códigos melhores - SETI 2017Thiago Barradas
 

Similar to Convenções de código para a linguagem de programação (20)

Módulo 5 Arquitetura de Computadores
Módulo 5 Arquitetura de ComputadoresMódulo 5 Arquitetura de Computadores
Módulo 5 Arquitetura de Computadores
 
Linguagem c
Linguagem cLinguagem c
Linguagem c
 
Apostila c
Apostila cApostila c
Apostila c
 
Boas praticas em_desenvolvimento_de_software
Boas praticas em_desenvolvimento_de_softwareBoas praticas em_desenvolvimento_de_software
Boas praticas em_desenvolvimento_de_software
 
Introdução à Linguagem de Programação C
Introdução à Linguagem de Programação CIntrodução à Linguagem de Programação C
Introdução à Linguagem de Programação C
 
paradigmasdlsksmmskskkekekekekedmmmdmdmmf.pdf
paradigmasdlsksmmskskkekekekekedmmmdmdmmf.pdfparadigmasdlsksmmskskkekekekekedmmmdmdmmf.pdf
paradigmasdlsksmmskskkekekekekedmmmdmdmmf.pdf
 
Linguagem assembly
Linguagem assemblyLinguagem assembly
Linguagem assembly
 
Vulnerabilidade Out-of-bounds-Write (CWE-787)
Vulnerabilidade Out-of-bounds-Write (CWE-787)Vulnerabilidade Out-of-bounds-Write (CWE-787)
Vulnerabilidade Out-of-bounds-Write (CWE-787)
 
Clean code @rogeriofontes-techfriday-everis
Clean code @rogeriofontes-techfriday-everisClean code @rogeriofontes-techfriday-everis
Clean code @rogeriofontes-techfriday-everis
 
Codigo limpo
Codigo limpoCodigo limpo
Codigo limpo
 
Apostila de dev
Apostila de devApostila de dev
Apostila de dev
 
Palestra: Introdução à TypeScript & Features Ts 2.x
Palestra: Introdução à TypeScript & Features Ts 2.x Palestra: Introdução à TypeScript & Features Ts 2.x
Palestra: Introdução à TypeScript & Features Ts 2.x
 
Linguagem c-para-microcontroladores
Linguagem c-para-microcontroladoresLinguagem c-para-microcontroladores
Linguagem c-para-microcontroladores
 
C pic
C picC pic
C pic
 
Apresentação Introdução Typescript - .Net Caxias do Sul
Apresentação   Introdução Typescript - .Net Caxias do SulApresentação   Introdução Typescript - .Net Caxias do Sul
Apresentação Introdução Typescript - .Net Caxias do Sul
 
The Language VolcanX - ABMSL
The Language VolcanX - ABMSLThe Language VolcanX - ABMSL
The Language VolcanX - ABMSL
 
Sgml
SgmlSgml
Sgml
 
Clean Code: Por um mundo com códigos melhores - SETI 2017
Clean Code: Por um mundo com códigos melhores - SETI 2017Clean Code: Por um mundo com códigos melhores - SETI 2017
Clean Code: Por um mundo com códigos melhores - SETI 2017
 
Curso Gratuito de Shell Script
Curso Gratuito de Shell ScriptCurso Gratuito de Shell Script
Curso Gratuito de Shell Script
 
Sap – stablility and abstract principle
Sap – stablility and abstract principleSap – stablility and abstract principle
Sap – stablility and abstract principle
 

Convenções de código para a linguagem de programação

  • 2.  Convenções de código são importantes para os programadores para um certo número de razões: ◦ 80% do custo da vida útil de um software é com manutenção. ◦ • Dificilmente qualquer software existente é mantido por toda a sua vida pelo autor original. ◦ • Convenções de código melhoram a legibilidade do◦ • Convenções de código melhoram a legibilidade do software, permitindo aos ◦ engenheiros/analistas/programadores entender o novo código de forma mais rápida e ◦ completamente. ◦ • Se você enviar o seu código-fonte como um produto, você precisa ter certeza de que está ◦ bem embalado e limpo como qualquer outro produto que você cria. (ORACLE)
  • 3.  As regras básicas para nomes em programação Java são bem simples e vale a pena memorizar: ◦ Os nomes de classe e interface começam com letra maiúscula, como em Frame. ◦ • Os nomes de método, campo e variável local começam com letra minúscula, como em ◦ read(). ◦ • Os nomes de classe, método e campo todos usam◦ • Os nomes de classe, método e campo todos usam minúsculas com maiúsculas em qualquer ◦ posição ("camel casing"), como em InputStream e readFully(). ◦ • Constantes — campos estáticos finais e ocasionalmente variáveis locais finais — são ◦ escritas todas em letras maiúsculas com sublinhados separando as palavras, como em MAX_CONNECTIONS. ◦ • Não abreviar
  • 4.  Nomes como sprintf e nmtkns são relíquias de um tempo em que os supercomputadores tinham 32 KB de memória. Os compiladores economizavam memória limitando os identificadores a 8 caracteres ou menos. Entretanto, isto já não é problema há mais de 30 anos.anos.  Hoje, não há desculpa para não escrever por extenso os nomes de variáveis e métodos. Nada marca um programa como o produto de um hacker de C convertido mais obviamente que nomes de variáveis sem vogais, como na Listagem a seguir:
  • 5.
  • 6.  Nomes não abreviados em “Camel Case” são bem mais legíveis, como se pode ver na listagem abaixo:
  • 7.  O código é mais frequentemente lido que escrito, e a linguagem Java é otimizada para leitura. Os  programadores em C tem uma atração quase instintiva para código ofuscado; Os programadores  Java não. A linguagem Java prioriza a legibilidade sobre a concisão.  Algumas abreviações são tão comuns que você pode usá-las sem culpa:sem culpa: ◦ max para máximo ◦ min para mínimo ◦ in para InputStream ◦ out para OutputStream ◦ e ou ex para uma exceção em uma cláusula catch (embora em nenhum outro lugar) ◦ num para número, apesar de apenas quando usado como prefixo como em numTokens, ou numHits ◦ tmp para uma variável temporária usada muito localmente — por exemplo, ao trocar dois valores