بعض الأفكار.
إذا كان افتراض سؤالك هو ما إذا كان يمكنك الانتقال من مطور Python إلى تطوير أشياء للعمل مع Discourse، فالإجابة أكثر دقة.
كما اكتشفت، فإن الانتقال من Python إلى Ruby أمر بسيط نسبيًا. يمكنك جعل Ruby تفعل ما يمكنك فعله في Python بمجرد تعلم الاختلافات الدلالية.
ومع ذلك، كما اضطررت إلى القيام بنفس القفزة قبل بضع سنوات، إذا حاولت ببساطة فعل ما يمكنك فعله باستخدام Python في Ruby، فستفوتك بعض الأشياء التي تجعل Ruby “Ruby”.
ثانياً، تلك الدقة في Discourse.
بينما يعتمد الواجهة الخلفية على Ruby، فإن جزءًا كبيرًا من “التعقيد” في إنشاء أشياء لـ Discourse يكمن في تطوير كل من الواجهة الخلفية (Ruby) والعميل (JavaScript/Ember) للعمل بتناغم.
حتى مع الفهم الشامل لكيفية استخدام Ruby، تحتاج أيضًا إلى استثمار بعض الوقت في فهم كيفية عمل الواجهة الخلفية لـ Discourse. هناك نظام بيئي ممتاز توفره الواجهة الخلفية للإضافات - مثل الوصول إلى البيانات / هياكل البيانات، والتسجيل، والمراسلة بين العمليات، والمهام غير المتزامنة، وما إلى ذلك. وجدت أن الحصول على فهم جيد لهذا كان مهمًا.
وجدت أنه من المجزي حقًا إلقاء نظرة على Ruby، لكنني وجدت أن الواجهة الأمامية JavaScript كانت صعبة للغاية بالنسبة لاحتياجاتي. أنا مبرمج هواة ولدي بعض الخبرة، لذا سأرجع ذلك إلى ذلك وعدم وجود عقل رشيق.
ومع ذلك، تمكنت من فهم أطر عمل JavaScript الأخرى - Svelte على سبيل المثال. كانت تفاصيل Ember وتدفق الإنشاء الصارم / التنسيق وهياكل المجلدات معقدة بعض الشيء بالنسبة لي ولاحتياجاتي.
كان حلي هو استخدام إضافة المعالج المخصص الممتازة لالتقاط تفاعل الواجهة الأمامية ثم تمريره إلى رمز Ruby الخلفي الخاص بي. يعمل هذا بشكل جيد مع العمليات من نوع الدُفعات ولكنه أقل فائدة في البيئات التفاعلية.
حظا طيبا وفقك الله.