Las ventajas de usar una pila aburrida

Por qué creo que elegir una pila aburrida es importante en la programación

Una persona me hizo una pregunta hace unos días. La persona quería iniciar un blog y decidió escribir su propia plataforma, usando Angular en la interfaz.

Mi respuesta fue que si el objetivo era escribir en un blog, entonces tenían que descartar esa idea y usar una solución estándar.

Eso debe haber sido mal recibido, ya que no obtuve una respuesta, pero mi punto es este: si quieres crear un blog y ser serio, usa lo más aburrido y a prueba de balas que puedas encontrar. Definitivamenteno trabajes en la infraestructura de tu blog si quieres hacer blogs serios.

La tecnología debe salir del camino, solo deberíascentrarse en el contenido.

De lo contrario, pasará la mayor parte de su tiempo libre modificando la plataforma del blog (que, seamos claros,a nadie excepto a ti le importa) en lugar de escribir contenido. A nadie le importa esa infraestructura.

Si quieres hacer un video, ¿vas a escribir un clon de YouTube primero? ¿Puede manejar 100 millones de visitantes simultáneos? Me recuerda a la gente que quiere escribir videojuegos y empezar a construir un motor de física primero, sin acabar nunca con el juego en el proceso.

Yo uso Hugo, un generador de sitios estáticos.

Hugo es el mejor para mí, ya que se centra en los blogs y las rebajas. Esaburrido. Su lenguaje de plantillas es aburrido. Es tan aburrido que cuando tengo que modificar algo me quedo dormido. Me encanta.

La mejor característica de Hugo es que esrápido, Creo que sobre todo gracias al uso de Go under the hood. Parece una característica aburrida en estos días.

"¡Mira a Gatsby, es tan elegante y brillante!"

Gatsby(solo usado como ejemplo, nada en contra) ya es demasiado elegante para mi gusto, a pesar de que es una gran tecnología. ¿Por qué? Te hace concentrarte demasiado en la tecnología y menos en el resultado. Como desarrollador, puede sentir que es genial, pero no lo es. React, GraphQL, todo es demasiado emocionante.

Me recuerda aRedux, y la gente está entusiasmada con la demostración con "viajes en el tiempo", una función realmente útil para la codificación del día a día [fin de la broma]. La gente felizmente complicó demasiado sus aplicaciones solo para usar una tecnología brillante.

Hablemos de la captación previa, por ejemplo. ¿Realmente necesitamos una búsqueda previa cuando un sitio estático ya es lo más rápido posible? ¿Lo están pidiendo los visitantes de nuestro blog? ¿Cuáles son las desventajas? ¿Qué puede ir mal?

Recuerde la ley de Murphy: "Todo lo que pueda salir mal, saldrá mal"

Una vez hablé con una persona que comenzó un blog usando Gatsby solo para darse cuenta de que no habilitaban la representación del lado del servidor, a pesar de que lo tenían habilitado, lo que hizo que el blog fuera casi invisible para Google (sí, sé que ejecutan JSalgunas veces, pero ten paciencia conmigo,apegarse a la representación aburrida del lado del servidor).

En un blog promedio, obtienes un promedio de 1.1 / 1.2 páginas vistas por usuario. Esto significa que la gran mayoría de sus usuarios irán a su sitio, probablemente a través de Google, echarán un vistazo rápido y se irán. ¿Realmente necesitas buscar previamente todos tus enlaces? ¿Por qué desperdiciar todos esos datos y energía?

Dejemos de ir en contra de Gatsby, me gusta mucho como herramienta para hacer sitios web y aplicaciones.

Mi punto fue que para comenzar un blog simple, probablemente no necesitas el 80% de lo que hace. Use una herramienta más simple, una herramienta hecha solo para blogs, y definitivamente no escriba la suya propia.

Esto se aplica a aplicaciones más complejas. ¿Debería utilizar la tecnología que conoce desde hace 10 años, o debería utilizar esa tecnología genial de la que no sabe nada, pero de la que todo el mundo habla bien? ¿Deberías usar Rails o Elixir? ¿Debo escribir mi próxima aplicación enMecanografiadoo Razón? C, ¿Ir o óxido?

Se pierden muchísimas horas de trabajo para siempre a medida que saltamos colectivamente de la biblioteca antigua a la nueva y del marco antiguo al nuevo. Piense en jQuery, Backbone y Ember, además de todos los miles de millones que vinieron antes o después de ellos. Piense en AngularJS vs Angular. Piense en todos los frameworks PHP que vinieron antes de que Laravel tomara el mundo PHP por asalto. ¿Recuerda la “revolución” NoSQL que nos hizo reconsiderar el uso de MySQL en favor de sistemas de bases de datos más elegantes y flexibles? Resulta que SQL sigue siendo fuerte.

“Just use MySQL, the boring tech revolution is here” Marty Weiner, Reddit CTO, 2016

La mayoría de las herramientas que los desarrolladores consideran estándares de la industria están creadas por grandes empresas como Google y Facebook y son perfectas para sus necesidades. Es posible que un equipo pequeño o un desarrollador en solitario tenga las mismas necesidades, pero ¿es eso probable? ¿O es todo impulsado por la presión y la publicidad de los compañeros? ¿O por marketing?

¿Es lo que quiere hacer perfectamente alcanzable con JavaScript simple y elDOMAPI, o realmente necesita reescribir toda su aplicación enReaccionary pasar días tratando de hacerWebpack¿Haz lo que quieras? A veces es una gran elección, a veces menos que perfecta. Trabajar con las API DOM se siente aburrido, pero eso podría hacer que su aplicación sea mucho más rápida, mientras que todos los demás en el círculo de ingeniería dicen que será un desastre, que podría enviarla en 10 veces menos tiempo y podría funcionar 10 veces mejor.

Una regla es que conoces las trampas de tu plataforma, el césped siempre es más verde al otro lado de la valla y te gusta imaginar que las nuevas plataformas sean 100% perfectas. Eso nunca sucede, y el diablo está en los detalles.

Detalles que tal vez dominaste en años de invertir en esa pila que ahora te parece aburrida, ¡porque eres ingeniero! ¡Te gustan los desafíos! ¡No querrás perderte la oportunidad de aprender cosas nuevas!

Aún puedes hacerlo.

Creo que siempre debes experimentar, crear proyectos paralelos, pero cuando se trata de plataformas críticas (como la plataforma de tu blog, eso es crítico si lo tomas en serio), la tecnología aburrida es mejor. Y comprender este concepto es parte de convertirse en un desarrollador senior.


Más tutoriales de laboratorio: