Vous êtes sur la page 1sur 18

19/ 10/ 12

Boas Pr t i as em Java G ui D i i i o c a ef nt v

Blog Contato Currculo Padres de Projeto Portflio Sobre Mim

pesquisar...

Pgina inicial > Conceitos > Boas Prticas em Java Guia Definitivo

Boas Prticas em Java Guia Definitivo


Posted by Flvio J. Mendes on 09/02/2012 in Conceitos, Tutoriais | 8 comments Confesso que nunca fui um desenvolvedor muito adepto a padronizaes no que eu codificava. Porm quando mudei de empresa fui, de certa forma, forado a aprender alguns padres e tive que admitir que realmente ajuda muito na manutenibilidade de uma aplicao. Principalmente quando desenvolvida por um grande grupo de desenvolvedores. Eis que encontrei uma documentao muito til no site da Oracle, traduzi, adaptei e agora compartilho com vocs:

1 Introduo
1.1 Por que padronizar? Convenes de cdigo so importantes para os programadores pelos seguintes motivos: 80% do tempo gasto em codificao de um software na fase de manuteno; Dificilmente qualquer software mantido por toda a sua vida pelo autor original; Convenes de cdigo melhoram a legibilidade do software, permitindo que os desenvolvedores entendam o cdigo de forma mais rpida e completamente; Se voc enviar o seu cdigo-fonte como um produto, voc precisa ter certeza de que bem feito e limpo como qualquer outro produto que voc criar. 2 Nomeao de Arquivos 2.1 Sufixos Os arquivos Java possuem os seguintes sufixos (extenses): Cdigo Fonte: .java; Classe compilada : .class.
w w f l vi j endes. com / bl g/ 2012/ 02/ 09/ boas- pr at i as- em - j va- gui - def i i i o/ w . a om o c a a nt v 1/ 18

19/ 10/ 12

Boas Pr t i as em Java G ui D i i i o c a ef nt v

3 Organizao dos Arquivos


Evite arquivos com mais de 2000 linhas, pois eles se tornam arquivos pesados. 3.1 Arquivos de Cdigo Fonte (.java) Cada arquivo Java contm uma nica classe ou interface pblica. Quando as classes privadas e interfaces esto associadas a uma classe pblica, voc pode coloc-los no arquivo de origem igual ao da classe pblica. A classe pblica deve ser a primeira classe ou interface no arquivo. Os arquivos Java seguem a seguinte ordem: Comentrio de Cabealho; Declarao de pacotes e imports; Declaraes de Classes e Interfaces.
3.1.1 Comentrio de Cabealho

Todos os cdigos fonte devem possuir um cabealho que contenha o nome da Classe, verso, data e informaes de direitos autorais. 1 2 3 4 5 6 7 8 9 / * *Cas lse * *Vr eso * *Dt aa * *Cprgt oyih * /
?

3.1.2 Declarao de Pacotes e Imports

A primeira linha que no seja comentrio, deve ser a declarao do pacote. As linhas seguintes podem ser os Imports. 1 2 3 pcaeb.o.lvomne; akg rcmfaijeds ipr jv.w.oo; mot aaatRbt
?

3.1.3 Declarao de Classes e Interfaces

O fluxo a seguir descreve as sees da declarao de uma Classe ou Interface na ordem em que devem aparecer. 1. Comentrio de Documentao da Classe ou Interface; 2. Declarao da Classe ou Interface; 3. Comentrio de Implementao da Classe ou Interface; 1. Este comentrio deve conter todas as informaes da Classe ou Interface mais genricos e que
w w f l vi j endes. com / bl g/ 2012/ 02/ 09/ boas- pr at i as- em - j va- gui - def i i i o/ w . a om o c a a nt v 2/ 18

19/ 10/ 12

Boas Pr t i as em Java G ui D i i i o c a ef nt v

4.

5.

6. 7.

no eram apropriados para o comentrio de documentao da Classe ou Interface. Variveis estticas (static) da Classe; 1. Primeiro as pblicas (public), depois as protegidas (protected), depois as default (sem explicitar), e ento as privadas (private). Variveis instanciveis; 1. Primeiro as pblicas (public), depois as protegidas (protected), depois as default (sem explicitar), e ento as privadas (private). Construtores; Mtodos. 1. Esses mtodos devem ser agrupados por funcionalidade ao invs de escopo ou acessibilidade. Por exemplo, um mtodo privado pode estar entre dois mtodos pblicos. O objetivo tornar a leitura e compreenso do cdigo mais fcil.

