EDICIóN GENERAL
289 meneos
9068 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
Es un poco en clave de humor, pero es bastante informativo de porque no hacer ciertas cosas.
#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"!!
#6 ¿Cómo copias un repositorio de tal forma que el log parece hecho por ti?
#15 Copias el código, limpias el historial de tu local, haces 4 cambios y lo subes a tu branch .
#20 Salen las fechas de las subidas. Un trabajo de semanas en dos horas no cuela.
#20 #15 descargas
borras .git
git init
git add .
git comit -m 'rama personalizada para xxxxx, primera version: hola mundo!'  media
#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 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.
#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 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 Quizás sea error mio, pero yo doy por sentado que la mayoría lo son. :troll:
#58 xD Todos los directores técnicos que he conocido han hecho bien su trabajo :-P
#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 En mi experiencia te puedo decir, que ni en FP ni en carrera he visto usar gestion de versiones, ni el mítico CVS. Yo todo lo que se sobre gestores de versiones ha sido laboralmente y para meterme con git me he tenido que montar yo un servidor en casa sobre SSH para acostumbrarme a usarlo. Aunque te parezca mentira, al menos en España, hay infinidad de empresas y administraciones que siguen usando SVN. Y muchas veces no es porque no quieran, si no hay mucha gente incompetente incapaz de…   » ver todo el comentario
#72 Totalmente de acuerdo. Y ademas con herramientas como Source Tree el control de versiones se ha supersimplificado asi que apenas hay barrera tecnica.
#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?…   » ver todo el comentario
#34 Me lo creo, por desgracia lo he visto también.
#34 Has dado en el clavo 100%.
#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
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:
#2 Como dice la canción "tengo un perro que se llama Como Tú / ¿Como yo? / No, Como Tú".
#3 xD Lo conocía como chiste. De quién es la canción?
#4 Ni idea. Es una sevillana.
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
El de poner un trozo de código comentado que no parezca estar comentado me ha matado :-D :-D
#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 Tío lo que has puesto precisamente se cumple siempre. :palm:
#23 verdad a esas horas ni me pidas más un día 1
#8 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”.
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
#9 sigue existiendo Raulito el Friki?? Veo que ha madurado y todo.

Sigue sin tener gracia
#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 Concho, ¿eso se puede hacer?
#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 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: Ojo, que con el Open Office no era posible. :-P
#9 Si es bueno para google, es bueno para ti. :troll:
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.
#10 Jajaja ese fue un de los que más me hizo reír a mí también.
#10 LA que mas megustó a mi:

Lie in the comments
#10 Cualquier programador medio decente sabe que esa fórmula está mal... en realidad es

yondu = (marypopping + starship) / celestial
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:
#11 do ma sei
#14 Algunos aún podemos leer esa expresión. El resultado de la operación es 8.
#11 En gallego los If se escriben Depende
#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
el java en sí mismo ya es ininteligible
Usa cualquier generador de código y luego dices que lo has hecho tú.
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 #define False 1


....


If(variable == False)
Telacuelo() ;
#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
me ha recordado mucho a esto :-D :-D :-D
bofhers.net/blog/marrón-oscuro-el-idiotizador-cuarta-parte

Gran invento, el idiotizador... xD
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 ¿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?
#24 Aver estudiao.
#24 Dí que sí. Año nuevo, karma nuevo.
True story: TODO: nose porque peta revisar,(de esa linea hacia 3 años).
sub ZEROPATATERO{ return 0 }


TE TENGO EN MIS RECUERDOS ** :wall:
A partir de "Java", ya he dejado de leer...
Mucho más fácil: utiliza Perl como lenguaje de programación :-)
#31 No si quieres encontrar trabajo xD
#31: O Lisp, y piérdelos a todos en un mar de listas de insípidos y estúpidos paréntesis. :-D
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 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.
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…   » ver todo el comentario
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…   » ver todo el comentario
#41: Os ha PWNeado a todos. xD #pwned
#41 Han hecho bien en despedirle. Una pena no haberse dado cuenta antes.
Gente que gana más dinero que yo programa de esta manera. Pronto me iré de esa empresa.
#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.
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...
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…   » ver todo el comentario
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:…   » ver todo el comentario

menéame