Underc0de

Programación General => Java => Mensaje iniciado por: BigBear en Enero 15, 2016, 12:22:38 PM

Título: [Java] Class DH Tools 0.2
Publicado por: BigBear en Enero 15, 2016, 12:22:38 PM
Mi primer clase en Java , se llama DH Tools y tiene las siguientes opciones :

Título: Re:[Java] Class DH Tools 0.2
Publicado por: Adalher en Abril 22, 2019, 03:49:46 PM
Hola BigBear,

algo de crítica para tu código (y por favor no dejarse intimidar al instante de ello). ;) :(

•   A primera vista: Demasiadas funciones coherentes en una clase. ;)
•   Las convenciones de código de Java comunes hacen el código claramente más entendible para todos los otros. Por ejemplo: CamelCase para clases y variables en vez de Snake-Case.
•   Tu nombramiento es... horripilante. String re, StringBuffer conte, URLConnection nave, BufferedReader leyendo – y esto es solo el primer método.
•   Exceptionhandling no esta existente.
•   Además no afecta solamente a los Exceptions, sino también a los Resource-Handling. Ningún recurso se finaliza de forma significativa, la mayoría de estos no se finalizan en absoluto.
•   Nunca se debería usar Raw-Types (como ArrayList array).

Gracias y saludos
Título: Re:[Java] Class DH Tools 0.2
Publicado por: Adalher en Septiembre 15, 2019, 10:21:59 PM
Hola BigBear,

viendo nuevamente tu código, te escribo esto:
Por favor utiliza tipos primitivos para esto. Pésimo.
Código (java) [Seleccionar]

