"Si un trabajador quiere hacer bien su trabajo, primero debe afilar sus herramientas." - Confucio, "Las Analectas de Confucio. Lu Linggong"
Página delantera > Programación > El brillo y el brillo hacen que mi ritmo cardíaco baje: un estudio de caso

El brillo y el brillo hacen que mi ritmo cardíaco baje: un estudio de caso

Publicado el 2024-11-08
Navegar:795

Lustre and Gleam Make my Heart Rate Go Down - a Case Study

Recientemente un cliente se acercó a mí acerca de una aplicación javascript de "evaluación financiera" en su sitio de Wordpress que ya no funcionaba. Tuvo muchos problemas y, al final, la ruta más fácil fue reconstruirlo.

En esta aplicación, los usuarios pueden ingresar información financiera y personal básica, y la aplicación les indica si están en el camino correcto en términos de planificación financiera. No es una lógica muy compleja, pero hay bastante de ella.

No soy, principalmente, un desarrollador frontend. Me siento más cómodo en la parte trasera. Pero he implementado proyectos en Vue, Angular, React... Ellos funcionan, pero no confío plenamente en ellos. Y a medida que pasan los meses y los años, siempre desarrollo una ansiedad creciente sobre cuán obsoletas deben haberse vuelto las dependencias, incluida la propia cadena de herramientas de desarrollo.

Introduzca brillo

¡Gleam es un lenguaje amigable para construir sistemas con seguridad de tipos que escalan!
~ Sitio web de Gleam

He estado entusiasmado con Gleam desde que declararon por primera vez que la versión 1 estaba lista para producción. Su estilo funcional, inmutabilidad, coincidencia exhaustiva de patrones, inferencia de tipos y la simplicidad y estabilidad de Go significaron que Gleam alcanzó todos mis puntos óptimos.

El sistema de tipos prácticamente garantiza que si su código se compila, funcionará. Todavía tengo que encontrar un error en mi código Gleam que no sea una versión de "mi error, olvidé terminar de implementarlo".

Entra en brillo

Gleam fue creado para ejecutarse en BEAM (la legendaria máquina virtual de Erlang probada en batalla), pero también tiene un objetivo de compilación de Javascript. Eso significa que se puede enviar fácilmente a Node y al navegador.

Lustre es el marco de interfaz de usuario más destacado de Gleam. Es una adaptación fiel de Elm al ecosistema Gleam y presenta la arquitectura de gestión de estado "Modelo -> Ver -> Actualizar" de Elm.

Este es un modelo conceptual drásticamente más simple que otros frameworks frontend. En lugar de ofrecer gestión estatal como una biblioteca opcional (te estoy mirando redux), el modelo de gestión estatal de Lustre es su núcleo central.

Simplemente describe cada verbo que puede tener lugar para modificar el estado dentro de tu aplicación y asigna ese verbo a una operación pura con seguridad de tipos que devuelve una versión actualizada del modelo. Las funciones de vista (también puras) fluyen directamente desde el estado de ese modelo unitario.

Lustre también proporciona un sistema de efectos administrados para que, incluso con varias operaciones de E/S que puedan fallar, el código de su aplicación se pueda implementar usando funciones completamente puras.

¿Lo bueno de las funciones puras? Se garantiza que siempre proporcionarán el mismo resultado dada la misma entrada. Esto los hace predecibles, fáciles de probar y extremadamente estables. Las funciones puras no se rompen. Matemáticamente no pueden.

Dulce, dulce repetitivo

Las aplicaciones Lustre pueden implicar un un poco más estándar para configurar la aplicación y crear todos los tipos y demás. Pero ...

Nunca ha habido un marco más adecuado al que se le aplicó el término "repetitivo". Me da la misma sensación de confianza que obtendría al clavar un remache en una lámina de acero. Una vez colocada, esa cosa no irá a ninguna parte.

Me cuesta expresar lo diferente que se siente esto en comparación con mis experiencias anteriores con JavaScript. Mi aplicación podría haber tenido menos LOC si la hubiera hecho en otro marco. ¿Pero confiaría en que no se rompería? ¿Sería igual de sencillo de entender?

El producto final

Envié mi aplicación a tiempo y por debajo del presupuesto. El cliente está realmente contento con ello. Y duermo tranquilo sabiendo que este proyecto está bien y verdaderamente terminado.

No solo eso, sino que vive cómodamente en Wordpress de todos los lugares. Hice un código corto para cargar los recursos compilados, lo instalé en la página y eso es todo.

El paquete JS tiene 18,1 kb, está minificado y comprimido con gzip. Eso es casi tan pequeño como htmx. ¡Por llorar a gritos!

Tengo algunas reservas acerca de enviar un proyecto usando lo que todavía es un lenguaje y un marco relativamente oscuro. Pero esas reservas se alivian al saber que la aplicación no se romperá y que Gleam se puede aprender en una tarde.

Lo más importante: sinceramente, no creo que tuviera tanta confianza en el producto final, en la estabilidad de la cadena de herramientas o en mi capacidad para actualizarla en el futuro, si la hubiera construido usando cualquier otra cosa. .

Mi ritmo cardiaco

Ahora llego a mi motivación para escribir esta publicación: la sensación de tener una aplicación Lustre en producción

Han pasado un par de semanas desde que se lanzó esta aplicación y todavía me gusta volver a visitarla de vez en cuando. No porque el cliente haya pedido cambios. Sólo para mirar el código.

Casi me da vergüenza decir esto, pero la mayor parte de mi otro código se siente como una responsabilidad en algún nivel. Especialmente javascript. Incluso si es Typecript, incluso si tiene pruebas. Me hace sentir ansioso, como si estuviera lleno de minas terrestres ocultas y trampas explosivas.

Tal vez sea una cuestión de habilidad. Quizás me han quemado demasiadas veces.

Ver mi código Gleam/Lustre me hace sentir calma.

Eso es todo. Ese es el tuit.

Para terminar, es mi más sincero deseo que otros desarrolladores le den una oportunidad a Gleam y Lustre, para que ellos también puedan disfrutar de esta misma dicha Zen al contemplar su código de interfaz.

Gracias por leer.

Declaración de liberación Este artículo se reproduce en: https://dev.to/enoonan/lustre-and-gleam-make-my-heart---fo-do- do-a-case-study-5765?1 Si hay alguna infracción, comuníquese con [email protected] para eliminarlo.
Último tutorial Más>

Descargo de responsabilidad: Todos los recursos proporcionados provienen en parte de Internet. Si existe alguna infracción de sus derechos de autor u otros derechos e intereses, explique los motivos detallados y proporcione pruebas de los derechos de autor o derechos e intereses y luego envíelos al correo electrónico: [email protected]. Lo manejaremos por usted lo antes posible.

Copyright© 2022 湘ICP备2022001581号-3