Como redactar tu código para exponer dudas

Iniciado por sapito169, 2 Enero 2011, 06:17 AM

0 Miembros y 1 Visitante están viendo este tema.

sapito169

Siempre que alguien me pide ayuda en lo que se refiere a programación me quedo asi  :-X  :rolleyes:  :(
veo el código y es imposible de entender y cuando digo que es difícil de entender digo que es casi imposible es en ese momento que sierro mi boca para no hacerle recordar a todo su familia por la frustración que me producen al tratar de entender lo que hacen una vez que les entiendo viene la parte mas difícil no es que quiera hablar de mi pensamiento filosófico ni dármela de genio ni nada tengo que aplicar algunas técnicas razonables casi científicas creo que la única forma de entender un problema y solucionarlo es cuestión de una abstracción y usar mi cerebro en forma lo mas razonablemente posible usar todo lo que me enseñaron en el colegio con lo que se refiere a la lógica, el método científico, el análisis es decir que es bueno desempolvar el hemisferio izquierdo
Luego me pongo a ver trato de dividir el problema en pequeñas partes independientes que se pueden probar en independientemente y comprobar pedacito por pedacito si esta bien trato de ver los síntomas pero o sorpresa eso es casi imposible

Miro el código y todo esta acoplado no puedo asegurarme de que una clase esta correcta porque ni siquiera se bajo que posible valores la clase murió

"•$"$"•$"•$  >:( está demasiado acoplado
No puedo hacer absolutamente nada a menos que configure 3 ficheros properties 5 xml levantar un servidor web levantar una base de datos levantar un servidor ldap configurar el path de quien sabe qué y además el código solo funciona en linux por que se le ocurrió que ejecuta programas por la consola dependiente de linux con lo mucho que odio linux yo soy gek soy informático pero no lo suficiente gek para usar linux (que comience el flame)
Luego de levantar el servidor en la nube requerido para que corra el programa me doy cuenta de que si toco cualquier cosa el sistema explota y solo termino empeorando todo por tratar de "arreglarlo" "•$"•$•$%&& todo depende de todo que si hago un cambio en una clase se apaga la luz del vecino y se prende mi televisor nadie sabe porque   :xD algunas veces me pregunto parase que usa magia negra nadie sabe cómo funciona
lo peor de todo es que el programa ni siquiera me avisa que fallo (la mayoría de bese miserablemente) y tengo que hacer una secuencia larga de pasos en el gui para reproducir el error y luego hacer otra serie de pasos largos para comprobar que hubo un error




sapito169

Después de ese momento de catarsi explico mis puntos sobre cómo hacer cambios radicales

Primero que nada olvídate de crear una dependencia al sistema operativo no todos amamos la línea de comandos para todo(linuxeros) si estas obligado a tener una dependencia con algo ponla dentro de un archivo properties no el código que no se puede descompilar

Patrón adapter

Utiliza el patrón adapter cuando no quieras depender de algo digamos que quieres loguearte si quieres te puedes loguear contra un servidor ldp contra una base de datos relacional contra una base de datos no relacional usando el api de logueo de google o yo que se pero puedes usar la abstracción (pensar no hace daño) hacer algo como esto


Código (java) [Seleccionar]

public class AutentificacionLdap implements Auntenticable {

@Override
public boolean estaAutorisado(String usuario, String contraseña) {
//a qui pon el codigo con el que te autenticas

}

}




Código (java) [Seleccionar]
public class Main {

public static void main(String arg[]) {
Auntenticable auntenticable = new AutenticadorLdap();
FrmLogueo frmLogueo = new FrmLogueo(auntenticable);
//configura y muestra ventana
}

}


esoge bien los nombres

ahora eres capaz de hacer un cambio radical y cambiar de cualquier tipo de autentificación en vez de poner autenticadorLdap puedes poner cualquier tipo de autenticable como AutenticadorGoogle nota como e nombrado todo puedo hablar de las clases sin que suene raro eso y los nombre son auto explicativos obvios y lógicos es fácil de entender eso es porque la interfaz es adjetivo las clases son sustantivo nota otra ventaja ya no tengo que levantar el servidor en la nuve para correr el programa si fuera necesario puedo ponerle un autenticadle que siempre diga que si

no uses nombre complicados demasiado largos demasiado abstractos con abreviaturas o con tecnicismo pon los nombre lo mas obvios posibles


El método main no muerde

Crea toda la aplicación en único lugar centralizado el método main si es posible crea una clase que su nombre comience con aplicación como por ejemplo ApliacionVentasPlazaVea

Código (java) [Seleccionar]

public static void main(String arg[]) {
Auntenticable auntenticable = new AutenticadorLdap();
FuenteDeDatos fuenteDatos =new FuenteDeDatosJPA();
MensajeriDeErrores mensajeriDeErrores=new MensajeriaPorCorreo()

FuenteDeDatosTarjeta fuenteDeDatosTarjeta=new FuenteDatosTarjetaWebService()
ProcesadorDeTarjetasDeCredito= new ProcesadorDeTarjetasDeCredito(fuenteDeDatosTarjeta);


ForMularioPrincipal =new ForMularioPrincipal(auntenticable,mensajeriDeErrores,ProcesadorDeTarjetasDeCredito)

ApliacionDeVentas apliacionDeVentas  =new ApliacionDeVentas(ForMularioPrincipal ,arg);

apliacionDeVentas.lansar();

}


Eso si que es la panacea ahora puedo modificar la aplicación a mi gusto solo con ver el main ya sé que hace la aplicación y es mas ya se como lo hace

Programa orientado a objetos si ya se que me van a decir que es cuestión de fe pero es que tienes muchas ventajas

Donde estará el código que hace el cálculo de una factura pues en la clase factura donde estar el código que me calcula en el subtotal de una factura pues en el método subtotal de la clase factura donde estar el método que me diga cuánto vale una línea de un detalle una factura pues el método subtotal de la clase detalle factura si •"$%•$%•$ por el amor de dios pon todo en el lugar mas obvio con el nombre mas obvio

Crea tu propio manejo de errores pues si veo que hay un error pues envés de ver algo como un nullpointerexception pues veo algo como

servidorNoEncontradoEnUrlYPuerto

BaseDeDatosNoEncontrada

InposibleSacarItensDelCarritoVacio

ErrorPorFaltaDeFondos

Es tan fácil

   if(detallesCarrito.count()==0){
         throw new ExcepcionCarritoSinLineas();
      }
      detallesCarrito.remove(detalleCarrito);

Estoy harto de ver a gente que deja que el ide dicte su vida y pone cosas como

Código (java) [Seleccionar]

try {
cossasPeligrosas();
} catch (Exception e) {

}


Dnk!

+1 sapito169

Si la gente pensara un poco antes de picar codigo, no existirian tantos bugs haha  :laugh: y como bien dices no siempre lo mas chico o lo mas largo es lo mas razonable, sino la simplicidad.




Comentar es agradecer.
Visita Mi Blob

Debci

Totalmente de acuerdo, tanto que merece un postit, ójala muchos lo lean antes de publicar.

Saludos

kasiko

Si, quizas sea por culpa de la pereza  :rolleyes:

;)
Nos vemos...


NelxoN

Todo lo que lograste en buena ortografía en el mensaje se perdió en un horror ortográfico en el título.

Maurice_Lupin

Me parece que lo del título fue intencional  ;D despues de leer esto me da miedo publicar algo  :-X
Un error se comete al equivocarse.

klaine

Jaja, me reí tanto con eso de la gente que deja que el compilador dicte su vida propia y pone:

Citar

Código (java) [Seleccionar]


try{

cosasPeligrosas();

}catch(Exception e){

}




xD!, jaja, todavía estoi muerto de la risa xD!

antoni_anemi

yo pienso que tienes toda la razon de echo yo estoy empezando a programar de esa manera xd.

mr.ads

Sapito169, jajajajajaja parce!  jajajajajaja, que risa! este hilo...

su critica a los que postean  y  la ortografía del articulo. jajajajjajaja  la vida  es ironia  chistosa por cualquier lado que la veamos.


Un saludo