Je souhaite commencer à développer pour Discourse, par où dois-je commencer ?

J’ai développé des plugins pour une plateforme de forum obsolète il y a plusieurs années, qui utilisait PHP et MySQL. J’étais vraiment satisfait de certaines des fonctionnalités que j’ai pu créer, et mes membres l’étaient aussi.

Je n’ai jamais travaillé avec Ruby on Rails auparavant (à l’exception des difficultés rencontrées lors du processus d’importation du script pour transférer mes données vers Discourse au départ :joy:).

Je suppose qu’avant de plonger dans une partie de la documentation et des guides de développement ici, j’ai besoin d’abord de quelques bases.

Devrais-je apprendre Ruby on Rails en premier ?

Dois-je également apprendre Ember.js ? Je l’avoue, je n’ai jamais touché à cela non plus, mais je comprends qu’il est utilisé dans le cœur de Discourse.

Je suis également nouveau sur Postgres.

Tous conseils et étapes suivantes suggérées seraient appréciés.

8 « J'aime »

Super !

Il y a quelques articles utiles à ce sujet. Je vais vous mettre le lien vers le mien car il fait référence à ceux-ci. How can I make my own Discourse plugins? - #2 by merefield

(Bien que je recommande personnellement VSCode maintenant)

Une façon de commencer est d’aider à soutenir un plugin existant en soumettant des PR (c’est ainsi que j’ai commencé), en commençant simplement par des problèmes mineurs, puis en passant à la résolution de problèmes plus importants et peut-être à l’ajout de nouvelles fonctionnalités.

Si vous avez une idée pour un plugin ou un composant de thème qui est raisonnablement simple, commencez par là. Les objectifs créatifs personnels peuvent être très motivants.

Ne vous lancez pas dans des projets trop ambitieux au début et commencez simplement, car la dernière chose que vous voulez faire est de perdre votre motivation : ces choses peuvent être difficiles, surtout lorsque vous souhaitez apporter des changements fondamentaux.

Soyez patient. EmberJS est un animal particulièrement difficile à maîtriser.

Mon conseil serait de commencer par les composants de thème et de passer aux plugins un peu plus tard.

Utilisez toujours la vaste bibliothèque de plugins et de TC existants comme aide. Peut-être que quelqu’un a déjà résolu quelque chose de similaire ? Comment ont-ils fait ? Jetez un œil au code. Utilisez toujours les normes définies par le cœur de Discourse. Le code source de Discourse est également une ressource inestimable.

Peut-être que le meilleur conseil est : faites-le ! La seule façon d’apprendre est de se salir les mains, vraiment. N’ayez pas peur de faire des erreurs et ne laissez jamais la frustration vous arrêter. Continuez et les choses finiront par fonctionner. Essayez de résoudre les problèmes par vous-même autant que possible, mais vous pouvez toujours faire appel aux autres lorsque vous en avez absolument besoin.

12 « J'aime »

J’ai passé beaucoup de temps à apprendre Rails. Mais beaucoup de choses se passent du côté d’Ember/JavaScript. Mon conseil serait de commencer par là avec des choses que vous pouvez faire dans les composants de thème. Ils sont beaucoup plus sûrs, plus faciles à utiliser et peuvent faire énormément de choses.

7 « J'aime »

Quelle est la meilleure façon de commencer à apprendre Ember.js ? Recommandez-vous des cours en ligne ?

J’apprends mieux avec un cours structuré qu’en expérimentant seul, car cela m’oblige à maîtriser les fondamentaux.

Lisez Ember.js Guides - Guides and Tutorials - Ember Guides

Considérez également https://guides.rubyonrails.org/

3 « J'aime »

Depuis que j’ai commencé à m’y intéresser récemment, je suis d’accord avec Jay @pfaffman.

Le meilleur point de départ est les composants de thème

Quelques raisons (d’autres pourront en donner de meilleures, voici les miennes, OTTOMH) :

  • Les composants de thème sont faciles à développer et les modifications sont visibles rapidement sans avoir besoin d’une configuration de développement web avancée.

  • Les composants de thème sont puissants et permettent de réaliser beaucoup de choses, notamment l’ajout facile de bibliothèques JavaScript.

  • Les composants de thème facilitent l’ajout de votre propre code JavaScript et de sélecteurs, vous permettant ainsi d’utiliser facilement l’inspecteur pour créer un sélecteur et insérer des éléments comme des divs (vos divs préférées).

Ensuite, une fois que vous serez familiarisé avec les composants de thème et que vous vous serez amusé avec, vous pourrez commencer à approfondir le développement de plugins.

C’est une progression logique pour améliorer vos compétences en développement Discourse et apprendre les bases.

5 « J'aime »

Désolé, je pense que j’ai oublié celui-ci, qui a été considérablement développé. Il y a beaucoup de matériel ici pour vous occuper : Developing Discourse Themes & Theme Components

3 « J'aime »

Ma meilleure recommandation, en plus de celles déjà mentionnées dans ce sujet, est de parcourir le code de nombreux thèmes et composants sur Discourse · GitHub et d’essayer de comprendre ce qui se passe. Clonez-les, brisez-les, et déterminez comment ils fonctionnent. C’est surtout ainsi que j’ai appris, en travaillant sur de petits projets de temps en temps.

3 « J'aime »

Un bon point de départ serait de consulter GitHub - literatecomputing/feverbee-engagement-theme: Theme component based on expert.feverbee.com · GitHub et de le nettoyer en supprimant tout ce qui ne devrait pas s’y trouver. Ensuite, soumettez une PR. :slight_smile:

3 « J'aime »

Je vois ce que tu fais là, @pfaffman. :grin: Cela dit, je ne pense pas que tu veuilles que je nettoie ton code pour l’instant, mais je suis d’accord pour dire que soumettre des PR pourrait être un excellent point de départ. D’abord, je dois creuser certaines des ressources déjà partagées dans ce fil.

Mon plus grand défi pour le moment sera de passer de mon expérience avec la pile LAMP à celle de Discourse. LNPR (Linux, Nginx, Postgres, Ruby/Rails) ? Haha.

3 « J'aime »

On ne peut pas blâmer quelqu’un qui essaie. :wink:

Mais sérieusement, ce thème fait plein de choses qui donnent des idées sur ce que les thèmes peuvent accomplir. Pouvoir créer une toute nouvelle liste de sujets est incroyable. Le nettoyer (il y a une tonne de code qui ne devrait tout simplement pas être là, mais quand j’ai essayé de le supprimer, j’ai cassé des choses et j’ai fini par le laisser plutôt que de chercher où j’avais foiré une parenthèse fermante ou… quelque chose), même juste pour soi-même, serait un excellent exercice. Pour vous donner plus de contexte afin de savoir si mes conseils sont susceptibles de vous être utiles, je suis quelqu’un avec un diplôme en informatique qui a arrêté d’apprendre le HTML vers 1998. Je comprends théoriquement ce que le CSS peut faire, et je reste totalement perplexe face à JavaScript ; je ne sais pas où JavaScript s’arrête et où Ember commence. J’essaie fréquemment de faire des modifications que je pense être triviales, et je finis par casser le monde.

Bonne chance !

2 « J'aime »

Je viens moi aussi d’un contexte LAMP (c’est-à-dire WordPress). C’est difficile, mais on peut comprendre si on y consacre suffisamment de temps.

2 « J'aime »