EVGD: Códigos Toscos

Podia ser pior, já vi gente fazendo consulta no BD e criando componentes swing dentro do método toString().[/quote]

Noussa. :shock: :shock: :shock:

Sei q e dificil de acreditar qdo vi este negocio eu tbm mal conseguia acreditar… mas o pior que ja vi algo assim…

Surgiu ontem, aqui no fórum:

[code] /**
* Formata um numero em String colocando zeros a esquerda conforme passado via parametro
* Recebe atributo numero e atributo CasaEsquerda qtde zero a esquerda do numero
* @return String variavel formatada com zero(s) a esquerda
*/
*/
public static String zeroEsquerda( int numero , int casaEsquerda){
String formato ="";
String resultado ="";
Integer[] i = new Integer[1];
i[0] = new Integer(numero);

  try{
		
		if (casaEsquerda == 1){
			formato="%01d";	
		}else if (casaEsquerda == 2){
			formato="%02d";	
		}else if (casaEsquerda == 3){
			formato="%03d";	
		}else if (casaEsquerda == 4){
			formato="%04d";	
		}else if (casaEsquerda == 5){
			formato="%05d";	
		}else if (casaEsquerda == 6){
			formato="%06d";	
		}else if (casaEsquerda == 7){
			formato="%07d";	
		}else if (casaEsquerda == 8){
			formato="%08d";	
		}else if (casaEsquerda == 9){
			formato="%09d";	
		}else if (casaEsquerda == 10){
			formato="%010d";	
		}
		resultado = String.format(formato,i);
	}catch(Exception e){
		e.printStackTrace();
		System.out.println("Erro na Util.zeroEsquerda = "+e);
	}
	return resultado;
}	

[/code]

Me surpreende que não usaram um switch/case nesse caso!

Correção: MATEM-NO.

kkkkkk… só pra alegrar o dia!!! :)[/quote]

Vc quiz dizer : Matem-o , certo ?
(Matem-no tb não existe.)

O Switch não é substituto do if-else.
No caso a escolha entre colocar um monte de if-else ou colocar um monte de break é um trade-off.
O break é uma instrução … digamos… não canónica que deve ser evitada se vc for purista dos pincipios de programação estruturada.
Por isso incluir um switch só deve ser considerado quando ha return imediato ( não precisa de break) ou quando ha agrupamento de
valores ( quando vários valores resultam no mesmo valor ). Fora isso o if-else é mais “purista”.

Como disse, é um trade-off. Não pode ser considerado um erro.

E seu eu passar 11 como argumento? kkkkkk

E seu eu passar 11 como argumento? kkkkkk[/quote]

Que tal passar -1? Ou talvez Integer.MAX_VALUE.

Correção: MATEM-NO.

kkkkkk… só pra alegrar o dia!!! :)[/quote]

Vc quiz dizer : Matem-o , certo ?
(Matem-no tb não existe.)[/quote]

Nossa querida língua portuguesa…

De fato, “matemlo” é espanhol, mas “matem-o” não existe.

O certo é “matem-no” embora seja esquisito.

É realmente esquisito porque você acaba tendo (se em vez de “ele” for "eles)
“matem-nos”, que é ambíguo (pode ser “matem a eles” ou “matem a nós”; depende do contexto.)

Quando 0 == INFINITO

Ontem de madrugada o pessoal queria me matar porque eu havia achado esta pérola em um programa que tive de manter:

... obj.receive (socket, buffer, 0); ...

e eu pensava que “0” seria para ler imediatamente o que estava no buffer, sem esperar. Na verdade, o fulano que escreveu o programa implementou “receive” como:

if (t == 0) t = INFINITE;
recv (...);

ou seja, 0 era para esperar indefinidamente, não para retornar imediatamente.

O ingênuo aqui trocou 0 por 5000 (para esperar no máximo 5 segundos), numa reforma (uma das múltiplas reformas que estou tendo de fazer no programa), e aí o programa parou de funcionar.
Tive de voltar o valor para 0 de novo…

Correção: MATEM-NO.

kkkkkk… só pra alegrar o dia!!! :)[/quote]

Vc quiz dizer : Matem-o , certo ?
(Matem-no tb não existe.)[/quote]

Nossa querida língua portuguesa…

De fato, “matemlo” é espanhol, mas “matem-o” não existe.

O certo é “matem-no” embora seja esquisito.

