Ich möchte mit der Entwicklung für Discourse beginnen, wo soll ich anfangen?

Vor vielen Jahren habe ich Plugins für eine veraltete Foren-Plattform entwickelt, die PHP und MySQL verwendete. Ich war mit einigen der Dinge, die ich umsetzen konnte, sehr zufrieden, und meine Mitglieder auch.

Ich habe noch nie mit Ruby on Rails gearbeitet (mit der Ausnahme, dass ich mich durch das Import-Skript gekämpft habe, um meine Daten überhaupt erst in Discourse zu bekommen :joy:).

Ich gehe davon aus, dass ich vor dem Eintauchen in die Dokumentation und Entwicklungsguides hier einige Grundlagen zuerst lernen muss.

Sollte ich zuerst Ruby on Rails lernen?

Muss ich auch Ember.js lernen? Zugegeben, damit habe ich mich noch nie beschäftigt, aber ich verstehe, dass es im Kern von Discourse verwendet wird.

Auch mit Postgres bin ich neu.

Jeder Rat und vorgeschlagene nächste Schritte wären sehr willkommen.

Toll!

Es gibt einige nützliche Beiträge dazu. Ich verlinke dir meinen, da er diese erwähnt. How can I make my own Discourse plugins? - #2 by merefield

(Obwohl ich persönlich mittlerweile VSCode empfehle.)

Ein Einstiegsmöglichkeit ist es, bei der Unterstützung eines bestehenden Plugins mit Pull Requests zu helfen (so habe ich angefangen): Beginne einfach mit kleinen Problemen und arbeite dich dann zu größeren Aufgaben vor, vielleicht sogar bis zum Hinzufügen neuer Funktionen.

Wenn du eine Idee für ein Plugin oder eine Theme-Komponente hast, die überschaubar ist, fange einfach damit an. Persönliche kreative Ziele können sehr motivierend sein.

Überfordere dich am Anfang nicht und beginne einfach. Das Letzte, was du willst, ist, die Motivation zu verlieren: Diese Dinge können schwierig sein, besonders wenn du grundlegende Änderungen vornehmen möchtest.

Sei geduldig. EmberJS ist ein besonders kniffliges Tier, das man erst verstehen muss.

Mein Rat wäre: Beginne mit Theme-Komponenten und gehe etwas später zu Plugins über.

Nutze stets die riesige Bibliothek bestehender Plugins und Theme-Komponenten als Hilfe. Hat vielleicht jemand bereits Ähnliches gelöst? Wie haben sie es gemacht? Schau dir den Code an. Halte dich stets an die von Discourse Core vorgegebenen Standards. Die Discourse-Quellcode ist ebenfalls eine unschätzbare Ressource.

Vielleicht ist der beste Rat: Einfach anfangen! Der einzige Weg zu lernen ist, wirklich selbst Hand anzulegen. Hab keine Angst vor Fehlern und lass dich niemals von Frustration aufhalten. Bleib dran, und es wird irgendwann funktionieren. Versuche, die Dinge so weit wie möglich selbst zu lösen, aber zögere nicht, andere um Hilfe zu bitten, wenn du es wirklich brauchst.

Ich habe lange Zeit damit verbracht, Rails zu lernen. Aber viele Dinge passieren auf der Ember/JavaScript-Seite. Mein Rat wäre, dort anzufangen, mit Dingen, die du in Theme-Komponenten umsetzen kannst. Sie sind viel sicherer, einfacher zu verwenden und können eine ganze Menge leisten.

Was ist der beste Weg, um Ember.js zu lernen? Könnt ihr irgendwelche Online-Kurse empfehlen?

Ich lerne besser mit einem strukturierten Kurs als nur alleine herumzuspielen, da mich das dazu zwingt, die Grundlagen zu erlernen.

Lesen Sie die Ember.js Guides - Guides and Tutorials - Ember Guides

Berücksichtigen Sie auch https://guides.rubyonrails.org/

Nachdem ich mich kürzlich damit beschäftigt habe, stimme ich Jay @pfaffman zu.

Der beste Ausgangspunkt sind theme components.

