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 ).
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.
(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.
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.
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.
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.
Je vois ce que tu fais là, @pfaffman. 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.
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.