كنتُ أقوم بتطوير إضافات لمنصة منتديات قديمة منذ سنوات عديدة كانت تستخدم PHP و MySQL. كنتُ راضيًا جدًا عن بعض الأشياء التي تمكنت من تحقيقها، وكان الأعضاء راضين أيضًا.
لم أعمل من قبل مع Ruby on Rails (باستثناء المعاناة أثناء عملية سكريبت الاستيراد لنقل بياناتي إلى Discourse في البداية ).
أفترض أنه قبل الغوص في بعض الوثائق وأدلة التطوير هنا، أحتاج إلى بعض الأساسيات أولاً.
هل يجب أن أتعلم Ruby on Rails أولاً؟
هل أحتاج أيضًا إلى تعلم Ember.js؟ وأقرّ أنني لم ألمسها من قبل، لكنني أفهم أنها تُستخدم في نواة Discourse.
(على الرغم من أنني أنصح شخصيًا باستخدام VSCode الآن)
أحد الطرق للدخول هو البدء في المساعدة في دعم إضافة موجودة من خلال تقديم طلبات دمج (وهذا كيف بدأت)، بالبدء ببساطة مع مشاكل صغيرة ثم الانتقال إلى حل مشاكل أكبر وإضافة ميزات جديدة ربما.
إذا كان لديك فكرة لإضافة أو مكون موضوع بسيط نسبيًا، فابدأ بذلك. الأهداف الإبداعية الشخصية يمكن أن تكون محفزة للغاية.
لا تتناول أكثر مما تستطيع في البداية وابدأ ببساطة، لأن آخر شيء تريده هو فقدان الحماس: هذه الأمور يمكن أن تكون صعبة خاصة عندما تريد إجراء تغييرات أساسية.
كن صبورًا. EmberJS حيوان معقد بشكل خاص لفهمه.
نصيحتي هي أن تبدأ بمكونات الموضوع ثم تنتقل إلى الإضافات لاحقًا.
استخدم دائمًا المكتبة الضخمة من الإضافات ومكونات الموضوع الحالية كدعم. ربما يكون شخص ما قد حل مشكلة مشابهة سابقًا؟ كيف فعل ذلك؟ انظر إلى الكود. استخدم دائمًا المعايير التي يضعها جوهر Discourse. مصدر Discourse هو أيضًا مورد لا يقدر بثمن.
ربما تكون أفضل نصيحة هي: افعلها ببساطة! الطريقة الوحيدة للتعلم هي أن تتسخ حقًا. لا تخف من ارتكاب الأخطاء ولا تدع الإحباط يوقفك أبدًا. استمر في العمل وستعمل الأمور في النهاية. حاول حل الأمور بنفسك قدر الإمكان، لكن يمكنك دائمًا طلب المساعدة من الآخرين عندما تحتاج إليها حقًا.
قضيت وقتًا طويلاً في تعلم Rails. لكن الكثير من الأمور تحدث في جانب Ember/JavaScript. نصيحتي هي أن تبدأ هناك مع الأشياء التي يمكنك القيام بها في مكونات السمة (theme components). فهي أكثر أمانًا، وأسهل في الاستخدام، ويمكنها إنجاز الكثير.
إضافيًا إلى التوصيات الرائعة التي ذُكرت بالفعل في هذا الموضوع، فإن أفضل نصيحة لدي هي قراءة أكواد العديد من السمات والمكونات على https://github.com/discourse ومحاولة فهم ما يحدث. قم باستنساخها، وكسرها، واكتشف ما يحدث. هذا هو الطريقة التي تعلمت بها إلى حد كبير، بالإضافة إلى العمل على مشاريع صغيرة هنا وهناك.
أرى ما تفعله يا @pfaffman. مع ذلك، لا أعتقد أنك تريد مني تنظيف كودك في الوقت الحالي، لكنني أوافق على أن تقديم طلبات الدمج (PRs) قد يكون نقطة انطلاق ممتازة. أولاً، أحتاج إلى الغوص في بعض الموارد التي تم مشاركتها بالفعل في هذا الموضوع.
أكبر تحدي يواجهني حالياً هو الانتقال من خلفيتي في LAMP إلى ما يُعرف بمكدس Discourse. هل تقصد LNPR (Linux, Nginx, Postgres, Ruby/Rails)؟ هههه.
لكن بجدية، هذا القالب يقوم بالعديد من الأشياء التي تمنحك أفكارًا حول ما يمكن أن تفعله القوالب. إن القدرة على إنشاء قائمة مواضيع جديدة بالكامل أمر مذهل. تنظيفه (فهناك الكثير من الأكواد التي لا تنتمي إليه أساسًا، لكن عندما حاولت إزالتها، تسببت في تعطل بعض الأمور، وفي النهاية تركتها بدلًا من البحث عن المكان الذي أخطأت فيه في إغلاق قوس أو… شيء من هذا القبيل) حتى لو كان ذلك لنفسك، سيكون تمرينًا جيدًا جدًا. ولإعطائك سياقًا أكبر لمعرفة ما إذا كانت نصيحتي مفيدة لك على الأرجح، فأنا شخص حاصل على شهادة في علوم الحاسوب وتوقفت عن تعلم HTML تقريبًا في عام 1998. أفهم نظريًا ما يمكن أن يفعله CSS، ولا يزال JavaScript يحيرني تمامًا، ولا أدرك أين ينتهي JavaScript ويبدأ Ember. غالبًا ما أحاول إجراء تغييرات أظنها تافهة، لكنني في النهاية أتسبب في تعطل كل شيء.