Debido a una sugerencia en otro tema, acabo de empezar a aprender sobre los componentes Glimmer de la documentación de Ember. De hecho, son muy agradables de usar y mejores que construir en React, en mi opinión. Me sorprende que Ember no sea más popular. En cualquier caso, mi pregunta es, por lo que puedo ver, puedes crear cualquier plugin de tema en Discourse usando componentes Glimmer y parece que tienes acceso a todo de Ember de inmediato. Entonces, ¿no puedes, en teoría, personalizar cualquier parte de Discourse creando componentes Glimmer? ¿Cuál es la limitación aquí? ¿Están todas las características de Ember/Glimmer disponibles en Discourse y luego solo necesitas encontrar un punto de conexión de plugin para el componente e inicializarlo correctamente? Por ejemplo, necesitaba complementar algunos de mis temas en mi comunidad con datos de productos relacionados de un sitio web de comercio electrónico externo. Así que mi idea es crear un componente de tema Glimmer en Discourse para ejecutar una solicitud fetch para obtener los datos del producto y luego mostrarlos al final de la publicación. Es algo sencillo con Glimmer, pero me pregunto si seguir esta ruta es la forma correcta de hacerlo en Discourse, ya que no estoy seguro de hasta dónde puedo llevar los componentes Ember/Glimmer. Gracias por cualquier comentario.
Creo que entiendes las cosas correctamente.
Siempre que la configuración de cross scripting lo permita, deberías poder extraer datos del sitio remoto (y no necesitas usar una clave API secreta, que será accesible para el usuario).
Eso funcionaría,
Aunque debes tener en cuenta que esto obtendría los datos del producto del sitio web externo en cada visita a la página y eso podría no ser algo que tú, o ellos, quieran. Por lo tanto, sería mejor crear un plugin, hacer que solicite los datos a tu propio controlador, y que ese controlador solicite los datos al sitio remoto. Eso permitiría almacenar en caché el resultado y también te permitiría usar cualquier API no pública.
Si hay un enlace a un producto y los datos están desactualizados, también podrías crear un plugin que “onebox” el producto y agregue los datos adicionales allí.
Gracias. Estaba pensando que EmberData está disponible y parece tener caché incorporado. Aún no he probado EmberData dentro de Discourse, pero ¿hay alguna razón por la que no funcionaría?
Eso sería del lado del cliente (es decir, específico del usuario) y resolvería el problema si tuvieras un usuario haciendo la (misma) solicitud 1000 veces.
Pero si tienes 1000 usuarios, haciendo la solicitud una sola vez cada uno, entonces no funcionaría, ya que todos tienen una caché separada.
Gracias por la aclaración. Sí, me preocupa más el lado del cliente, ya que la API tiene límites basados en una dirección IP. Así que, siempre que el cliente en sí se almacene en caché, estaré bien, ya que no tengo muchos usuarios concurrentes que afecten las restricciones de la API en la API externa.
Mi única reticencia con Ember es que parece que nadie lo usa realmente, excepto Discourse. Solo lo estoy aprendiendo porque Discourse es cada vez más popular y la plataforma continúa mejorando. Pero, ¿hay un futuro para Ember fuera de Discourse y dependerá Discourse de él durante mucho tiempo? Me parece extraño que Ember no sea más popular. He desarrollado en React durante años y, después de instalar Ember el otro día, me sorprendió lo bueno que era. Es muy útil tener un framework con opinión.
Solo CDCK puede responder completamente a eso, pero mi opinión:
- Parece totalmente invertido
- ES un excelente framework completo.
- Sería muy caro reescribirlo (y casi con toda seguridad no tendría ningún sentido comercial)
- Ha sido Ember durante más de una década, haz tus apuestas.
Una gran lista de empresas utiliza EmberJS:
Discourse no usa EmberData.
Aunque fue más popular en su momento, cuando lo usaban empresas como Apple, LinkedIn y Twitch, todavía tiene usuarios como nosotros, Intercom, Hashicorp, CrowdStrike.
Nos unimos a Ember Initiative | Mainmatter ya que Discourse está totalmente invertido en ello.
Solo para volver al título de este Tema. Creo que está bastante claro que los Componentes Glimmer escalan bien, ya que CDCK finalmente se sintió cómodo permitiendo agregar Componentes a la Lista de Temas, lo que requiere que el framework funcione a escala, véase: Upcoming topic-list changes - how to prepare themes and plugins
Originalmente, las extensiones dependían del ahora obsoleto sistema de widgets que se creó para hacer frente a los desafíos de renderizar muchos Elementos de Lista de Temas, incluso en teléfonos Android antiguos.