public Boolean download(String url, File savefile) {


Esto se ve tan bien, me pregunto por qué decidiste NO usar un switch o state para esto:
Código (java) [Seleccionar]

if (opcion == "protocol") {
                resultado = url.getProtocol();
            } else if (opcion == "authority") {
                resultado = url.getAuthority();
            } else if (opcion == "host") {
                resultado = url.getHost();
            } else if (opcion == "port") {
                resultado = String.valueOf(url.getPort());
            } else if (opcion == "path") {
                resultado = url.getPath();
            } else if (opcion == "query") {
                resultado = url.getQuery();
            } else if (opcion == "filename") {
                resultado = url.getFile();
            } else if (opcion == "ref") {
                resultado = url.getRef();
            } else {
                resultado = "Error";
            }


Otro gran trabajo produciendo código basura. ¡Bien hecho! Realmente estás retrocediendo en tus habilidades.

Si esto, de hecho, se compila, me comeré mi sombrero de mier**.
Código (java) [Seleccionar]

public ArrayList cortar(ArrayList array) {
    ...
    //ese nombre de función kek
}

Esto tiene que ser un troll.

Me gusta como cuando vi este hilo supe que yo estaría aquí para criticarlo. Roflmao

Algunas tomas más:

Código (java) [Seleccionar]

public String toma(String link) {
        String re;
        StringBuffer conte = new StringBuffer(40);

En la mayoría de los contextos, usa StringBuilder, no StringBuffer.

Código (java) [Seleccionar]

public String tomar(String pagina, String data) {
        // Credits : Function based in http://www.mkyong.com/java/how-to-send-http-request-getpost-in-java/

El código en los créditos es más claro y comentado.

Código (java) [Seleccionar]

public void savefile(String ruta, String texto) {

        FileWriter escribir = null;
        File archivo = null;

¿Por qué estas variables tienen un alcance para todo el método? Eso es innecesario.
También savefile vs read_file, adhierete a UNA convención de denominación, por favor. No tienes consistencia.

Código (java) [Seleccionar]

// read_file
Scanner leyendo = new Scanner(new FileReader(ruta));

Este scanner nunca se cierra.

Código (java) [Seleccionar]

Runtime.getRuntime().exec("cmd /c " + command);

Este código es solo para Windows. Intenta mantener multiplataforma tu Java.

Código (java) [Seleccionar]

public String httpfinger(String target)

Honestamente, ¿por qué necesitarías esto como un tipo de retorno de string? Un mapa de claves de encabezado a sus valores sería mucho más útil.

Código (java) [Seleccionar]

public ArrayList repes(ArrayList array)

Bruh, hay muchas maneras mejores de eliminar duplicados.

Código (java) [Seleccionar]

public ArrayList cortar(ArrayList array)

Ok, tienes que estar trolleando. Esta mier** no se compila.

Código (java) [Seleccionar]

public String md5_file(String file)

Esto tampoco compila. Tienes un nombre de variable duplicado.

Código (java) [Seleccionar]

regex(String code, String deaca, String hastaaca)

De nuevo, alcance retrasado. Literalmente declarado en la siguiente línea, ¿por qué inicializar a null? ¿El infierno?


Saludos


[Moderado by AXCESS]
Título: Re:[Java] Class DH Tools 0.2
Publicado por: hielasangre en Septiembre 16, 2019, 03:05:16 AM
No entiendo, reviviste un post de 3 años de antigüedad solo para mofarte que sabes programar mejor que otra persona? Wow, felicidades...
No solo lo reviviste, sino que al no recibir atención, 6 meses después lo volves a revivir, felicidades campeón!
Título: Re:[Java] Class DH Tools 0.2
Publicado por: AXCESS en Septiembre 17, 2019, 08:46:51 PM
@Adalher (https://underc0de.org/foro/index.php?action=profile;u=64786)

Todo aquello que le he destacado en rojo es absolutamente innecesario.

No le asiste el derecho de emplear términos que humillen o denigren al usuario.

Mucho menos si su intensión es el de ayudarlo, corrigiéndole sus errores, para que así aprenda.

En realidad uno se cuestiona si su intensión es el de ayudarlo (altruismo), o de denigrarlo (miseria humana), a través de sus faltas, ensalzando, en el proceso, su  "superioridad" intelectual.

No le borraré sus inapropiados comentarios, pero definitivamente es una advertencia, ante su actuar.

Es una pena que el conocimiento no venga en comunión con esa humildad que indica grandeza, y sí con el remanente olvido de que todos, en nuestros inicios, tuvimos fallas que pudiéranse, tristemente denominar.

Título: Re:[Java] Class DH Tools 0.2
Publicado por: Adalher en Octubre 18, 2019, 07:35:25 AM
Hola AXCESS,

la personalidad defectuosa de BigBear se ha tomado a tiempo completo. Yo ya señale muchas cosas que están mal con su código hasta el punto en que ni siquiera se compila, sin embargo, la respuesta que obtengo de ti es proporcionarme un perfil psicológico y por qué es inapropiado de mi parte brindarle a BigBear mejores formas de hacer las cosas.
Con toda seriedad, en lugar de hacer trucos psicológicos aquí, repasemos esto una vez más:
BigBear proporciona un código defectuoso, le sugiero que lo arregle señalandole MUCHOS errores que cometió. Si sientes que el está siendo agredido mentalmente, no lo está. La programación se trata de una cierta lógica, las cosas pueden ser 0 o 1. El código de BigBear es un 0. No tiene más sentido discutir esto contigo y cualquier programador que esté dispuesto a ayudar continuará señalando sus errores para que pueda aprender de ellos. Los errores en la programación no son exclusivamente de BigBear, todos los cometemos, pero es por eso que es bueno que otras personas revisen su código. Si no deseas que otras personas revisen el código de BigBear, que el no lo publique en línea y que el no lo publicite como una especie de cosa perfecta y maravillosa para hacer ciertas cosas, porque no lo es.


Saludos
Título: Re:[Java] Class DH Tools 0.2
Publicado por: AXCESS en Octubre 18, 2019, 07:25:08 PM
@Adalher (https://underc0de.org/foro/index.php?action=profile;u=64786)

A lo que me he referido ha sido a que no hay necesidad de" humillar" a nadie empleando términos, que si es honesto, y se pusiera en el lugar opuesto entendería.

Las deficiencias del conocimiento, sus observaciones y correcciones son válidas.  Si no, no tuviera sentido intercambiar y exponer los  trabajos.

Pero en cambio, el método usado para tal fin, ir señalando u corrigiendo (conocimiento en sí) y usar términos denominativos que pudieran ofender al usuario (forma de expresarse), no resulta positivo.

Solo me he referido a su dureza de denominaciones y términos (proyección) que no son ni educados, corteses, o pedagógicos. Completamente innecesarios.

Eso todo.
 
Lo de los juegos psicológicos de mi parte; u agresiones mentales por su lado... sobran.
Lamento que lo interprete de ese modo, y no sea capaz de ver el detalle de la educación, respeto y caballerosidad, de alguien que, como Ud. domina un saber y desea que otro aprenda de sus errores, sin sentirse abochornado, inferior, o arrepentido de confiar en que serán tolerantes y gentiles ayudándolo, al corregirle sus faltas.
 
Es sobre el aspecto humano y no sobre el conocimiento.
Es sobre el ser sensible, por encima de la fría lógica que develan los errores.
Solo hablo de cortesía o gentileza profesional al enseñarle a otro algo, destacándole dichas faltas , tal y como le enseñaron sus seres queridos, profesores y amigos.

Es Ud. un buen profesional, no me cabe la menor duda...
y será aún mejor persona si logra entender esto que le digo.

Mis mejores deseos.
Título: Re:[Java] Class DH Tools 0.2
Publicado por: Adalher en Octubre 21, 2019, 04:03:49 PM
Hola AXCESS,

estoy de acuerdo. Aquí hay algo nuevo para BigBear, recién presentado en JDK 13:

Código (java) [Seleccionar]

String resultado = switch (opcion) {
case "protocol"  -> url.getProtocol();
case "authority" -> url.getAuthority();
case "host"         -> url.getHost();
case "port"         -> String.valueOf(url.getPort());
case "path"        -> url.getPath();
...
default              -> throw new IllegalArgumentException("Opción no soportada!");
};


Expresiones switch. ¿No se ve bien? ¿Te das cuenta de que nadie aquí te ha llamado a pesar del troll que hay detrás de todo esto?


Saludos


Hola BigBear,

además de los otros problemas enumerados anteriormente, utiliza los nombres de métodos de camelCasing como 'extractFileByUrl' en lugar de 'extract_file_by_url'.


Saludos