Regras de Programação

Oi Gente
Bom, primeiramente, não encontrei EXATAMENTE o que eu queria aqui no GUJ
A minha empresa está migrando lentamente para o Java. Mas estamos totalmente sem padrões de programação. Isso não quer dizer que não iremos utilizar OO, MVC e tudo mais.

O que eu queria mesmo é saber algumas regras de boa conduta, para um código mais limpo. Por exemplo, eu trabalhava para um Banco X anteriormente e lá eles tinham um “Manual do Desenvolvedor”.
O nosso trabalho era baseado nesse manual, e lá existiam algumas regras interessantes, como:

[list]Nunca redimensionar um array dentro de um loop;[/list]
[list]Todo nome de variável deve começar pelo seu tipo (strNome, intIdade);[/list]
[list]Criar sessões como último recurso;[/list]
[list]Toda página criada deve conter o cabeçalho padrão;[/list]

E por aí vai… eu provavelmente é que terei que organizar isso, e estou sem idéias, só trabalhei com VB e PL/SQL. Vocês tem algumas regras de boas práticas de programação onde trabalham? Isso até poderia gerar uma boa discussão aqui.

:arrow: Todo nome de variável NÃO deve começar pelo seu tipo (strNome -> nome, intIdade -> idade);

Oi amigo!
Estou numa situação semelhante a sua!
Um livro que me sugeriram de boas práticas de OO é o Effective Java:
http://java.sun.com/docs/books/effective/

Tb gostaria saber dos amigos javeiros o que sugerem!
Obrigado!

[quote=balarini]Todo nome de variável deve começar pelo seu tipo (strNome, intIdade);[/quote]Notação húngara não, por favor!! Faço das palavras do Daniel as minhas.

Balarini,

Existem convenções de codificação. veja em

http://java.sun.com/docs/codeconv/index.html

Boa Sorte,

Márcio

http://java.sun.com/docs/codeconv/html/CodeConvTOC.doc.html

http://java.sun.com/docs/codeconv/html/CodeConvTOC.doc.html

Java Convention

:smiley: :smiley: :smiley: :smiley: :smiley:

Calma gente!

O que eu queria saber é quais regras vocês costumam utilizar… então todo mundo segue a risca as convenções da Sun?

Era melhor usar isso do que usar as convenções do meu trabalho antigo:
v_aux
v_contador
aff… nem quero me lembrar disso

E dicas de performance?

Micro$oft Convention (cópia do Java Convention) :lol:

Dicas de performance?

Poderia ser mais expecifico?
Ficou um tanto generica essa pergunta…
Performance em relação a que ?

[quote=gui]Ficou um tanto generica essa pergunta…
Performance em relação a que ?[/quote]
É, acho que não fui muito específico
É que na verdade, estou fazendo estas perguntas baseado no “Manual do Desenvolvedor” que eu tinha que utilizar, então talvez as minhas questões sejam um pouco limitadas

Performance e desempenho do Java:

[list]Quanto ao acesso a banco de dados (Oracle 10g)[/list]
[list]Quanto ao resultset (acho que alguém aqui tinha falado algo a respeito de nunca usar HashTable, não lembro o post)[/list]
[list]Quanto ao uso de sessões[/list]
[list]Redimensionamento de arrays/Concatenações de strings dentro de um loop[/list]
[list]Quanto ao uso de Buffer[/list]
[list]Quanto ao nível que vocês costuman utilizar o Garbage Collector(é um projeto inteiramente WEB)[/list]

Existe alguma configuração do Tomcat que poderia me ajudar nesse sentido? Não penso somente em rapidez, penso também em estabilidade.

[quote=gui][quote=balarini]

Era melhor usar isso do que usar as convenções do meu trabalho antigo:
v_aux
v_contador
aff… nem quero me lembrar disso

E dicas de performance?
[/quote]

Dicas de performance?

Poderia ser mais expecifico?
Ficou um tanto generica essa pergunta…
Performance em relação a que ?[/quote]

Bom uma coisa são convenções outra totalmente diferente são práticas de programação para obtenção de performance por exemplo.

