Grafana itself has a BigTent philosophy, supporting as much of the observability ecosystem as possible. Esto proporciona a nuestros usuarios una gran cantidad de flexibilidad en la visualización de sus datos, sin importar cuál sea la fuente, ya sea desde su clúster de Kubernetes, Raspberry Pi, diferentes servicios en la nube, o incluso Google Sheets.
Al mismo tiempo, sin embargo, esto puede llevar a confusión por parte de nuestros usuarios finales al tratar de averiguar cómo construir la mejor solución de observabilidad para ellos mismos.
Otro desafío que hemos enfrentado con React es con el paradigma de Hooks. Algunos en Grafana han expresado su frustración con Hooks ya que introducen cierres obsoletos y requieren aprender y dominar las reglas de Hook. Los componentes funcionales, como se les llama, rara vez son funciones puras. Los Hooks también introducen un acoplamiento mucho más fuerte con el tiempo de ejecución de React que antes. El nombre Hook indica esto. Estás enganchándote a los internos de React. Así que necesitas entender esos internos. Los Hooks están lejos de ser una abstracción funcional, ya que necesitas conocer los detalles internos de su implementación. Esto se vuelve aún más evidente cuando intentas probar un hook en aislamiento.
React ha seguido un paradigma de programación funcional. Y algunos temen que con la introducción de Hooks pueda estar desviándose de ese paradigma y entrando en el territorio de los frameworks. Aunque algunos en Grafana han expresado preocupaciones con los Hooks, es importante notar que han sido una herramienta poderosa para nuestros desarrolladores. Como con cualquier herramienta, puede haber una curva de aprendizaje, pero una vez dominada, pueden mejorar enormemente el proceso de desarrollo. En Grafana, reconocemos la importancia de explorar y experimentar con nuevas herramientas y metodologías para mejorar continuamente nuestros procesos de desarrollo. Apreciamos los beneficios que los Hooks han traído a nuestro flujo de trabajo de desarrollo y continuamos explorando nuevas formas de mejorar nuestras herramientas y procesos.
Dicho esto, estamos emocionados de anunciar nuestro nuevo enfoque para construir nuestra biblioteca de tiempo de ejecución de paneles de próxima generación, Scenes. Hemos tomado un enfoque diferente que simplifica el proceso de desarrollo y reduce la curva de aprendizaje para nuestros desarrolladores. Con Scenes, cada componente se suscribe al estado construido con ArcGIS, renderiza el marcado y canaliza las devoluciones de llamada de nuevo al modelo de estado. Hemos eliminado la necesidad de conceptos complicados como useEffects y useCallbacks. El modelo de estado se encarga de cualquier efecto de montaje necesario, haciendo que el proceso de desarrollo sea más intuitivo y eficiente. Estamos seguros de que nuestra nueva biblioteca será un cambio de juego para nuestros desarrolladores y creemos que este enfoque simplificado llevará a una experiencia de desarrollo más positiva. Aunque la biblioteca aún está en sus primeras etapas de desarrollo, estamos emocionados de ver cómo continuará evolucionando y mejorando la forma en que construimos nuestros paneles.
A pesar de nuestros desafíos, creemos que React es una herramienta poderosa para resolver el problema de implementar y mantener frontends complejos. La sutileza estructural es clave, y con ella hay una libertad para considerar una miríada de opciones de gestión de estado y elegir la que tenga más sentido. De cara al futuro, es importante reconocer que como comunidad de código abierto, tenemos opciones. Cuando una herramienta deja de resolver el problema para el que la contratamos, podemos desecharla y probar una nueva. React no se aleja de esto, y tampoco Grafana. Pero por ahora, estamos contentos con nuestra decisión de cambiar a React, y continuaremos usándola mientras tenga sentido hacerlo. Si estás interesado en aprender más sobre Grafana y nuestra nueva biblioteca de tiempo de ejecución de paneles themes, por favor revisa la próxima conferencia GrafanaCon.
Comments