Einige Gründe (andere mögen bessere nennen, hier sind meine, OTTOMH):

  • theme components sind einfach zu entwickeln, und Änderungen können schnell gesehen werden, ohne ein aufwendiges Web-Dev-Setup.

  • theme components sind leistungsstark, und damit lässt sich viel erreichen, einschließlich der einfachen Integration von javascript-Bibliotheken.

  • theme components ermöglichen es leicht, eigenen JavaScript-Code und Selektoren hinzuzufügen. So kannst du den Inspector nutzen, um Selektoren zu erstellen und Elemente wie Divs (deine Lieblings-Divs) einzufügen.

Sobald du dich mit theme components vertraut gemacht hast und Spaß daran hattest, kannst du tiefer in die Plugin-Entwicklung einsteigen.

Dies ist ein logischer Weg bzw. eine sinnvolle Progression, um deine Discourse-Entwicklungsfähigkeiten zu verbessern und die Grundlagen zu erlernen.

Entschuldigung, ich habe diesen hier wohl übersehen, der sich mittlerweile stark erweitert hat. Hier gibt es reichlich Stoff zum Bearbeiten: Developing Discourse Themes & Theme Components

Meine beste Empfehlung neben den bereits in diesem Thema genannten großartigen Tipps ist, den Code der zahlreichen Themes/Komponenten auf Discourse · GitHub durchzulesen und zu versuchen zu verstehen, was vor sich geht. Klonen Sie sie, brechen Sie sie, finden Sie heraus, was los ist. So habe ich es hauptsächlich gelernt, zusammen mit der Arbeit an kleinen Projekten hier und dort.

Ein guter Anfang wäre, sich die Seite GitHub - literatecomputing/feverbee-engagement-theme: Theme component based on expert.feverbee.com · GitHub anzusehen und sie zu bereinigen, indem du alles Überflüssige löschst, das dort nicht hingehört. Anschließend kannst du einen PR einreichen. :slight_smile:

Ich sehe, was du da machst, @pfaffman. :grin: Das heißt, ich glaube nicht, dass du möchtest, dass ich deinen Code schon jetzt aufräume, aber ich stimme zu, dass das Einreichen von PRs ein großartiger Anfang sein könnte. Zuerst muss ich mich etwas in die Ressourcen einarbeiten, die bereits in diesem Thread geteilt wurden.

Meine größte Herausforderung wird derzeit sein, von meinem LAMP-Hintergrund auf den Discourse-Stack umzusteigen, wie auch immer der genannt wird. LNPR (Linux, Nginx, Postgres, Ruby/Rails)? Haha.

Man kann einem Mann ja nicht verdenken, dass er es versucht. :wink:

Aber im Ernst: Dieses Theme macht eine Menge Dinge, die dir einige Ideen darüber geben, was Themes leisten können. Die Möglichkeit, eine komplett neue Themenliste zu erstellen, ist einfach großartig. Es aufzuräumen (es gibt jede Menge Code, der einfach nicht dorthin gehört, aber als ich versuchte, ihn zu entfernen, habe ich etwas kaputt gemacht und habe es schließlich gelassen, anstatt herauszufinden, wo ich eine schließende Klammer oder so etwas falsch gesetzt habe), selbst nur für dich selbst, wäre eine ziemlich gute Übung. Um dir mehr Kontext zu geben, damit du einschätzen kannst, ob mein Rat für dich nützlich sein wird: Ich spreche aus Erfahrung als jemand mit einem Informatikabschluss, der um 1998 herum aufgehört hat, HTML zu lernen. Ich verstehe theoretisch, was CSS leisten kann, bin aber immer noch ziemlich ratlos, wenn es um JavaScript geht, und verstehe nicht, wo JavaScript aufhört und Ember beginnt. Ich versuche häufig Änderungen vorzunehmen, die ich für trivial halte, und am Ende bringe ich die ganze Welt durcheinander.

Viel Erfolg!

Ich komme ebenfalls aus einem LAMP-Hintergrund (also WordPress). Diese Dinge sind schwierig, aber wenn man sich genug Zeit nimmt, kann man sie verstehen.