4 Indentao Muita gente pode achar frescura esse captulo, entretanto algo que quando comecei a me policiar para usar essas padronizaes senti logo o quanto ajuda, e finalmente parei de me preocupar em rolar a tela para a direita infinitamente at chegar ao fim da linha. 4.1 Tamanho da Linha Evite linhas com mais de 80 colunas, visto que a maioria dos desenvolvedores no possuem recursos para visualizar mais que isso. Obs.: Para uso em documentaes, procure usar no mximo 70 colunas. 4.2 Quebra de Linha Quando o cdigo no couber em uma linha (respeitando o limite de 80 colunas), quebre-o seguindo os princpios: Quebre aps a vrgula; Quebra antes de um operador; Prefira quebras de linha a um nvel mais alto; Alinhe a linha de novo com o incio da expresso no mesmo nvel da linha anterior; Se as regras anteriores levarem a um cdigo confuso ou o cdigo ficar esmagado contra a margem direita, coloque apenas 8 espaos em seu lugar. Alguns exemplos abaixo: Chamadas de mtodos 1 2 3 4 5 6 mueoovraeLn1 vraeLn2 vraeLn3 eMtd(aivlog, aivlog, aivlog, vraeLn4 vraeLn5; aivlog, aivlog) vr=mueoo(aivlog, a eMtd1vraeLn1 mueoo(aivlog, eMtd2vraeLn2 vraeLn3) aivlog);
?

Seguem-se dois exemplos de como quebrar uma expresso aritmtica. O primeiro o preferido, uma vez que a quebra ocorre fora da expresso entre parnteses, que a um nvel superior.
w w f l vi j endes. com / bl g/ 2012/ 02/ 09/ boas- pr at i as- em - j va- gui - def i i i o/ w . a om o c a a nt v 3/ 18

19/ 10/ 12

Boas Pr t i as em Java G ui D i i i o c a ef nt v

1 2 3 4 5

nmLn1=nmLn2*(oeog +nmLn4-nmLn5 oeog oeog nmLn3 oeog oeog) +4*nmLn6 / PEEE oeog; / RFRVL nmLn1=nmLn2*(oeog +nmLn4 oeog oeog nmLn3 oeog -nmLn5 +4*nmLn6 / EIA oeog) oeog; / VTR

Seguem-se dois exemplos de indentao de declarao de mtodos. O primeiro o caso convencional. A segunda iria deslocar a segunda e terceira linhas para a extrema direita se fosse utilizada a indentao convencional. Por isso, recuamos apenas 8 espaos. 1 2 3 4 5 6 7 8 9 1 0 1 1 1 2 /IDNA CNECOA /NETO OVNINL mueooitnmr,Ojc ojtFai,Srn ojtCmr eMtd(n ueo bet beolvo tig beooB, Ojc miU){ bet asm .. . } /RCA 8EPSPR EIA RCOECSIO /EUR SAO AA VTR EU XESV piaesai snhoie mtdFaiJedsitnmr, rvt ttc ycrnzd eoolvoMne(n ueo Ojc ojtFai,Srn ojtCmr bet beolvo tig beooB, Ojc miU){ bet asm .. . }
?

Quebra de linha para declarao de IFs devem usar a regra dos 8 espaos, uma vez que o recuo convencional torna difcil ver o corpo. Por exemplo: 1 2 3 4 5 6 7 8 9 1 0 1 1 1 2 1 3 1 4 1 5 1 6 1 7 1 8 1 9 /NOUEES IDNA / S SA NETO i (cnia1& cnia2 f (odco & odco) | (odco & cnia4 | cnia3 & odco) |!cnia5& cnia6){/QERSRIS |(odco & odco) /UBA UN mtdFzluaos(; eooaAgmCia) /DFCLVSAIA /II IULZO } /UEES IDNA /S SA NETO i (cnia1& cnia2 f (odco & odco) | (odco & cnia4 | cnia3 & odco) |!cnia5& cnia6){ |(odco & odco) mtdFzluaos(; eooaAgmCia) } /O F ASM /U AA SI i (cnia1& cnia2 | (odco & cnia4 f (odco & odco) | cnia3 & odco) |!cnia5& cnia6){ |(odco & odco) mtdFzluaos(; eooaAgmCia) }
?

