Coders are Users
En Livra este es el año de hacer las cosas increíblemente bien. Hablando de software eso quiere decir simplicidad (Don’t make me think), estabilidad, escalabilidad, modularidad y belleza (si el lenguaje lo permite).
Pero mantenerse fiel a las practicas del eXtreme Programming escribiendo código escalable y bello es difícil. El tradeoff entre hack/velocidad vs. belleza/lentitud queda a criterio de cada programador.
Este paper habla de quantificar los beneficios de la modularidad. Cuando escribimos una aplicación tenemos que tener en mente a los usuarios. Pero los usuarios no son solo lo que van a usar la aplicación.
Nuestros compañeros programadores son usuarios de nuestro código. El que instala y mantiene el servidor donde corren nuestras aplicaciones es también usuario de nuestro código. Entonces hay que pensar en ellos, pensar en que la funcionalidad que estamos plasmando en código no tengan que esforzarse nuevamente en plasmarla ellos, pensar en las herramientas y lenguajes que hablan para hacer los modulos, librerias, wrappers y servicios mas amigables que puedan encontrar. Y no dejar que el árbol nos tape el bosque, si bien puedo ahorrar 1 hora en no limpiar una interfaz o no hacer configurable cierto modulo, esa hora nos ahorra muchas mas adelante.
En cuanto al coding en si hay que tener mas presente las palabras de Brian Kernighan en ‘The Practice of Programming‘:
“Debugging is twice as hard as writing the code in the first place.
Therefore, if you write the code as cleverly as possible, you are,
by definition, not smart enough to debug it”
imagínense entonces cuanto le costaría a OTRO/A coder debbuguear lo que escribimos si somos mas listos que claros.
Este otro articulo habla de no pasarse para el otro lado con la abstracción y la modularidad. Hace poco en varias de las aplicaciones internas de Livra hicimos un cambio para que sean mas configurables, para esto tuvimos que decidir que parte deberia ser configurable y cual no, esa es una zona bastante gris (como dice en el articulo, el ‘business logic’ pertenece al código). La url de las bases de datos, users, passwords, urls de servicios que usamos, etc, debería ser configurable, pero si el protocolo interno de nuestra aplicación usa strings que empiezan con “__error:__” como mensajes de que algo malo paso, eso debería ser configurable?…






RSS Livra Geeks