Aí com certeza vai precisar de um bom livro e ferramentas que o auxiliem a identificar pontos de melhoria - como AppPerfect.

São muitas práticas, que precisam de um conhecimento um pouco mais elevado sobre a aplicação / plataforma.

Exemplo, utilizar ArrayList ao invés de Vector, pois vector é uma collection sincronizada e onera a performance. Entretanto, em alguns casos ela vai ser útil e deverá ser utilizada.

Essa menção é só pra exemplificar que além das práticas, você tem que conhecer a arquitetura básica da aplicação do seu negócio, para saber onde empregar tais práticas.

Cara, isso que você está perguntando é muito abrangente… não dá para responder assim não.
E você que falemos de performance em comparação a que?

Amigo, adquira o mais rapido possivel o livro Effective Java, do Joshua Bloch. Nele estao a maioria das respostas para as suas duvidas, o resto vem com o tempo.

Esse livro eh indispensavel para qualquer programador Java.

Uma regra pra vcs:

evitem usar ‘variáveis’.

utilizem atributos e comportamentos em seus objetos…

leia alguns artigos do philip calcado para entender isto…

Acho q no portal java tem, ou no proprio blog dele: fragmental.

Att,


ao Sr. Shoes:
Espero que não se importe em citá-lo!

[quote=rodrigow]Uma regra pra vcs:

evitem usar ‘variáveis’.[/quote]

De onde vc tirou isso?

[quote=cv][quote=rodrigow]Uma regra pra vcs:

evitem usar ‘variáveis’.[/quote]

De onde vc tirou isso?[/quote]

Acho que o rodrigow se confundiu. Seria isso aqui?

//determinada regra do negocio determina que maioridade = 21
MAIORIDADE = 21;
//em algum metodo:
if(this.idade > MAIORIDADE)
   tal
else
   tal outro

//é muito comum encontrar o seguinte:
if(this.idade > 21)//o que é esse 21?
   tal
else
   tal outro

Leia o Effective Java, se baseie nas convenções de código da Sun e leia os artigos do Brian Goetz com recomendações sobre código. Quanto a performance, eu sou partidário da idéia de desenvolver a aplicação pensando em qualidade (do código além do produto final) e depois usar um profiler para otimizar áreas críticas.

Olha …
Boas praticas de programação não é diretamente ligago a linguagem de programação. Logicamente é sempre importantíssimo conhecer a linguagem e saber como os elementos funcionam para saber o que usar ou não (e quando) de uma linguagem.

Boas praticas dependem do seu objetivo.

Seu sistema vai se integrar com outros ?
Voce processa dados de forma batch ?
Qual o tamanho do seu sistema?
Qual a complexidade ?
Quantos dervidores de banco voce tem ?
Quantos servidores Web voce tem ?
etc…

vou dar um exemplo claro disso agora:

EX: Se voce tem muita disponibilidade do seu servidor Web e o seu Servidor de Banco é ja tem problemas de performance ou voce ja preve este problema, tente utilizar menos os recursos do banco trazendo parte do trabalho para o seu servidor de aplicações, desta forma voce consegue um desempenho melhor nas mesmas condições.

Isto que falei não esta ligado diretamente à linguagem… é uma técnica que se pode utilizar independente da linguagem.

Comentarios, variáveis com nomes significativos, etc… tem várias regrinhas que são uteis e não necessariamente estão ligadas às convenções de uma linguagem.

Mas como dica, siga a convenção padrão da Sun, ela é amplamente e largamente utilizada em java.
Em relação às boas praticas… cada caso é um caso… por isso existem diversos padrões como no link a baixo, mas existem outros padrões que você aprende com a experiência de acordo com a necessidade.
http://pt.wikipedia.org/wiki/Padr%C3%B5es_de_projeto_de_software.

Concluindo, se o negócio é critico e/ou voce não tem domínio da linguagem nem tempo para ganhar experiência nela, recomendo contratar uma pessoa que conheça do assunto. Existem muitos consultores com capacidade e que trabalham por projetos e podem ser contratados para trabalhos em projetos ou pontuais.

Att,
Diogo Palermo Tobler