Obrigado, pessoal.
Eu já tinha visto isso antes, mas fico feliz em ter a confirmação de que não é possível adicionar add-ons do Ember até que essa atualização seja concluída. Então, parece que será possível adicionar add-ons do Ember em breve — assim que a atualização for finalizada. Isso soa ótimo.
Acho que essa é uma questão interessante. Aqui está minha opinião:
No que diz respeito ao uso das “coisas abstraídas” do Discourse versus add-ons do Ember: posso estar errado, mas acho que usar add-ons do Ember para tarefas específicas em plugins pode ser mais fácil de manter, nos casos em que você está tentando fazer algo diferente do que o Discourse já faz. Essa é a minha lógica:
Um exemplo aqui seria querer adicionar um novo menu suspenso em um plugin. Essa distinção é provavelmente importante — estou falando de tentar fazer coisas novas em um plugin que não são feitas no código-base do Discourse, e a questão é se começar com os métodos do Discourse ou com um add-on separado.
Muitas vezes, você realmente não tem escolha. Por exemplo, se eu quisesse adicionar um campo personalizado aos tópicos, eu sempre personalizaria sobre os métodos e o código pré-construídos do Discourse.
Mas, se for uma funcionalidade específica — como um menu suspenso para um novo propósito — eu já estaria no cenário em que, se usasse os métodos do Discourse, estaria adaptando-os a coisas para as quais não foram originalmente destinados.
Opção 1: Poderia tentar pegar o código do select-kit que vejo, digamos, no category-chooser, e inseri-lo em um novo local (que não seja sobre categorias) e, em seguida, tentar personalizá-lo para ser sobre o que eu quero que o menu suspenso seja, em vez de categorias. Essa é a tarefa que descrevi anteriormente como complicada.
E pode ser difícil de manter — porque, se a equipe do Discourse mudar algo na forma como o código do select-kit do category-chooser funciona, isso poderia alterar meu novo menu suspenso personalizado, mas de maneiras surpreendentes (já que eu o personalizei para funcionar de forma ligeiramente diferente do menu suspenso real do category-chooser).
Opção 2: Poderia inserir algo do Ember que seja robusto, mas também feito para ser personalizado, onde eu possa ver com bastante clareza como o código realmente funciona. Nesse caso, eu poderia perder recursos legais novos que o Discourse possa adicionar aos seus menus suspensos, mas eu conseguiria acompanhar como meu menu suspenso funciona de forma mais fácil. Então, essa é provavelmente a melhor opção, na minha opinião, se for possível.
Opção 3: Codificar tudo do zero. É para onde eu tenho tendido a acabar. Quando a codificação está pronta, é bom ter um código que eu compreenda totalmente e possa personalizar. Mas, claro, leva mais tempo, e (as versões iniciais, pelo menos) provavelmente não serão tão poderosas e robustas quanto o que a equipe do Discourse ou a equipe do Ember construíram.