こんにちは、私はアレクサンダーと申します。最近、WSLを介してDiscourseをインストールし、学習を始めたばかりです。
2週間後、大きな問題に気づきました。Discourseには優れたプラグイン開発ガイドがほとんどなく、数記事があるのみです。学習は、蓄積された膨大なコードを読むことに尽きるとされています。
私は毎日勉強しており、毎日多くの疑問が生じます。これらの疑問に答え、Discourseの学習をサポートしてくれるメンターを探しています。
もちろん、このような貴重なサービスに対しては報酬を支払う用意があります。英語、ロシア語、タイ語を話せます。ご提案をいただけることを心より楽しみにしております。
Pavilion をご覧ください。
当面の間、以下もご覧ください:
プラグイン開発の初心者向けガイドシリーズをご覧になりましたか?
これはまさにあなたの状況に合わせて書かれた 7 部構成のシリーズです。各ガイドの最後に、ガイドの完全な一覧が掲載されています。
はい、すべて読みました。それでも質問があります。
残念ながら、このガイドでは .rb ファイルへのフックについては触れられていません。
例えば、ユーザーが PUP(Potentially Unwanted Program:望ましくないプログラム)をアップロードすることがあるため、メインドメインが Google やアンチウイルスソフトによってブロックされないよう保護したいと考えています。
具体的には、プラグイン内のダウンロードリンクを以下のように置換する必要があります:
“https://discourse.example.com/uploads/short-url/...exe” => “https://download.proxy.com/uploads/short-url/....exe”。
どうすればよいでしょうか?まず適切なメソッドを見つける必要があると思いますが、どのメソッドでしょうか?どのようにして必要なメソッドを見つけるのか? プラグイン内でどのようにフックを設定すればよいのでしょうか?メソッドを置換するのか、拡張するのか、あるいは両方を行うにはどうすればよいのでしょうか?他にも多くの疑問があります。
ジャズ音楽を学んで得た教訓:
物事の仕組みを理解する最良の方法は、既存の事例を見てみることです。
かつて、私の憧れの一人からレッスンを受けたことがあり、それは非常に幸運でした。彼は「レコードを本当に聞き込め。すべてそこに詰まっている!」と教えてくれました。
Discourse プラグインの場合、すでに存在する良質なプラグインや Discourse のソースコード内で、機能的に同じユースケースを探し、同じパターンに従ってください。私は 2 年以上プラグイン開発を続けていますが、今でもこの方法を採用しています。
アドバイスありがとうございます。
@ramjke 一点追加で、もし提供したリンクから明確でなければ:コミュニティのメンバーとなり、オープンソースプラグインに貢献していただければ、メンタリングを無料で提供しています。通常は、プラグインの機能追加や厄介なバグ修正などの PR(プルリクエスト)を作成いただき、私たちが本番リリースの準備ができるまで改善をサポートするという形になります。私自身もこのようにして学びました:実用的な機能を実際のプロジェクトに貢献することで。PR は学習ワークフローの完璧な手段です。これにより、これらの人気のあるプラグインの維持管理ができると同時に、素晴らしい学習体験にもなります。すでに、あなたが取り組める機能のバックログが多数あります :)。
ありがとうございます。確認いたします。
This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.