5 Comentrios
Programas em Java podem ter dois tipos de comentrios:comentrios de implementao e comentrios de documentao. Comentrios de aplicao so os encontradosem C + +, que so delimitados por / * * /, e / /. Comentrios de documentao (conhecidos como comentrios doc) soJava-only, e so delimitados por / ** * /. Comentrios de documentao podem ser extrados para arquivos HTMLusando a ferramenta javadoc. Comentrios de implementao so destinados a comentar o cdigo ou para comentrios sobre
w w f l vi j endes. com / bl g/ 2012/ 02/ 09/ boas- pr at i as- em - j va- gui - def i i i o/ w . a om o c a a nt v

uma implementaoparticular. Comentrios de documentao so destinados adescrever a especificao

4/ 18

19/ 10/ 12

Boas Pr t i as em Java G ui D i i i o c a ef nt v

uma implementaoparticular. Comentrios de documentao so destinados adescrever a especificao do cdigo, a partir de uma perspectiva independente de implementao. Para serem lidos por desenvolvedores que no necessariamente possuem o cdigo fonte em mos. Os comentrios devem ser usados dar uma viso geral do cdigo e fornecer informaes adicionais que para no esto prontamente disponveis no prprio cdigo. Os comentrios devem conter apenas informaes que sejam relevantes para a leitura e compreenso do programa. 5.1 Implementation Comment Formats Existem quatro tipos de Comentrios de Implementao: bloco, de uma linha, trailing, e de final de linha.
5.1.1 Bloco de Comentrios

Blocos de comentrio so usados fornecer descries de arquivos, mtodos, estruturas de dados e para algoritmos.Blocos de comentrio podem ser utilizados no incio de cada arquivo e antes de cada mtodo. Eles podem tambm ser utilizados em outros locais, tais como dentro de mtodos.Blocos de comentrio que estejam dentro de uma funo ou mtodo devem ser indentados para o mesmo nvel que o cdigo que descrevem. Um bloco de comentrio deve ser precedido por uma linha em branco para separ-lo do resto do cdigo. 1 2 3 / * *Es u bood cmni. se m lc e oetro * /
?

5.1.2 Comentrios de uma linha

