Michael Soileau golpea algunos de mis puntos débiles en este asunto m, pero para mí la parte más difícil no fue refactorizar el código que alguien más escribió, sino refactorizar el mío.
Una pequeña historia de fondo, la aplicación principal de mi empresa fue escrita en su primera versión en 1999, era una especie de aplicación de nube realmente prematura. Originalmente fue escrito en ASP clásico y créanme cuando digo que fue pedante. No tuve nada que ver con las primeras 5 subversiones más o menos, pero cuando entré en escena en 2005, definitivamente me gustaron las aplicaciones a gran escala.
Poco después, se decidió que el cambio a .NET era inevitable y bastante inminente. Habíamos dejado de admitir las versiones instaladas en los servidores de los clientes y solo teníamos como objetivo los servicios basados en la nube. Esto fue un poco antes del servicio en la nube y SaaS se convirtió en palabras de moda, por lo que, según las medidas suecas, todavía era un mercado en dificultades.
- ¿Es aconsejable desarrollar un programa individualmente y divulgar el código a mis compañeros de curso? Además, ¿qué beneficios disfruta el desarrollador?
- ¿Cuál es el mejor sitio de alojamiento web gratuito para sitios de WordPress?
- ¿Los frameworks web como Flask y Django ganarán más popularidad a medida que sea más fácil crear aplicaciones de IA con ellos?
- ¿Cómo convertirse en un buen desarrollador web en 2017 (y 2018)? ¿Qué lenguajes y habilidades de programación debo saber?
- ¿Cuáles son las otras partes de construir un sitio web y ponerlo en funcionamiento (excepto la codificación)?
Reescribimos toda la aplicación, refactorizamos las bases de datos, nos metimos con IIS y ¡guau! Aprendí mucho en ese entonces. Pero luego, cuando nos depararon tareas de mantenimiento, estaba a punto de renunciar a mi trabajo varias veces a la semana. El mayor inconveniente del desarrollo mientras se aprende es que el código lo atestiguará. Fue un desastre y no me lo pierdo en todos estos días.
Lección aprendida que pensarías. Bueno, los días de exageración de .NET terminaron rápidamente para nosotros cuando descubrimos más y más desventajas con respecto a la escalabilidad, la flexibilidad y, sobre todo, la “mantenibilidad”. El código fuente compilado para la web simplemente no se siente bien y, además de eso, Windows no es realmente una elección de primera clase en cuanto a seguridad o con respecto al tiempo de actividad (tener que reiniciar todo el servidor para una actualización, ¿qué somos, hombres de las cavernas?) .
Entonces, se hizo la elección. En el quinto aniversario de la versión .NET, decidimos hacer un cambio. Fuera con todo Microsoft y con buen viejo PHP. Mi viejo caballo de trabajo, aquí me sentí como en casa como siempre.
Reescribiendo nuevamente, sin repetir ninguno de los errores. O eso pensé.
Mirando hacia atrás a todo el código escrito que parecía ingenioso en ese momento, siempre me pareció descuidado al mirar hacia atrás unos meses más tarde, y como tal, he hecho grandes esfuerzos para mantener las convenciones de codificación y cierto estilo de código. Decidir y “diseñar” mis convenciones es lo que me hace sentir bastante seguro de que no habrá otro cambio de plataforma en mucho tiempo.
Hoy, casi tres años después, casi puedo buscar ciertas funciones centrales escritas en la etapa embrionaria y sentirme orgulloso de ellas. Me estremezco cuando miro algunas partes, pero en general me siento satisfecho. Claro, no está comentado, a veces las variables tienden a tener los nombres más crípticos y algunos métodos muestran el parecido de un panda borracho en una tienda de porcelana, pero aún así, hay un esfuerzo en ese código.
Es fácil olvidar lo fácil que es ser estúpido. Cometí algunos de esos errores y también pagué las cuotas por gran parte de ellos, pero en cualquier aspecto, cuando no hay nadie más a quien culpar excepto a ti mismo, es más difícil ser objetivo y darte cuenta de que – Sin pares o críticos adecuados – será su peor enemigo cuando se trata de escribir código mantenible y eterno.