É realmente esquisito porque você acaba tendo (se em vez de “ele” for "eles)
“matem-nos”, que é ambíguo (pode ser “matem a eles” ou “matem a nós”; depende do contexto.)
[/quote]

taborda,

Você quis dizer “quis”, certo? rs

dá pra se embananar todo na hora de falar portugues. Mas matem-o não está certo não, thingol?

[]'s

[quote=thingol][quote=sergiotaborda]

Vc quiz dizer : Matem-o , certo ?
(Matem-no tb não existe.)[/quote]

Nossa querida língua portuguesa…

De fato, “matemlo” é espanhol, mas “matem-o” não existe.

O certo é “matem-no” embora seja esquisito.

É realmente esquisito porque você acaba tendo (se em vez de “ele” for "eles)
“matem-nos”, que é ambíguo (pode ser “matem a eles” ou “matem a nós”; depende do contexto.)
[/quote]

:shock: :shock: :shock: :shock: :shock: :shock: :shock: :shock:

matem-me (a mim)
matem-te (a ti)
matem-o (a ele )
matem-nos (a nós)
matem-vos (a vós)
matem-os (a eles.)

Eis com ensinar:

ensinem-me ( a mim)
ensinem-te (a ti)
ensinem-o (a ele )
ensinem-nos (a nós)
ensinem-vos (a vós)
ensinem-os (a eles.)

Thingol a sua explicação matou-me :shock: Tem algumas referencias ?
(Uma pesquisa no google não foi elucidativa)

isto aqui virou forum de portugues agora…
depois aparece o professor pasqualhe aqui no forum…

http://www.gramaticaonline.com.br/gramaticaonline.asp?menu=1&cod=85

03) Pronomes Oblíquos Átonos

Os pronomes oblíquos átonos que funcionam como objeto direto são [b]ME, TE, O, A, SE, NOS, VOS, OS, AS[/b].

Ex. Encontrei-[b]os [/b]ontem à noite.

Meu irmão quer levar-[b]me [/b]à sua cidade.

As provas, revisei-[b]as [/b]há pouco.

Obs: [b]VTD, seguido de o, a, os, as[/b]:

Verbo terminado em [b]vogal[/b]: Os pronomes não se modificam.

Verbo terminado em [b]M, ÃO [/b]ou [b]ÕE[/b]: Os pronomes se modificam para [b]no, na, nos, nas[/b].

Verbo terminado em [b]R, S [/b]ou [b]Z[/b]: Os pronomes se modificam para [b]lo, la, los, las, [/b]e as terminações desaparecem.

Ex. Revisei as provas. = Revisei-[b]as[/b].

Eles revisaram as provas. = Eles revisaram-[b]nas[/b].

Eles irão revisar as provas. = Eles irão revisá-[b]las[/b].

[quote=luistiagos]isto aqui virou forum de portugues agora…
depois aparece o professor pasqualhe aqui no forum…[/quote]

Olha só, o rei do desvio de assunto reclamando, rs. :stuck_out_tongue:

[quote=victorwss]Olha só o que eu achei, o troço está em produção:

[code]/**
*
*/

/**

  • @author

*/
public class Xxx extends Thread {
}[/code][/quote]

Voltando ao tópico…

Isso era de alguma site porno???
hehehehe

uma classe Xxx e ainda editado para proteger a identidade do autor… tudo indica que sim…

[quote=ivo costa][quote=victorwss]Olha só o que eu achei, o troço está em produção:

[code]/**
*
*/

/**

  • @author

*/
public class Xxx extends Thread {
}[/code][/quote]

Voltando ao tópico…

Isso era de alguma site porno???
hehehehe[/quote]

Não, mas o código está uma putaria completa! KKKKKKKKK

O melhor MVC que eu já vi com a mais perfeita separação de responsabilidades. Do mesmo projeto da classe Xxx:

[code] /**
* @param request
*/
private String gerenciaTela(HttpServletRequest request) throws UmaExceptionEspecificaDaAplicacao {
String operation = request.getParameter(“operation”);
// Um monte de código.

	if (operation.equals("S")) {
                    // Um pouco de código.
	} else if (operation.equals("A")) {
		// 1 linha de código.
	}

			Pedido pedido = null;

			if (operation.equals("X")) {
				// Mais código.
				pedido = null;
				return TELA_EXCLUIDO;
			}

			
			
			
			// Várias linhas de código.
			if (operation.equals("B") || operation.equals("I") || operation.equals("C")) {
				// Mais código.
				if (produto == null) {
					// 5 linhas de código

					if (operation.equals("B")) {
						// Seta um atributo para um valor X.
					} else if (operation.equals("I")) {
						// Seta um atributo para um valor Y.
					}

					return TELA_MANUTENCAO;
				} else {
					if (uma condição qualquer aqui) {
						// Algumas linhas de código.

						if (operation.equals("B")) {
							// Seta um atributo para um valor X.
						} else if (operation.equals("I")) {
							// Seta um atributo para um valor Y.
						}
						return TELA_MANUTENCAO;
					}

					if (operation.equals("C")) {
						// Várias linhas de código.
					} else {
						// Uma linha de código.
						if (operation.equals("B") || operation.equals("I")) {
							// Uma linha de código.
						}
					}
				}
			} else if (operation.equals("A") || operation.equals("E")) {
				// 3 linhas de código.
				if (operation.equals("A")) {
					// 5 linhas de código.
					
				} else {
					// 6 linhas de código.
				}
			} else if (operation.equals("F")) {
				if (pedido!= null) {
					// 7 linhas de código.
				}
				return TELA_LISTA;
			}
			
			if (pedido!= null) {
				// 2 linhas de código.
			}
			
			return TELA_MANUTENCAO;

}[/code]

MAGIC NUMBER:

if (usuarioLogon.getCodPerfil().equals(new Integer(8888))) { // Um código aqui. } else { // Outro código aqui. }