Comentrios curtos podem aparecer em uma nica linha recuada para o nvel do cdigo que se segue. Se um comentrio no pode ser escrito em uma nica linha, ele deve seguir o formato de bloco de comentrio. Um comentrio de uma linhadeve ser precedido por uma linha em branco. 1 2 3 4 5 i (odco { f cnia) / Taaacni aia * * rt odo cm. / .. .
?

5.1.3 Trailing

Comentrios muito curtos podem aparecer na mesma linha docdigo que descrevem, mas devem ser deslocados o suficiente para separ-los das declaraes. Se mais de um breve comentrio aparece em um pedao de cdigo, todos eles devero ser recuado para o mesmo nvel. 1 2 3 4 5 i ( = 2 { f a = ) rtr TU; eun RE }es { le rtr iIpra; eun sma() }
?

/ cs epca * * ao seil / / ipr* * ma /

w w f l vi j endes. com / bl g/ 2012/ 02/ 09/ boas- pr at i as- em - j va- gui - def i i i o/ w . a om o c a a nt v

5/ 18

19/ 10/ 12

Boas Pr t i as em Java G ui D i i i o c a ef nt v

5.1.4 Final de Linha

O delimitador / / pode comentar uma linha completa ou apenas uma linha parcial. Ele no deve ser utilizado em linhas consecutivas para comentrios de texto, no entanto, pode ser utilizado em linhas consecutivas para comentar sees de cdigo. 1 2 3 4 5 6 7 8 9 1 0 1 1 1 2 1 3 1 4 1 5 1 6 i (odco>1 { f cnia ) / Fzuaprea / a m iut. .. .
?

} es { le rtr fle eun as; / Esaqeto / i us. } /i (aaeoSnoMd >1 { /f dinDsatsoe ) / / / / / Fzru TitCrao / ae m ws apd. / / .. . /} / /es { /le / / rtr fle eun as; /} /

6 Declaraes
6.1 Nmero por Linha Uma declarao por linha o recomendado, visto que facilita o comentrio. Exemplificando, melhor isso 1 2 itatr; n lua itlrua n agr; / atr d tbl / lua a aea / lruad tbl / agr a aea
?

do que isso 1 itatr,lrua n lua agr;


?

Nunca instancie tipos diferentes na mesma linha 1 itqdaa, nmrsaa[;/ERD! n tCss ueoCss] /RAO
?

6.2 Inicializao Procure inicializar variveis onde elas esto declaradas.A nica razo para no inicializar uma locais varivel onde estdeclarada se o valor inicial depende de algum clculo que ocorre primeiro. 6.3 Localizao Coloque declaraes apenas no incio de blocos. (Um bloco qualquer cdigo entre chaves { e }.) No espere paradeclarar variveis sua primeira utilizao, pois podeconfundir o programador desavisado e at dificultar a portabilidade do cdigo dentro do escopo. 1 2
w w f l vi j endes. com / bl g/ 2012/ 02/ 09/ boas- pr at i as- em - j va- gui - def i i i o/ w . a om o c a a nt v

vi mueoo){ od eMtd( itit =0 n n1 ;

/ ii d bood mtd / nco o lc o oo


6/ 18

19/ 10/ 12

Boas Pr t i as em Java G ui D i i i o c a ef nt v

3 4 5 6 7 8

i (odco { f cnia) itit =0 n n2 ; .. . }

/ ii d bood i / nco o lc o f

6.4 Declarao de Classes e Interfaces Ao codificar classes e interfaces Java, as seguintes regras de formatao devem ser seguidas: No h espao entre um nome do mtodo e o parntese (comeando sua lista de parmetros; Abrir chaves { aparece no final da mesma linha com ainstruo de declarao; Fechar chaves } inicia uma linha por si s recuado paracoincidir com a sua declarao de abertura correspondente. Exceto quando se trata de uma declarao nula, o } deve aparecer imediatamente aps a {; 1 2 3 4 5 6 7 8 9 1 0 1 1 1 2 1 3 casEepoetnsOjc { ls xml xed bet itia1 n vr; itia2 n vr; Eepoiti itj { xml(n , n ) ia1=i vr ; ia2=j vr ; } itmtdVzo){ n eooai( } } .. .
?

Mtodos so separados por uma linha em branco.

7 Expresses
7.1 Expresses Simples Cada linha deve conter no mximo uma expresso: 1 2 3 ag+; rv+ / Cro / et ag-; rc/ Cro / et ag+;ag-;/ ERD! rv+ rc- / RAO
?

7.2 Expresses Compostas Instrues compostas so declaraes que contm listas de instrues entre chaves {instrues}. Veja as seguintes sees para obter exemplos. As declaraes fechadas devem ser indentadas um nvel mais do que o comando composto; A chave de abertura deve estar no final da linha que se inicia a expresso composta; a chave de fechamento deve comear uma linha e ser recuado para o incio da expresso composta;
w w f l vi j endes. com / bl g/ 2012/ 02/ 09/ boas- pr at i as- em - j va- gui - def i i i o/ w . a om o c a a nt v 7/ 18

19/ 10/ 12

Boas Pr t i as em Java G ui D i i i o c a ef nt v

Chaves so usadas em torno todas as declaraes, at mesmo declaraes individuais, quando eles fazem parte de uma estrutura de controle, como uma instruo if-else ou for. Isto torna mais fcil adicionar declaraes sem acidentalmente introduzir erros devido a esquecer de adicionar chaves. 7.3 Expresses return A instruo de retorno com um valor no deve usar parnteses, a menos que faa o valor de retorno mais bvio de alguma forma. 1 2 3 4 5 rtr; eun rtr dsotmno) eun ic.aah(; rtr (aah ?tmno:tmnoaro; eun tmno aah aahPda)
?

7.4 If, if-else, if else-if else Devem seguir o padro: 1 2 3 4 5 6 7 8 9 1 0 1 1 1 2 1 3 1 4 1 5 1 6 1 7 i (odco { f cnia) isrce; ntuos } i (odco { f cnia) isrce; ntuos }es { le isrce; ntuos } i (odco { f cnia) isrce; ntuos }es i (odco { le f cnia) isrce; ntuos }es { le isrce; ntuos }
?

Ateno: Clusulas IF SEMPRE devem conter chaves { e }. Nunca faa isso 1 2 i (odco /EIE NOOIAA CAE {! f cnia) /VT! MT S HVS } isrco ntua;
?

7.5 Expresses for Devem seguir o padro: 1 2 3 fr(ncaiaa;cnia;pso { o iiilzco odco as) isrce; ntuos }
?

Um for vazio (aquele em que todo o trabalho feito na inicializao, condio e clusulas de atualizao) deve ter a seguinte forma: 1
w w f l vi j endes. com / bl g/ 2012/ 02/ 09/ boas- pr at i as- em - j va- gui - def i i i o/ w . a om o c a a nt v

fr(ncaiaa;cnia;pso; o iiilzco odco as)

?
8/ 18

19/ 10/ 12

Boas Pr t i as em Java G ui D i i i o c a ef nt v

Ao usar o operador vrgula na clusula de inicializao ou atualizao de um for, evitar a complexidade de usar mais de trs variveis. Se necessrio, use declaraes separadas antes do lao for (para a clusula de inicializao) ou no final do loop (a clusula de atualizao). 7.6 Expresses while O while deve ser implementado da seguinte forma: 1 2 3 wie(odco { hl cnia) isrce; ntuos }
?

Um while vazio deve ser implementado da seguinte forma: 1 wie(odco; hl cnia)


?

7.7 Expresses do-while Uma expresso do-while deve ser implementada da seguinte maneira: 1 2 3 d { o isrce; ntuos }wie(odco; hl cnia)
?

7.8 Expresses switch Um switch deve seguir o seguinte padro: 1 2 3 4 5 6 7 8 9 1 0 1 1 1 2 1 3 1 4 sic (odco { wth cnia) cs AC ae B: isrce; ntuos / psadrt * * as ieo / cs DF ae E: ituos nrce; bek ra; cs XZ ae Y: ituos nrce; bek ra; dfut eal: ituos nrce; bek ra; }
?

Toda vez que um case no inclui uma instruo break, adicione um comentrio onde a instruo break seria. Isto mostrado no exemplo de cdigo anterior. Cada instruo switch deve incluir um default. O break no default redundante, mas evita que um erro fallthrough ocorre se mais tarde um outro case for adicionado. 7.9 Expresses try-catch O bloco de try-catch deve seguir o seguinte formato:
w w f l vi j endes. com / bl g/ 2012/ 02/ 09/ boas- pr at i as- em - j va- gui - def i i i o/ w . a om o c a a nt v 9/ 18

19/ 10/ 12

Boas Pr t i as em Java G ui D i i i o c a ef nt v

1 2 3 4 5

ty{ r isrce; ntuos }cth(xetoCase { ac Ecpinls ) isrce; ntuos }

A instruo try catch-tambm pode ser seguida por, finally, que executado independentemente de o bloco try ser executado com xito. 1 2 3 4 5 6 7 ty{ r isrce; ntuos }cth(xetoCase { ac Ecpinls ) isrce; ntuos }fnly{ ial isrce; ntuos }
?

8 Espaos em Branco
8.1 Linhas em Branco As linhas em branco melhoram a legibilidade organizando sees de cdigo que so logicamente relacionadas. Duas linhas em branco devem ser sempre utilizados nas seguintes circunstncias: Entre sees de um cdigo fonte; Entre as definies de Classe e Interface. Uma linha em branco deve ser sempre utilizada nas seguintes circunstncias: Entre mtodos; Entre as variveis locais e a primeira instruo de um mtodo; Antes de um bloco de comentrio ou de um comentrio de linha nica; Entre sees lgicas de um mtodo para facilitar a leitura. 8.2 Espaos Espaos devem ser usados nas seguintes circunstncias: Uma palavra chave seguida de parnteses deve ser separada por uma espao 1 2 3 wie(re { hl tu) .. . }
?

Note-se que um espao em branco no deve ser usado entre um nome de mtodo e da sua abertura de parnteses. Isto ajuda a distinguir palavras-chave de chamadas de mtodo. O espao deve aparecer aps vrgulas em uma lista de argumentos; Todos os operadores binrios, exceto. devem ser separadas de seus operandos por espaos. Os espaos em branco nunca devem separar operadores unrios, como incremento (+ +) e decremento
w w f l vi j endes. com / bl g/ 2012/ 02/ 09/ boas- pr at i as- em - j va- gui - def i i i o/ w . a om o c a a nt v 10/ 18

19/ 10/ 12

Boas Pr t i as em Java G ui D i i i o c a ef nt v

(-) de seus operandos. 1 2 3 4 5 6 7 a+ c+d = ; a=( +b /( *d; a ) c ) wie(+ =s+ { hl d+ +) n+ +; } pitie"aah "+tmno+"n) rnSz(tmno aah \"; Expresses em um for devem ser separadas por espao 1 fr(xr;ep2 ep3 o ep1 xr; xr) Casts devem ser sempre seguidos por um espao em branco 1 2 mueoo(ye au,(bet x; eMtd(bt) Nm Ojc) ) mueoo(n)(p+5,(it ( +3)+1; eMtd(it c ) (n) i ) )
? ? ?

9 Convenes de Nomes
As convenes de nomenclatura tornam os programas mais compreensveis, tornando-os mais fceis de ler. Eles podem tambm fornecer informao sobre a funo do identificador, por exemplo, quer se trate de um pacote, constante, ou de classe que pode ser til na compreenso do cdigo. 9.1 Pacotes O prefixo do nome do pacote original sempre escrito em letras minsculas todo-ASCII e deve ser um dos nomes de domnio de nvel superior, atualmente com, edu, gov, mil, net, org, ou um dos cdigos de duas letras identificando os pases, tal como especificado na norma ISO 3166, 1981. Componentes subseqentes do nome do pacote varia de acordo com uma organizao prprias convenes de nomenclatura internos. Tais convenes podem especificar que certos componentes do nome do diretrio tm diviso, departamento, projeto, mquina, ou nomes de login. Ex: br.com.flaviojmendes 9.2 Classes Os nomes de classe devem ser substantivos, em maisculas e minsculas com a primeira letra de cada palavra interna em maiscula. Tente manter seus nomes de classe simples e descritivos. Evite siglas e abreviaturas (a menos que a sigla seja muito mais usada que a forma longa, como URL ou HTML). Ex: class Controle; class Testador; 9.3 Interfaces
w w f l vi j endes. com / bl g/ 2012/ 02/ 09/ boas- pr at i as- em - j va- gui - def i i i o/ w . a om o c a a nt v 11/ 18

19/ 10/ 12

Boas Pr t i as em Java G ui D i i i o c a ef nt v

Nomes de interface devem ser capitalizados como nomes de classes. Ex: interface Armazenamento; 9.4 Mtodos Mtodos devem ser verbos, em maisculas e minsculas coma letra minscula em primeiro lugar, e com a primeira letra de cada palavra interna em maiscula. Ex: visitarFlavioMendes(); comentarPosts(); 9.5 Variveis Exceto para as variveis , todas as instncias, constantes, classes esto em maisculas e minsculas com uma letra minscula em primeiro lugar. Palavras internas comeam com letras maisculas. Os nomes de variveis no deve comear com underscore _ ou sinal de dlar $ , mesmo que ambos sejam permitidos. Os nomes de variveis devem ser curtos, mas significativos. A escolha de um nome da varivel deve ser mnemnico, isto , concebido para indicar ao observador casual a inteno da sua utilizao. Variveis de apenas uma letra devem ser evitadas, exceto para variveis temporrias descartveisOs nomes . comuns para variveis temporrias so i, j, k, m, n e para inteiros, c, d, e para caracteres. Ex: 1 2 3 it n ca hr fot la i ; c ; dsacaoia; itniNmnl
?

9.6 Constantes Os nomes de constantes de classes e de constantes ANSIdeve ser todo em letras maisculas com palavras separadas por sublinhados (_). (Constantes ANSI devem ser evitadas, para facilidade de depurao.) Ex: 1 2 3 4 5 sai fnlitTMNOMXM =4 ttc ia n AAH_AIO ; sai fnlitPS_AIO=99 ttc ia n EOMXM 9; sai fnlitCU=1 ttc ia n P ;
?

10 Prticas de Programao
10.1 - Fornecendo acesso a variveis instncia e de classe de

w w f l vi j endes. com / bl g/ 2012/ 02/ 09/ boas- pr at i as- em - j va- gui - def i i i o/ w . a om o c a a nt v

12/ 18

19/ 10/ 12

Boas Pr t i as em Java G ui D i i i o c a ef nt v

Apenas deixe uma varivel ou classe pblicas se tiver um bom motivo para isso. 10.2 - Referindo-se a variveis e mtodos de classe Evite o uso de um objeto para acessar uma classe (esttica) ou mtodo. Use um nome de classe em seu lugar. Por exemplo: 1 2 3 mtd(; eoo) Cas.eoo) lsemtd(; ojtCas.eoo) beolsemtd(; /O /K /O /K /EIE /VT!
?

10.3 Constantes Constantes numricas (literais) no devem ser codificadas diretamente, exceto para -1, 0 e 1, que pode aparecer em um loop for como os valores do contador. 10.4 Atribuies de Variveis Evite atribuir o mesmo valor a diversas variveis uma nica instruo. difcil de ler. Exemplo: em 1 atr1=atr2=10 / EIE lua lua 7; / VT!
?

No use o operador de atribuio em um lugar onde ele pode ser facilmente confundido com o operador de igualdade. Exemplo: 1 2 3 i (+ =d+ { f c+ +) .. . } / NOFZRIS! / AE SO
?

Dever ser assim: 1 2 3 i (c+=d+ ! 0 { f (+ +) = ) .. . }


?

No utilize atribuies incorporadas em uma tentativa de melhorar o desempenho de tempo de execuo. Este o trabalho do compilador. Exemplo: 1 d=( =b+c +r a ) ; / EIE / VT!
?

Deve ser assim: 1 2 a=b+c ; d=a+r ;


?

10.5 Prticas Diversas


10.5.1 Parnteses

geralmente uma boa idia usar parnteses em expressesque envolvam operadores mistos para evitar problemas de precedncia de operadores. Mesmo se o operador precedenteparece claro para voc, pode no ser para os outros, voc no deve presumir que outros programadores sabem precedncia, assim
w w f l vi j endes. com / bl g/ 2012/ 02/ 09/ boas- pr at i as- em - j va- gui - def i i i o/ w . a om o c a a nt v

como voc.

13/ 18

19/ 10/ 12

Boas Pr t i as em Java G ui D i i i o c a ef nt v

como voc. 1 2 i ( = b& c= d f a = & = ) / EIE / VT! i (a= b & ( = d)/ CRO f ( = ) & c = ) / ET
?

10.5.2 Retorno de Valores

Tente fazer com que a estrutura do seu programa decorresponda inteno. Exemplo: 1 2 3 4 5 6 7 i ( f epesoolaa { xrsaBoen) rtr tu; eun re }es { le rtr fle eun as; }
?

Deve ser escrito assim 1 rtr epesoolaa eun xrsaBoen;


?

Similarmente, 1 2 3 4 i (odco { f cnia) rtr x eun ; } rtr y eun ;


?

deve ser escrito assim 1 rtr (odco?x:y; eun cnia )


?

10.5.3 Comentrios Especiais

Use XXX em um comentrio para sinalizar algo que errado, mas funciona. Use FIXME para marcar algo que errado e no funciona. Espero comentrios de como essa documentao pode t-los ajudado!! At a prxima!!! Fonte (http://www.oracle.com/technetwork/java/javase/documentation) Java - Como Programar - 8 Ed. 2010
R$215,10
Saraiva.com .br

8 Comments

1. Fernando Franzini 9 de Fevereiro de 2012


w w f l vi j endes. com / bl g/ 2012/ 02/ 09/ boas- pr at i as- em - j va- gui - def i i i o/ w . a om o c a a nt v 14/ 18

19/ 10/ 12

Boas Pr t i as em Java G ui D i i i o c a ef nt v

Pois , para vc ver. Existe um empresas que no contratem gente para estragar o codigo da soluo. A primeira coisa que eu pergunto para alguem que se diz programador java se ele sabe a conveno de cdigo.

2. Flvio J. Mendes 9 de Fevereiro de 2012 Pois Fernando, Infelizmente muitas empresas no valorizam esse tipo de conhecimento. Muitos gerentes inclusive consideram perda de tempo documentao e padronizao. algo que temos que mudar!

3. Maurcio Faustino 13 de Fevereiro de 2012 timo post Flvio, vou recomendar a leitura deste para alguns colegas (Daniel)!

4. Flvio J. Mendes 13 de Fevereiro de 2012 O pessoal precisa mesmo ler isso! Aquela poca era uma baguna s os cdigos!

5. Felipe Marinho 13 de Fevereiro de 2012 Muito bom o seu post Flavio. Parabens

6. luyz 27 de Maro de 2012 Otimo post, so dicas simples na maioria, mas que a maioria no tem o hbito nem costume de utilizar, sem que comeo a escrever algo, tento manter esses padres se no nem eu mesmo me acho ao reler um cdigo depois de um tempo.

w w f l vi j endes. com / bl g/ 2012/ 02/ 09/ boas- pr at i as- em - j va- gui - def i i i o/ w . a om o c a a nt v

15/ 18

19/ 10/ 12

Boas Pr t i as em Java G ui D i i i o c a ef nt v

Abraos e At +

7. Cleo Hickmann Junior 15 de Junho de 2012 Muito bom o post, Flvio. Sou programador Delphi mas pretendo estudar e me especializar em Java para abrir os horizontes. As boas prticas de programao incluindo padronizao de cdigo devem ser sempre seguidas seja qual for a linguagem utilizada. Pretendo usar teu blog como referncia daqui pra diante. Parabns pelo timo trabalho. Abrao.

8. sandrielle 28 de Agosto de 2012 eu achei muito interesante

Leave a Reply
O seu endereo de email no ser publicado. Campos obrigatrios marcados com * Nome * Email * Website

Comentrio Pode usar estas etiquetas HTML e atributos: < h e = " t t e " > < b r t t e " > < c o y a rf" il=" ab il=" arnm
tte"><><lcqoect=" <ie <oe <e dttm=" <m <>< il=" b bokut ie"> ct> cd> dl aeie"> e> i q ct=" <tie <tog ie"> srk> srn> Submit Comment

Quero ser notificado de comentrios adicionais por email. Quero ser notificado de novos artigos por email.
w w f l vi j endes. com / bl g/ 2012/ 02/ 09/ boas- pr at i as- em - j va- gui - def i i i o/ w . a om o c a a nt v 16/ 18

19/ 10/ 12

Boas Pr t i as em Java G ui D i i i o c a ef nt v

Mais Lidos
Tutorial Implementando o Primeiro WebService com Java Boas Prticas em Java Guia Definitivo Tutorial Adicionar Biblioteca no Eclipse Tutorial Implementando a Primeira Aplicao Android Lendo e Escrevendo Arquivos PDF com Java

Ads

TDC 2012 Goinia

Facebook
Flvio Mendes no Facebook
Curtir 75 pessoas curtiram Flvio Mendes.

G uilherme

Ricardo

Diogo

Laura Rosa Ribeiro

M ichael

Wally son

P edro C ezar

Thiago

P lug-in social do F acebook

- Facebook Members WordPress Plugin

w w f l vi j endes. com / bl g/ 2012/ 02/ 09/ boas- pr at i as- em - j va- gui - def i i i o/ w . a om o c a a nt v

17/ 18

19/ 10/ 12

Boas Pr t i as em Java G ui D i i i o c a ef nt v

Doaes
Ajude o blog a se desenvolver! Doe qualquer quantia.

Tags
About android api app arquitetura arraylist

biblioteca boas praticas Certificao conceito configuracao

creational dica Dicas duvida eclipse encapsulamento eportao excel exercicio flisol hashmap jar Java java ee
java web jsp linkedlist listas mapas servlet

padrao de projeto palestra performance plugins Programao rapidas senha

structural

swing thread token tomcat tutorial web

Categorias
About Conceitos Dicas Dvidas Eclipse Padres de Projeto Tutoriais Contedo por Flvio Mendes | Powered by Wordpress

w w f l vi j endes. com / bl g/ 2012/ 02/ 09/ boas- pr at i as- em - j va- gui - def i i i o/ w . a om o c a a nt v

18/ 18

Vous aimerez peut-être aussi