edición general
289 meneos
9301 clics

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.

| etiquetas: codigo fuente , algoritmos , codigo mantenible , mantenimiento software
129 160 0 K 376 SysDevs
129 160 0 K 376 SysDevs
Comentarios destacados:                  
#16 #11 En gallego los If se escriben Depende
  1. Es un poco en clave de humor, pero es bastante informativo de porque no hacer ciertas cosas.
  2. 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:
  3. #2 Como dice la canción "tengo un perro que se llama Como Tú / ¿Como yo? / No, Como Tú".
  4. #3 xD Lo conocía como chiste. De quién es la canción?
  5. #4 Ni idea. Es una sevillana.
  6. #1 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"!!
  7. Llevo diciendo años que os enseñan a que el código sea legible y documentado, para poder sustituiros por indios rápidamente... y me llamabais loco...

    www.meneame.net/story/opera-50-introduce-proteccion-antiminera-criptom
  8. El de poner un trozo de código comentado que no parezca estar comentado me ha matado :-D :-D
  9. 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:  media
  10. xD xD xD
    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.
  11. 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:
  12. #10 Jajaja ese fue un de los que más me hizo reír a mí también.
  13. el java en sí mismo ya es ininteligible
  14. #11 do ma sei
  15. #6 ¿Cómo copias un repositorio de tal forma que el log parece hecho por ti?
  16. #11 En gallego los If se escriben Depende
  17. #8 eso lo he visto yo y no hace mucho le pones un if (1!=0) y todo lo de dentro a la mierda.
  18. Usa cualquier generador de código y luego dices que lo has hecho tú.
  19. #15 Copias el código, limpias el historial de tu local, haces 4 cambios y lo subes a tu branch .
  20. 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
  21. me ha recordado mucho a esto :-D :-D :-D
    bofhers.net/blog/marrón-oscuro-el-idiotizador-cuarta-parte

    Gran invento, el idiotizador... xD
  22. #18 Tío lo que has puesto precisamente se cumple siempre. :palm:
  23. 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.
  24. True story: TODO: nose porque peta revisar,(de esa linea hacia 3 años).
  25. sub ZEROPATATERO{ return 0 }


    TE TENGO EN MIS RECUERDOS ** :wall:
  26. A partir de "Java", ya he dejado de leer...
  27. #20 Salen las fechas de las subidas. Un trabajo de semanas en dos horas no cuela.
  28. #20 #15 descargas
    borras .git
    git init
    git add .
    git comit -m 'rama personalizada para xxxxx, primera version: hola mundo!'  media
  29. #24 ¿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?
  30. Mucho más fácil: utiliza Perl como lenguaje de programación :-)
  31. #31 No si quieres encontrar trabajo xD
  32. #24 Aver estudiao.
  33. #1 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.
  34. #14 Algunos aún podemos leer esa expresión. El resultado de la operación es 8.
  35. 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.
  36. #34 Me lo creo, por desgracia lo he visto también.
  37. #10 LA que mas megustó a mi:

    Lie in the comments
  38. #29 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.
  39. 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...
  40. 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.
  41. Gente que gana más dinero que yo programa de esta manera. Pronto me iré de esa empresa.
  42. #23 verdad a esas horas ni me pidas más un día 1
  43. #21 #define False 1


    ....


    If(variable == False)
    Telacuelo() ;
  44. #39 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.
  45. 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...
  46. #10 Cualquier programador medio decente sabe que esa fórmula está mal... en realidad es

    yondu = (marypopping + starship) / celestial
  47. #24 Dí que sí. Año nuevo, karma nuevo.
  48. #9: 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
  49. #44 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
  50. #31: O Lisp, y piérdelos a todos en un mar de listas de insípidos y estúpidos paréntesis. :-D
  51. #41: Os ha PWNeado a todos. xD #pwned
  52. 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.
  53. #49 Concho, ¿eso se puede hacer?
  54. #54: 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
  55. #39 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.
  56. #56 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.
  57. #57 Quizás sea error mio, pero yo doy por sentado que la mayoría lo son. :troll:
  58. #58 xD Todos los directores técnicos que he conocido han hecho bien su trabajo :-P
  59. #11 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
  60. #9 Si es bueno para google, es bueno para ti. :troll:
  61. #6 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.
  62. #34 Has dado en el clavo 100%.
  63. #55 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:
  64. #64: Ojo, que con el Open Office no era posible. :-P
  65. #41 Han hecho bien en despedirle. Una pena no haberse dado cuenta antes.
  66. 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.
  67. #36 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.
  68. #42 haces bien. Tu salud mental te lo agradecera
    #46 Esa es la actitud. Mis dieses: 'Si me voy de esta empresa ya encontrare sitio en otra pq HAGO BUENOS PRODUCTOS.' Que te valoren por lo que eres, no por lo que escondes.
    #68 Ni de palo tio; tu has aprendido y eso que te llevas. Ya saldran mas cosas y tu sabes mas cosas para ellas.

    Esto de la programacion es aprender siempre, no poner tornillos.
  69. #1 Sí, es muy divertido hasta que me leo alguno de los consejos y me doy cuenta de que eso también lo he hecho alguna vez. :-P
  70. #72 Totalmente de acuerdo. Y ademas con herramientas como Source Tree el control de versiones se ha supersimplificado asi que apenas hay barrera tecnica.
comentarios cerrados

menéame