EVGD: Códigos Toscos

Gentilmente cedido por um amigo:

request.setAttribute(SuspenderEntregaDelegate.SUSPENDER_ENTREGA, request.getParameter(SuspenderEntregaDelegate.SUSPENDER_ENTREGA));

[quote=danieldestro]Gentilmente cedido por um amigo:

request.setAttribute(SuspenderEntregaDelegate.SUSPENDER_ENTREGA, request.getParameter(SuspenderEntregaDelegate.SUSPENDER_ENTREGA));

Já vi bastante desse tipo de coisa.
Tende a ser comum quando você abusa de <jsp:include > e semelhantes.

Fazendo refactory aqui achei isso:
o obj abaixo é um Object[]:obj[j + 1] = new BigDecimal(((BigDecimal) obj[j]).toString());
Só precisava de:

obj[j + 1] = obj[j];

Outro:

valor.add(((BigDecimal) obj[j-1]).multiply(new BigDecimal(-1)));

em vez de:valor.subtract((BigDecimal) obj[j-1]);
Como disse um amigo, esse aí é um verdadeiro alquimista.
Eu vou dizer que foi eu pra não dar briga aqui na empresa, ahuahuauhah. Por outro lado, tenho minhas próprias pérolas, quando achar ou lembrar posto.

[quote=ozix]Só precisava de:

obj[j + 1] = obj[j];

[/quote]
Eu ia falar que da nova maneira ele não estaria criando um novo objeto, talvez desse algum problema, mas como BigDecimals são imutáveis, então pode compartilhá-los à vontade.

[quote=victorwss][quote=danieldestro]Gentilmente cedido por um amigo:

request.setAttribute(SuspenderEntregaDelegate.SUSPENDER_ENTREGA, request.getParameter(SuspenderEntregaDelegate.SUSPENDER_ENTREGA));

Já vi bastante desse tipo de coisa.
Tende a ser comum quando você abusa de <jsp:include > e semelhantes.[/quote]

É bem comum também qdo precisa passar objetos entre séries de páginas, mas não tem como ou não sabe usar o escopo apropriado.

request.setAttribute("existeMaisDeUmCodigo", "existeMaisDeUmCodigo"); request.setAttribute("emailComMaisDeUmCodigo", form.getEmailPessoa().trim().toUpperCase()); request.setAttribute("codigosDoUsuario", codPessoa);

Pra que Struts? E o legal foi a primeira linha.

Brilhante! Assim podemos ter certeza de que existe mais de um código. :twisted:

conheço um programador que gosta de nomes bem intuitivos. É SERIO MESMO NÃO É ZUAÇÃO

  if (loginBlz) {
     blzPodePassar = true;
     sairAtualizandoMensagemQueFoiMostradaAUmTempoAtras();
  }

[quote=arthurminarini]conheço um programador que gosta de nomes bem intuitivos. É SERIO MESMO NÃO É ZUAÇÃO

if (loginBlz) { blzPodePassar = true; sairAtualizandoMensagemQueFoiMostradaAUmTempoAtras(); } [/quote]

Corrigido:

  if (loginBlz) {
     blzPodePassar = true;
     sairAtualizandoMensagemQueFoiMostradaHaUmTempoAtras();
  }

Pior se ele foi um atendente de telemarketing antes.

boolean estaraEstandoFazendoCompraPosterior = true;

[quote=danieldestro]Pior se ele foi um atendente de telemarketing antes.

boolean estaraEstandoFazendoCompraPosterior = true;[/quote]Garanto que esse aí fala “vou ir”

E se quiser viver deve mantê-lo muiiiiito em segredo! :smiley: :stuck_out_tongue:
[/quote]

Ufa, melhor eu ficar quieto então rsrs

Já que reviveram esta thread, e por acaso acabo de me deparar com algo sobrenatural rs
segue ai:

var lIQtdIntervaloDiasPermitido = pIsAnoBissexto ? parseInt(90) : parseInt(90);

Interessante não?
O que seria dos amantes de refactory como eu, senão houvesse este tipo de código? hehehe

:smiley: Fico feliz !!

Eu tinha visot uma pérola mosntra esses tempos… procurei o tópico e não achei se eu ver denovo eu posto.

Enquanto isso na minha empresa…

for (int i = 0; i < 100; ++i) {
    try {
        recurso.close();
    } catch (Throwable e) {}
}

Alguém queria ter certeza que o recurso iria ser fechado. :slight_smile:
Se eu colocar o for até 50, será que melhora a performance?

Para mim uma verdadeira obra de arte:

public int qdadePorPessoaPorEventoPorSessao(Timestamp sessaoDate) {
	sessaoDate = updateDataEventoIfUniqueEvento(sessaoDate);
	int count = 0;
	try {
		for (SessaoPessoa sessaoPessoa : EventoBusiness.getInstance().getSessaoPessoaByEvento(new Integer(codigoEvento))){
			if (sessaoPessoa.getPk().getCodPessoa().intValue()== new Integer(codigoAssinatura).intValue() &&
				sessaoPessoa.getPk().getCodEvento().compareTo(new Integer(codigoEvento))==0 &&
				sessaoPessoa.getPk().getDatSessao().compareTo(sessaoDate) ==0){
				count++;
			}
		}
		return new Integer(count);
	} catch(Exception e){
		e.printStackTrace();
	}
	return new Integer(0);
}

Esses dias vi um conjunto grande de códigos toscos, um seguido do outro.
E o pior, o local onde estavam escritos chamava-se “Prova de Certificação Java”.

Ou alguém discorda que os códigos da prova de certificação não são toscos? Sinceramente, se alguém viesse com código daquele e fosse meu funcionário, acho que demitia na hora. :lol:

Eu escrevo propositadamente vários códigos toscos aqui no GUJ, só para servirem como um exemplo didático.

Em um programa decente você não usaria

public static void main (String[] args) throws Exception

mas eu normalmente mostro assim para não deixar o código cheio de “try/catch”.

Em código de produção, obviamente, ponho os tratamentos adequados.

[quote=danieldestro]Pior se ele foi um atendente de telemarketing antes.

boolean estaraEstandoFazendoCompraPosterior = true;

Poxa… esse ai chutou o balde mesmo!

if(tipo.equalsIgnoreCase("1")){
	// ...
}

Muitas vezes me confundi com os meus 1’s minúsculos e maiúsculos.

Detalhe, o nome da classe que tem esse trecho de código é DirfServilet… com ‘i’ em Servlet!