Cuando desarrollas una Web, un App, un API o un script; mi obsesión es que sea mantenible y esté optimizado. Mis compañeros solo piensas en la optimización, y me parece estupendo. Pero que sea mantenible es una optimización de cara el futuro que muchos ignoran. De echo es un error no tenerlo en cuenta. Me explico.

A todos nos gusta aprender nuevos lenguajes y Frameworks recien salidos del horno. ¿Quién se puede resistir? Prometen arreglar problemas del pasado, funcionan más rápido y son más sencillos de trabajar. Pero hay una característica que ninguno te puede prometer: ¿Es matenible? ¿Cada cuanto sale una nueva versión? ¿Hasta cuando podré seguir utilizando la anterior?

Los ejemplos más palpables los vivimos con Javascript. Todos los desarrolladores de Angular 1 están a la espera de que salga Angular 2 para enterrar todo lo aprendido y empezar de cero. O EmberJS, casi sin avisar tenemos un nuevo Framework. Entonces… ¿que hacemos con todo lo anterior? ¿lo borramos? Un cliente no se puede permitir, ni tú debes desperdiciar tu tiempo.

Un ejemplo que he vivido en carnes ha sido con Laravel 4. Mientras estaba en desarrollo de un sitio web liberaron la versión 5. No me quedó otra que continuar a sabiendas que sería complejo su actualización. Como así ha ocurrido, donde el cliente me ha pedido hace poco unos cambios. Por suerte son menores. Pero, ¿que hubiera ocurrido si necesitara usar un plugin externo y no fuera compatible? Los plugins caducan con las viejas versiones.

Los comentarios son otra parte fundamental. Cuando dejas un proyecto una semana, muchas partes desaparecen de tu memoria. De echo parece que tus recuerdos salten por la ventana. Al ver tu código de nuevo te cuesta un rato seguir el hilo. ¿Te imaginas no tocarlo en un año?

Documentar es aburrido, para que engañarnos. En apariencia nos hace perder el tiempo y engorda nuestro código. Pero aplicarla se debe convertir en un hábito. Si te acostumbras a ir escribiendo pequeñas explicaciones las pondrás sin apenas darte cuenta. Además, cuando explicas los bloques realizas inconscientemente una reflexión; donde puedes encontrar problemas futuros o mejores formas de organizar el código.

Resumiendo, no he encontrado una solución perfecta. A día de hoy para el backend utilizo el Framework Django. Sus actualizaciones no afectan al funcionamiento del sitio. Al menos hasta el día de hoy. Y ya tiene más de 10 años de cambios. Para el frontend uso BackboneJS. Un Framework en Javascript simple y potente cuyos tutoriales nunca caducan. Sólido, simple y fácil de aprender.

No hay que olvidarse de siempre comentar las Clases, las funciones y cualquier bloque con un poco de complejidad. Consigue que tu código sea mantenible, y conseguirás un futuro sostenible.