• De como escribir código imposible de mantener. [EN]


    En el interés de crear oportunidades de trabajo en el campo de la programación en Java, describo algunos consejos de como escribir código tan difícil de mantener, que las personas que vengan después de ti tardarán años en hacer los cambios más simples. Además, si sigues estás reglas religiosamente, te aseguraras tu empleo de por vida, ya que no habrá persona viva salvo tú que pueda mantenerlo. De nuevo, si sigues estás reglas demasiado religiosamente, ni tu serás capaz de mantenerlo.

    Leer en meneame.net | Noticia original

23 Comentarios

  1. Cidwel /  hace 1 año

    Bueno. En mi empresa se programa genial. Se añaden a los equipillos de proyecto a los pull request (minimo 1, maximo 10) y se comenta el código hasta el punto que pueden haber conflictos por no tener tacto humano en algunas circunstancias donde a = b. En general he aprendido muchisimo programando con ellos ya que siempre hay alguno que tenga una idea de como mejorar o optimizar un codigo.

    El marzo nos vamos todos a la calle: www.meneame.net/story/eu-denuncia-euipo-contrata-servicios-informatico

    La verdad, si hubieramos conocido la decisión de antemano no sé si nos hubieramos esforzado tanto en hacer el codigo tan mantenible. Normalmente haces codigo para que tu empresa y tu equipo lo disfrute. No para que otro país se lleve el beneficio y aprendan nuevas tecnicas gracias a nuestro código.

  2. MDman /  hace 1 año

    Lo he vivido en varias empresas, al final en la última los compañeros le llamaban el chico de oro.

    Porque tenía un sueldazo que por indemnizaciones era almohadilla despedirlo, supo a lo largo de la historia de la empresa hacerse importante y pedir aumentos en el punto justo para ir haciéndose intocable.

    El chico de oro, llevaba un proyecto para servers en Perl (1° ofuscación) y después era muy celoso de que tocaramos el código (pese a tener svn al principio y git después), tenía tabulaciones mezcladas en todo el código (2° ofuscación) y después el lío de código y que sólo el sabía de esa parte del proyecto ya era el remate.

    Era tan celoso que a mí a base de reprimendas (porque no eran broncas) me fue apartando de mi idea de por lo menos que estuviera bien formateado el código, recuerdo que al principio en plan infantil le metía mano a "su código" cuando estaba de vacaciones, pero se enteraba cuando conocía y hacia un svn update (en aquellos tiempos).

    Recuerdo cuando el jefe le enviaba novatos a intentar meter alguno más en el esa parte proyecto, y como los echaba con delicadeza y mareandolos.

    Pero sabéis lo mejor, que el tío era buena gente, creo de los mejores compañeros de esa empresa, pese a que desapruebo esa forma de empoderarse, a costa de poner en una situación difícil a los compañeros.

    Era buena gente, porque en otra que estuve, además de ser varios intocables en varias proyectos de la empresa, eran unos bordes y cabrones.

  3. pezezin /  hace 1 año

    Pues yo sigo la filosofía opuesta: escribo el código más sencillo de mantener posible, primero porque me cabreo conmigo mismo si lo hago mal, y segundo porque el día que me vaya no quiero que me estén llamando cada dos por tres porque no saben como hacer lo que sea.

    Y aún así a veces te vienen a preguntar subnormalidades porque al que sea no le da por leerse el código de un programa de 200 líneas...

  4. VansFannel /  hace 1 año

    Gente que gana más dinero que yo programa de esta manera. Pronto me iré de esa empresa.

  5. Northpro /  hace 1 año

    Yo creo que hay pocos programadores que no hagan esto (en mayor o menor grado) y aún así, siguen siendo carne de cañón para las empresas.

    En la empresa donde trabajo había uno que se encargaba de desarrollar y mantener una herramienta que usábamos todos los días. Todos los cambios tardaban mil en implementarse, incluidas las soluciones a los fallos que cometían. Aún recuerdo una en la que hicieron imposible borrar cosas agrupándolas (y que antes funcionaba perfectamente), pues al día siguiente se reportó el tema y aún (2 años después) no lo han arreglado.

    Primero porque el cabr** era más perro que Rintintín y segundo porque un año después de tan majestuosa obra, durante las revisiones salariales no le subieron el sueldo. Momento en que aprovechó para dárselas de imprescindible y su jefe acabó por cabrearse y ponerle de patitas en la calle. Pues ahora tienen a 4 programadores trabajando en mantener el programa y por lo visto tenía todo tan enrevesado y hecho para solo poder mantenerlo él que ahora los cambios van a dos por hora y tienen a cuatro personas en el puesto de una solo para entender que ha hecho.

    • mcfgdbbn3 /  hace 1 año

      : Os ha PWNeado a todos. xD#pwned

    • acido303 /  hace 1 año

      Han hecho bien en despedirle. Una pena no haberse dado cuenta antes.

  6. mirav /  hace 1 año

    Hoy en dia, con las pull request, es basicamente imposible que cualquiera de esos errores acabe subido al repo.

    Recuerdo algunos jefes de proyecto de mi etapa en Madrid, que veian las pull request / pair reviews como una perdida de tiempo y no nos permitian literalmente mantener la calidad, metiendo y sacando developers todas las semanas.

    Luego claro, el fracaso es monumental, y la culpa, del equipo TECNICO.

    Pero bueno de eso hace unos años, y de hecho en mi ultimo trabajo las pull requests eran revisadas de forma extrema, fue un shock al principio tanta paranoia sobre el source formatting. Espero que ahora la industria haya madurado bastante.

    Leyendo por internet asi parece, pero me da la sensacion que las empresas que lo hacen bien hacen muchisimo ruido, como si sus buenas practicas fuesen lo habitual. Pasa lo mismo leyendo discusiones en s. overflow, parece que todos los programadores controlan y luego en la vida real, ya tal...

  7. squanchy /  hace 1 año

    Esas técnicas están muy bien si trabajas solo, pero si formas parte de un equipo y todos tocan en todas partes, enseguida te pillan y te tiran de las orejas.
    En cualquier caso, algunas cosas que comenta suelen darse habitualmente. P. e., a veces para que algo funcione con un nuevo elemento, necesita que se toque código, configuración y base de datos. Si eres tú quien lo hizo, vas derecho, pero si ponen a otro, da palos de ciego.
    Muchas veces los comentarios en el código son contraproducentes, porque explican qué hacía el código en su primera versión, pero se ha tocado luego tantas veces, que ese código hace otra cosa distinta a la que se comenta.

    • MDman /  hace 1 año

      Salvo que seas de los intocables de la empresa, yo los he sufrido. Estos que tienen un sueldazo y la indemnización por las nubes.

  8. jonsy.gaviota /  hace 1 año

    Mucho más fácil: utiliza Perl como lenguaje de programación :-)

    • pepete /  hace 1 año

      No si quieres encontrar trabajo xD

    • mcfgdbbn3 /  hace 1 año

      : O Lisp, y piérdelos a todos en un mar de listas de insípidos y estúpidos paréntesis. :-D

  9. devil-bao /  hace 1 año

    A partir de "Java", ya he dejado de leer...

  10. thinkr /  hace 1 año

    sub ZEROPATATERO{ return 0 }


    TE TENGO EN MIS RECUERDOS ** :wall:

  11. ulrok /  hace 1 año

    True story: TODO: nose porque peta revisar,(de esa linea hacia 3 años).

  12. KaD /  hace 1 año

    Es tan patético leer a los programadores hablar de si mismos que da un asco que merece una categoria que no existe, un termino aun no definido.

    • Penetrator /  hace 1 año

      ¿Y cómo clasificarías a alguien que se mete en un hilo sobre algo que no le interesa en absoluto para luego comentar en ese mismo hilo lo poco que le interesa lo que está leyendo?

    • Opinator_2.0 /  hace 1 año

      Aver estudiao.

    • katinka_aäå /  hace 1 año

      Dí que sí. Año nuevo, karma nuevo.

  13. albandy /  hace 1 año

    Eso devuelve true, se cumple la condición ya que 1 siempre será diferente de 0.
    Mejor pon if(false) y te ahorras un comparador

    • Black_Diamond /  hace 1 año

      #define False 1


      ....


      If(variable == False)
      Telacuelo() ;

      • albandy /  hace 1 año

        false lo he puesto en minúsculas y es una palabra reservada (a no ser que uses un lenguaje que no tenga definido true y false como el C, pero mira mi avatar) en C pondrías if (0) y seria lo mismo que if (false) en java o .net

  14. CrudaVerdad /  hace 1 año

    Usa cualquier generador de código y luego dices que lo has hecho tú.

  15. Nemigo_Galiza /  hace 1 año

    el java en sí mismo ya es ininteligible

  16. anxosan /  hace 1 año

    Simplemente comentando el código en euskera ya se puede eliminar a mucha competencia, especialmente fuera de Euskadi.
    También puede servir ser gallego del Barbanza y comentar cosas como: "instrución para aquelar o aquel de xeito que quede aqueladiño e evitar que estea aquelado"
    Aunque si lo que quieres es que sea incomprensible, hay que hacer antes un curso de murciano. :troll:

    • N0noYy /  hace 1 año

      do ma sei

      • squanchy /  hace 1 año

        Algunos aún podemos leer esa expresión. El resultado de la operación es 8.

    • HyperBlad /  hace 1 año

      En gallego los If se escriben Depende

    • Jakobg /  hace 1 año

      Yo siempre uso comentarios en gallego cuando estoy testeando en local. Al final cambio todo antes de subirlo a produccion pero, como no, una vez se me paso un comentario. La cara que se me quedo cuando un compañero ingles me pregunto que significaba "A cona da tua vella" xD

  17. yamiqué /  hace 1 año

    xDxDxD
    Choose variable names with irrelevant emotional connotation. e.g.:
    marypoppins = (superman + starship) / god;
    This confuses the reader because they have difficulty disassociating the emotional connotations of the words from the logic they're trying to think about.

    • slender_1 /  hace 1 año

      Jajaja ese fue un de los que más me hizo reír a mí también.

    • hipernes /  hace 1 año

      LA que mas megustó a mi:

      Lie in the comments

    • Rafael90 /  hace 1 año

      Cualquier programador medio decente sabe que esa fórmula está mal... en realidad es

      yondu = (marypopping + starship) / celestial

  18. pkreuzt /  hace 1 año

    Lo suyo es eliminar todos los espacios, tabuladores y comentarios. Además eso tiene la ventaja de ahorrar millones de euros en almacenamiento al hacer el código más compacto. :troll:

    • elsuperhipster /  hace 1 año

      sigue existiendo Raulito el Friki?? Veo que ha madurado y todo.

      Sigue sin tener gracia

    • mcfgdbbn3 /  hace 1 año

      : Adivina cómo son muchas fórmulas de Excel. :-D

      Vale que si son simples no pase nada, pero si tienes una compleja cadena de IFs, no es mala idea separarlo en líneas (alt+enter) y indentarlo con espacios. :-P

      • Wayfarer /  hace 1 año

        Concho, ¿eso se puede hacer?

        • mcfgdbbn3 /  hace 1 año

          : Si, yo así tengo algunas fórmulas complejillas para entenderlas mejor luego.

          Claro, en cuanto termine el contrato voy fuera, porque no seré imprescindible. xD Tendré que poner en práctica lo que pone en el artículo. :-D

          • Wayfarer /  hace 1 año

            Yo lo que hago con las fórmulas largas es pasarlas al Notepad++ y manejarlas allí, luego vuelvo a eliminar espacios ysaltos de línea y las vuelvo a meter en el Excel... :-P:shit:

            • mcfgdbbn3 /  hace 1 año

              : Ojo, que con el Open Office no era posible. :-P

    • AdvocatusDiaboli /  hace 1 año

      Si es bueno para google, es bueno para ti. :troll:

  19. rastersoft /  hace 1 año

    El de poner un trozo de código comentado que no parezca estar comentado me ha matado :-D:-D

    • alexwing /  hace 1 año

      eso lo he visto yo y no hace mucho le pones un if (1!=0) y todo lo de dentro a la mierda.

      • jrpc /  hace 1 año

        Tío lo que has puesto precisamente se cumple siempre. :palm:

        • alexwing /  hace 1 año

          verdad a esas horas ni me pidas más un día 1

    • Malversan /  hace 1 año

      A mí éste me ha parecido diabólico:

      If the compiler will only distinguish the first, say, 8 characters of names, then vary the endings e.g. var_unit_update() in one case and var_unit_setup() in another. The compiler will treat both as var_unit”.

  20. ubicuamente /  hace 1 año

    A veces el azar conspira para ponértelo fácil: esta semana tuve que escribir el script de despliegue de una aplicación que se llama Fabric y una libería que se llama Composer con una aplicación que se llama Compose y una librería que se llama Fabric :shit:

    • bufalo_1973 /  hace 1 año

      Como dice la canción "tengo un perro que se llama Como Tú / ¿Como yo? / No, Como Tú".

      • ubicuamente /  hace 1 año

        xD Lo conocía como chiste. De quién es la canción?

        • bufalo_1973 /  hace 1 año

          Ni idea. Es una sevillana.

  21. a_basket_case /  hace 1 año

    Es un poco en clave de humor, pero es bastante informativo de porque no hacer ciertas cosas.

    • Professor /  hace 1 año

      humor? tú eres algo inocente. Becario ¿verdad?

      qué sería de los curriculums inventados en este pais si no existiera github para hacer copia-pega y llamarte a ti mismo "programador"!!

      • onaj /  hace 1 año

        ¿Cómo copias un repositorio de tal forma que el log parece hecho por ti?

        • usuario.poco.conocido /  hace 1 año

          Copias el código, limpias el historial de tu local, haces 4 cambios y lo subes a tu branch .

          • onaj /  hace 1 año

            Salen las fechas de las subidas. Un trabajo de semanas en dos horas no cuela.

          • LaInsistencia /  hace 1 año

            #15 descargas
            borras .git
            git init
            git add .
            git comit -m 'rama personalizada para xxxxx, primera version: hola mundo!'

            • onaj /  hace 1 año

              Pero sigues sin tener un log progresivo, con sus fechas y sus explicaciones de cada una de las subidas.

              Huele a estafa a kilómetros.

              • pezezin /  hace 1 año

                En los sitios en los que yo he trabajado ni dios se leí los historiales del repo, ni saben como leerlo...

                Y donde estoy ahora les da igual de donde salga el código mientras funcione, si algún día hay problemas de licencia ya verán como solucionarlo.

              • AdvocatusDiaboli /  hace 1 año

                Sinceramente dudo que nadie haga una investigación relativamente profunda al respecto, además, creo que siempre es posible que alguien por lo que sea haya subido un proyecto que no tenía antes en github, que haya perdido, o lo que sea.

                • onaj /  hace 1 año

                  Si no lo tenía subido ya, con push constantes y medianamente bien documentados me fío muy poco de la capacidad organizativa de ese aplicante.

                  Si a algún director técnico incompetente le cuelan así proyecto tos realizados por otros... Pues bueno.

                  • AdvocatusDiaboli /  hace 1 año

                    Quizás sea error mio, pero yo doy por sentado que la mayoría lo son. :troll:

                    • onaj /  hace 1 año

                      xD Todos los directores técnicos que he conocido han hecho bien su trabajo :-P

      • yoshi_fan /  hace 1 año

        StackOverflow*. El 99% de los titulados de FP y Uni no saben lo que es GitHub. Aun se sigue usando SVN en muchas universidades "para enseñar" pero ni dios tiene idea real por que no se obliga a usarse como herramienta de dia a dia en los centros educativos.

    • Al-Khwarizmi /  hace 1 año

      Será broma, pero yo conozco casos reales de gente que siguió esta filosofía con éxito (la de escribir código ilegible aposta, no necesariamente con las técnicas de este post). No lo recomendaría porque uno tiene unos principios, pero de cara a la supervivencia en ciertas empresas, no creas tú que es algo tan descabellado.

      La programación es un campo curioso porque a veces se da una especie de selección natural inversa. Por ejemplo, ¿por qué sigue habiendo tanto código en COBOL en la banca? ¿Porque COBOL era muy bueno? No, porque era un truño inmantenible y lleno de pequeñas rarezas y caprichos, y como resultado hay muchos programas en COBOL que nadie se atreve a migrar. Si el lenguaje hubiese sido más modular, legible y mantenible, seguramente ya no quedaría casi nada porque esas mismas virtudes harían mucho más fácil migrar el código a otra cosa.

      • a_basket_case /  hace 1 año

        Me lo creo, por desgracia lo he visto también.

      • yoshi_fan /  hace 1 año

        Has dado en el clavo 100%.

Ofertas

Loader noticialalminuto

Volver arriba

Esta web utiliza cookies, puedes ver nuestra política de cookies, aquí Si continuas navegando estás aceptándola