No en tiempo de ejecución, sino en tiempo de diseño

imagen

Érase una vez, un desarrollador viejo y sabio me dio consejos, que hasta hace poco no apreciaba realmente.

Durante la revisión del código, consideramos algunas funciones que requerían que el programa mostrara una lista de letras AZ (por ejemplo, una lista de contactos con un conjunto de botones que le permiten saltar a nombres que comienzan con una letra determinada).

Entonces, apareció un joven programador exitoso. (Bueno, ese era yo). Decidí que en lugar del código rígido de la matriz de todas las letras, sería más fácil escribir un bucle for que vaya de 65 a 90, y luego generar las letras por el código de caracteres recibido.

En una variante de JavaScript, se verá más o menos así:

for (let i = 65; i <= 90; i++) { letters.push(String.fromCharCode(i)) } 

Un desarrollador viejo y sabio me miró y me preguntó por qué simplemente no codifiqué esta matriz. No parece que el alfabeto sea diferente de una sesión a otra. Entonces, ¿por qué calcularlo cada vez?
Software EDISON - desarrollo web
Este artículo fue traducido con el soporte del software EDISON, que está desarrollando el sistema de diagnóstico de repositorio de documentos Vivaldi e invirtiendo en nuevas empresas .

Estaba aterrorizado “¿Cómo puedes esperar que escriba cada letra, como una especie de niño? Soy un desarrollador de software profesional! "¡Tengo algoritmos y estructuras de datos, y un coprocesador matemático, por el amor de Dios!"

"Bien", dijo. "Simplemente use esta funcionalidad en tiempo de diseño para generar una matriz y luego cópiela y péguela en su código de trabajo".

Y luego dijo esto:
"Evite en tiempo de ejecución lo que puede hacer durante el desarrollo".
Ahora seamos honestos. Mi pequeño bucle for no iba a ralentizar la aplicación. Y las máquinas modernas comprenderán tan rápido este código que nadie lo notará. Pero, como regla, este es un consejo sabio.

Con demasiada frecuencia, escribimos código que convierte datos que cambian raramente de un formato a otro con cada solicitud. Piense en todas las situaciones en las que obtenemos contenido de una base de datos que puede cambiar una o dos veces al año, formatee y envíe al navegador, sin tener que ralentizar la aplicación. Esto es especialmente cierto para los sitios que están asociados con un sistema de administración de contenido.

Es por eso que creo que en los próximos años, jugadores tan conocidos como Wordpress, Drupal, etc., se enfrentarán a un problema grave debido a generadores de sitios estáticos como Gatsby , Hugo o Jekyll , combinados con un proceso de construcción sin problemas , CMS sin cabeza , CDN barato y rápido proceso de integración continua.

Este patrón se llamaba JAMstack , que significa "JavaScript, API y la pila de marcas". Y los resultados son muy impresionantes .

El consejo del viejo y sabio desarrollador suena en mis oídos: "Evita durante la ejecución del programa lo que puedes hacer durante el desarrollo". Y con el tiempo, me di cuenta de que este consejo tiene consecuencias de largo alcance. No solo para el desarrollo de software, sino también para la vida.

Recientemente leí el maravilloso libro de Ray Dalio, Principios: trabajo y vida . El tema central del libro es que hay muchos menos tipos de problemas que problemas reales. Por lo tanto, si trabaja en esto con anticipación y descubre cómo abordará el tipo específico de problema que es probable que encuentre, entonces cuando se presente, estará mucho mejor preparado para enfrentarlo.

De hecho, puede tomar mejores decisiones más rápido al ordenar su enfoque a varios tipos de problemas durante el "desarrollo", cuando está pensando tranquilamente en la vida, y no durante la "ejecución", cuando se enfrenta a un problema real en ese momento y entra en pánico.

Dalio implementó esta técnica al catalogar sus enfoques como un conjunto de principios. Incluso fue tan lejos que codificó su proceso de toma de decisiones en un conjunto de algoritmos informáticos que pudo probar en una gran cantidad de datos históricos.

Dado que es multimillonario y dirige una compañía de inversión muy exitosa, diría que funcionó. De hecho, Wall Street está comenzando a contratar más programadores que comerciantes de acciones. Entonces, si tiene dudas de que haya elegido la profesión equivocada, hay muchas pruebas de que el software se come al mundo.

  • Compartí mis propios consejos y lecciones aprendidas en una entrevista reciente en el podcast Developer On Fire, que puedes escuchar aquí .
  • Puedes conocer a JAMstack en Jamstack.org
  • El blog de Netlify también tiene una buena visión general de los generadores de sitios estáticos.
  • Y aquí hay un artículo sobre una pila específica que recientemente revisé y recomendé que utiliza una combinación de Gatsby, Contentful, Netlify y Algolia como alternativa al CMS tradicional para el sitio de documentación.


Publicaciones más interesantes.





Lee también el blog
Empresa EDISON:


20 bibliotecas para
espectacular aplicación para iOS

Source: https://habr.com/ru/post/475920/


All Articles