No comments!
if( preco == null && preco > 100.0 ) {
// ...
}
No comments!
if( preco == null && preco > 100.0 ) {
// ...
}
Separação de camadas, MVC… são só conceitos:
[code]// package e imports
public class AlgumaAction extends Action {
public void execute( … ) {
UmDelegate delega = new UmDelegate();
delega.processarAlgo( request );
// …
}
}[/code]
[code]// package e imports
public class UmDelegate {
private SuperEJB ejb;
public void processarAlgo( HttpServletRequest req ) {
ejb.processarAlgo( req );
}
}[/code]
[code]// package e imports
public class SuperEJBBean implements SuperEJB, SuperEJBLocal {
public void processarAlgo( HttpServletRequest req ) {
String nome = req.getParameter(“nome”);
String cpf = req.getParameter(“cpf”);
// … mais código desastroso aqui …
}
}[/code]
O tópico tá grande demais, por isso não li tudo. Me desculpem se alguém já postou alguma pérola parecida com a seguinte:
...
setCodEmpresa(getCodEmpresa());
setNomeCliente(getNomeCliente());
...
E, não. Os getters e setters não faziam nada além do que setar e recuperar o valor dos campos da classe… :lol:
[quote=danieldestro]No comments!
if( preco == null && preco > 100.0 ) {
// ...
}
[/quote]
Isso ocorre até nas melhores famílias. O FindBugs achou uns 4 ou 5 erros desse tipo no JDK, outros tantos no Tomcat etc.
[quote=danieldestro]Separação de camadas, MVC… são só conceitos:
[code]// package e imports
public class AlgumaAction extends Action {
public void execute( … ) {
UmDelegate delega = new UmDelegate();
delega.processarAlgo( request );
// …
}
}[/code]
[code]// package e imports
public class UmDelegate {
private SuperEJB ejb;
public void processarAlgo( HttpServletRequest req ) {
ejb.processarAlgo( req );
}
}[/code]
[code]// package e imports
public class SuperEJBBean implements SuperEJB, SuperEJBLocal {
public void processarAlgo( HttpServletRequest req ) {
String nome = req.getParameter(“nome”);
String cpf = req.getParameter(“cpf”);
// … mais código desastroso aqui …
}
}[/code]
[/quote]
Huahuahua. Estou tendo que dar manutenção em um sistema com essas características (só que com swing). Há componentes swing misturados à regra de negócio.
Hehe, eu também tive que fazer isso. O mais legal era que para instanciar uma transação com o mainframe eu precisava do JPanel da tela corrente.
O motivo era muito bom: eles ficavam pegando o componente pai até chegar ao JFrame da aplicação para poder pegar a sessão do usuário, que ficava guardada nele…
Acho que é por isso (e por outras loucuras) que lá todos dizem que Java é um lixo e só serve pra mostrar telas…
Parabéns!!!
[code]public class Ferramentas extends Date {
public java.util.Date getStorageDate() {
long millis = ((long) this.getTime() / 1000) * 1000;
this.setTime(millis);
return this;
}
public java.util.Date getSystemDate() {
return this;
}
public static Ferramentas truncateToFirstDayOfMonth(Ferramentas data) {
if (data == null) {
return null;
}
Calendar calendario = new GregorianCalendar();
calendario.setTime(data);
calendario.set(Calendar.DAY_OF_MONTH, 1);
return Ferramentas.truncateTime(new Ferramentas(calendario.getTime()));
}
//… mais código aqui
}[/code]
[quote=danieldestro]Parabéns!!!
[code]public class Ferramentas extends Date {
public java.util.Date getStorageDate() {
long millis = ((long) this.getTime() / 1000) * 1000;
this.setTime(millis);
return this;
}
public java.util.Date getSystemDate() {
return this;
}
public static Ferramentas truncateToFirstDayOfMonth(Ferramentas data) {
if (data == null) {
return null;
}
Calendar calendario = new GregorianCalendar();
calendario.setTime(data);
calendario.set(Calendar.DAY_OF_MONTH, 1);
return Ferramentas.truncateTime(new Ferramentas(calendario.getTime()));
}
//… mais código aqui
}[/code][/quote]
Daniel, as pessoas que codificaram isso aê, ainda estão na empresa?
O que você faz quando encontra isso? Re-escreve e depois notifica eles, avisa o gerente, avisa os estagiarios que fizeram isso?
Que tipo de empresa aceita isso?
Isso estava “funcionando” em produção?
Tah loco meu!
Modo de usar:
Date dtProcmIni = Ferramentas.truncateHour(new Ferramentas(dtProc));
É instantâneo…
[quote=peerless]Daniel, as pessoas que codificaram isso aê, ainda estão na empresa?
O que você faz quando encontra isso? Re-escreve e depois notifica eles, avisa o gerente, avisa os estagiarios que fizeram isso?
Que tipo de empresa aceita isso?
Isso estava “funcionando” em produção?[/quote]
Curiosamente eu sou da área de QA (qualidade).
Aquela história do “framework” pra programadores Cobol é o bicho, hein? Coisa pra se contar em volta da fogueira.
MODERADO: Por favor, evite palavrões.
[quote=danieldestro][quote=peerless]Daniel, as pessoas que codificaram isso aê, ainda estão na empresa?
O que você faz quando encontra isso? Re-escreve e depois notifica eles, avisa o gerente, avisa os estagiarios que fizeram isso?
Que tipo de empresa aceita isso?
Isso estava “funcionando” em produção?[/quote]
Curiosamente eu sou da área de QA (qualidade).[/quote]
Hahaha isso explica tudo.
Seu trabalho é divertido pacas, não?
Apesar de ser um trabalho bem sério, eu me divirto.
[quote=Jeanioz][quote=danieldestro][quote=peerless]Daniel, as pessoas que codificaram isso aê, ainda estão na empresa?
O que você faz quando encontra isso? Re-escreve e depois notifica eles, avisa o gerente, avisa os estagiarios que fizeram isso?
Que tipo de empresa aceita isso?
Isso estava “funcionando” em produção?[/quote]
Curiosamente eu sou da área de QA (qualidade) e analiso as entregas dos nossos fornecedores. Isso tudo vai em um relatório.[/quote]
Hahaha isso explica tudo.
Seu trabalho é divertido pacas, não? [/quote]
Ele não deve ter fé nenhuma na humanidade, com um trabalho desses…
O Daniel não tem fé nos programadores que fazem as barbaridades que ele vê…o resto da humanidade não tem culpa! :twisted: :lol:
ate mais…
[quote=danieldestro]
Curiosamente eu sou da área de QA (qualidade) e analiso as entregas dos nossos fornecedores. Isso tudo vai em um relatório.[/quote]
Po, você passa o dia inteiro só olhando código fonte dos outros e martelando o dedo do cara que fez o código sem piedade alguma?
Estou dando manutenção em um sistema que tem suas JSP’s coisas do tipo:
[code]
<%
String qs = request.getQueryString();
if (qs != null){
if(qs.equalsIgnoreCase(“Erro”)){
%>
<%
}
}
}else {
%>
… resto do html[/code]
[quote=danieldestro][quote=peerless]Daniel, as pessoas que codificaram isso aê, ainda estão na empresa?
O que você faz quando encontra isso? Re-escreve e depois notifica eles, avisa o gerente, avisa os estagiarios que fizeram isso?
Que tipo de empresa aceita isso?
Isso estava “funcionando” em produção?[/quote]
Curiosamente eu sou da área de QA (qualidade) e analiso as entregas dos nossos fornecedores. Isso tudo vai em um relatório.[/quote]
Seus colegas (e empresa) sabe que você os sacaneia no GUJ? :twisted: :mrgreen:
Putz, vendo essa classe Ferramentas, dou graças a Deus que a classe String é final. Imagina o tipo de bosta que alguém poderia fazer herdando de java.lang.String? Se java.util.Date fosse final, esse tipo de merda não ocorreria (pelo menos não desse jeito).