[quote=ViniGodoy]Artigo muito apropriado no coding horror:
http://blog.codinghorror.com/new-programming-jargon/[/quote]
Só não entendi o porquê do 21, ou então está mal colocado:
[quote]
21. Smurf Naming Convention
SmurfAccountView -> SmurfAccountDTO -> SmurfAccountController[/quote]
Acho uma nomenclatura válida. O ruim é quando fazem:
public class Cliente{
private String clienteNome;
private String clienteCPF;
}
Acho que isso tira sarro da programação da Apple. Pq o prefixo no Objective-C é geralmente o nome do seu projeto ou módulo (já que lá não existem pacotes). Aí os prefixos ficam toscos.
A string tem que ser diferente de vazio e igual a outra coisa?
if (operador != null && !operador.equals("") && operador.equalsIgnoreCase("ou"))
Basta:
if ("ou".equalsIgnoreCase(operador))
e o meu arquiteto que eu perguntando sobre como recuperar os relacionamentos na minha entidade em cascata ele me solta: no jpql deve ter um FULL FETCH.
certa vez esse mesmo arquiteto escreveu a seguinte linha de código:
if("null".equals(object))
ahuehuehuahue
Um código que encontro com frequência neste sistema é algo do tipo:
List<Classe> lista = new ArrayList<Classe>(0);
Qual seria a possível vantagem de criar uma coleção com tamanho zero? Só consigo ver a falta de eficiência ao adicionar elementos.
Expremer alguns bytes de memória enquanto um ArrayList não é usado? Se a restrição de memória for assim tão absurda, talvez o ideal seria usar um array primitivo.
Pois é… e pior que, em vários casos, há logo abaixo um laço adicionando elementos.
Lampejo de inteligência:
if (lista == null) {
request.setAttribute("listaEstabelecimentos", lista);
} else {
request.setAttribute("listaEstabelecimentos", lista);
request.setAttribute("listaEstabelecimentosCount", lista.size());
}
Clareza de código e separação de statements (declaração, depois atribuição):
List<InclusaoEstacao> lista;
lista = systemFacade.buscaListInclusaoEstacao();
Temos um campeão:
while((pergunta = quiz.proximaPergunta()) != null) {
if (pergunta == null) {
break;
}
}
[quote=danieldestro]Temos um campeão:
while((pergunta = quiz.proximaPergunta()) != null) {
if (pergunta == null) {
break;
}
}
[/quote]
Inception…
[quote=danieldestro]Temos um campeão:
while((pergunta = quiz.proximaPergunta()) != null) {
if (pergunta == null) {
break;
}
}
[/quote]
Mas o código é só isso mesmo? Mais nada dentro do laço?
[quote=danieldestro]Temos um campeão:
while((pergunta = quiz.proximaPergunta()) != null) {
if (pergunta == null) {
break;
}
}
[/quote]
Só faltou o resto do código estar num else. Programação extremamente precavida.
Falando em programação precavida, encontro com frequência checagens de null em objetos instanciados ou dereferenciados poucas linhas acima.
Não sei se cheguei a postar este códido de um sistema que trabalhei há um tempo:
[code]/**
- Método que converte uma String no padrão #,##0.00 para um double
*/
public static double stringToDouble(String pString) {
if (stringVazia(pString)) {
return Double.NEGATIVE_INFINITY;
}
String aux = pString;
String[] vecPonto = stringToArray(pString, ".", true);
String[] vecVirgula = stringToArray(pString, ",", true);
if (vecVirgula.length > 1 && vecPonto.length > 1) {
if (vecVirgula.length == vecPonto.length) {
if (vecVirgula[0].length() < vecPonto[0].length()) {
aux = trocaSubString(aux, ",", "");
} else {
aux = trocaSubString(aux, ".", "");
aux = trocaSubString(aux, ",", ".");
}
} else if (vecVirgula.length > vecPonto.length) {
aux = trocaSubString(aux, ",", "");
} else {
aux = trocaSubString(aux, ".", "");
aux = trocaSubString(aux, ",", ".");
}
} else if (vecVirgula.length > 2 || vecPonto.length > 2) {
aux = trocaSubString(aux, ".", "");
aux = trocaSubString(aux, ",", "");
} else if (vecVirgula.length == 2) {
aux = trocaSubString(aux, ",", ".");
}
return (new Double(aux)).doubleValue();
}[/code]
Detalhe que nem incluí os métodos trocaSubString, stringVazia e stringToArray.
Até escrevi um post no meu blog sobre essa maravilha. O infinito negativo caso a string seja vazia é quase um chute nos testículos.
[code]
public class Disponibilidade {
// outros atributos
private List diaMesList = new ArrayList(0);
// Vários métodos que não usam essa lista
public List<String> getDiaMesList() {
if (diaMesList == null || diaMesList.isEmpty()) {
diaMesList = new ArrayList<String>(0);
}
if (diaMes != null) {
diaMesList = new ArrayList<String>(0);
diaMesList.add(diaMes.toString());
}
return diaMesList;
}
public void setDiaMesList(List<String> diaMesList) {
this.diaMesList = diaMesList;
}
}[/code]
Em um lugar que eu já trabalhei tinha um desses.
public Date yyyymmdd2ddmmyyyy(String data)
Como verificar uma String
if (value.getName().toUpperCase().equals("billingId")
|| value.getName().toUpperCase()
.equals("BILLINGID")) {
if (!getCdrmedUsageTypeRegister().validateUsageType(
value.getValue())) {
result.registerError(data,
ERROR_VALUE_BILLINGID_IS_INVALID);
}
Não era mais fácil:
if (value.getName().equalsIgnoreCase("billingid") {
}
doc.setModelo(cabecalho == null ? null : cabecalho);