Componenti Glimmer: qual è il limite qui?

A seguito di un suggerimento su un altro argomento, ho appena iniziato ad apprendere i componenti Glimmer dalla documentazione di Ember. In realtà, sono davvero un piacere da usare e migliori rispetto alla creazione in React, secondo me. Sono sorpreso che Ember non sia più popolare. In ogni caso, la mia domanda è: da quello che posso capire, puoi creare qualsiasi plugin a tema in Discourse utilizzando i componenti Glimmer e sembra che tu abbia accesso a tutto da Ember pronto all’uso. Quindi non puoi, in teoria, personalizzare qualsiasi parte di Discourse creando componenti Glimmer? Qual è la limitazione qui? Sono disponibili tutte le funzionalità di Ember/Glimmer su Discourse e poi devi solo trovare un plugin outlet per il componente e inizializzarlo correttamente? Ad esempio, ho dovuto integrare alcuni dei miei argomenti nella mia community con dati di prodotto correlati da un sito di e-commerce esterno. Quindi la mia idea è di creare un componente a tema Glimmer in Discourse per eseguire un fetch per ottenere i dati del prodotto e quindi visualizzarli alla fine del post. È abbastanza semplice con Glimmer, ma mi chiedo se intraprendere questa strada sia il modo corretto per farlo in Discourse poiché non sono sicuro fino a che punto posso spingere i componenti Ember/Glimmer. Grazie per qualsiasi feedback.

3 Mi Piace

Penso che tu capisca le cose correttamente.

Finché le impostazioni di cross scripting lo consentono, dovresti essere in grado di recuperare i dati dal sito remoto (e non è necessario utilizzare una chiave API segreta, che sarà ottenibile dall’utente).

1 Mi Piace

Potrebbe funzionare,

Anche se dovresti essere consapevole che questo recupererebbe i dati del prodotto dal sito Web esterno ad ogni visualizzazione della pagina e questo potrebbe non essere qualcosa che tu - o loro - desideri. Quindi sarebbe meglio creare un plugin, farlo richiedere i dati dal tuo controller e far sì che quel controller richieda i dati dal sito remoto. Ciò consentirebbe la memorizzazione nella cache del risultato e ti permetterebbe anche di utilizzare eventuali API non pubbliche.

Se c’è un link a un prodotto e i dati non sono aggiornati, potresti anche creare un plugin che “onebox” il prodotto e aggiunga lì i dati aggiuntivi.

2 Mi Piace

Grazie. Stavo pensando che EmberData fosse disponibile e sembra che abbia una cache integrata. Non ho ancora testato EmberData all’interno di Discourse, ma c’è un motivo per cui non dovrebbe funzionare?

2 Mi Piace

Sarebbe lato client (cioè specifico per l’utente) e risolverebbe il problema se avessi un utente che effettua la (stessa) richiesta 1000 volte.
Ma se hai 1000 utenti, che effettuano la richiesta una sola volta ciascuno, allora non funzionerebbe, poiché hanno tutti una cache separata.

1 Mi Piace

Grazie per il chiarimento. Sì, è il lato client che mi preoccupa di più, poiché l’API ha limiti basati su un indirizzo IP. Quindi, finché il client stesso viene memorizzato nella cache, dovrei stare bene poiché non ho molti utenti simultanei che influirebbero sui vincoli dell’API esterna.

La mia unica riluttanza con Ember è che sembra che nessuno lo usi più, tranne Discourse. Lo sto imparando solo perché Discourse continua a diventare sempre più popolare e la piattaforma continua a migliorare. Ma c’è un futuro per Ember al di fuori di Discourse e Discourse si affiderà ad esso per molto tempo in futuro? Trovo strano che Ember non sia più popolare. Ho sviluppato in React per anni e dopo aver installato Ember l’altro giorno, sono rimasto sorpreso da quanto fosse buono. È molto utile avere un framework opinionato.

1 Mi Piace

Solo CDCK può rispondere completamente a questo, ma la mia opinione:

  • Sembra completamente investito
  • È un eccellente framework “full-fat”.
  • Sarebbe molto costoso riscriverlo (e quasi certamente non avrebbe alcun senso commerciale)
  • È Ember da oltre un decennio, fai le tue scommesse.

Un enorme elenco di aziende utilizza EmberJS:

4 Mi Piace

Discourse non utilizza EmberData.

Sebbene fosse più popolare in passato, quando utilizzatori come Apple, LinkedIn e Twitch lo usavano, ha ancora utenti come noi, Intercom, Hashicorp, CrowdStrike.

Ci siamo uniti a Ember Initiative | Mainmatter poiché Discourse è pienamente investito in esso.

10 Mi Piace

Tornando al titolo di questo argomento. Penso sia abbastanza chiaro che i componenti Glimmer scalano bene, dato che CDCK si è finalmente sentito a suo agio nel permettere l’aggiunta di componenti all’elenco degli argomenti, il che richiede che il framework funzioni su larga scala, vedi: Upcoming topic-list changes - how to prepare themes and plugins

Originariamente le estensioni si basavano sul sistema di widget ora deprecato, che è stato creato per affrontare le sfide di rendering di molti elementi dell’elenco degli argomenti anche su vecchi telefoni Android.

3 Mi Piace