شكرًا لكم جميعًا.
لقد رأيت ذلك من قبل، لكنني سعيد بتأكيد أن إضافة ملحقات Ember غير ممكنة حتى يتم إتمام هذه الترقية. إذًا يبدو أن إضافة ملحقات Ember ستكون ممكنة قريبًا—بمجرد اكتمال الترقية. وهذا يبدو رائعًا.
أعتقد أن هذا سؤال مثير للاهتمام. إليك رأيي:
من حيث استخدام الأشياء “المجرّدة” في Discourse مقابل ملحقات Ember: قد أكون مخطئًا، لكنني أعتقد أن استخدام ملحقات Ember لمهام محددة في الإضافات قد يكون أسهل في الصيانة، في الحالات التي تحاول فيها فعل شيء مختلف عما تفعله Discourse بالفعل. هذا هو تفكيري:
المثال هنا هو الرغبة في إضافة قائمة منسدلة جديدة تمامًا في إضافة. هذا التمييز مهم على الأرجح—أنا أتحدث هنا عن محاولة فعل أشياء جديدة في إضافة لا توجد في كود Discourse، والسؤال هو هل نبدأ بطرق Discourse أم بإضافة منفصلة.
في كثير من الأحيان لا يكون لديك خيار حقيقي. على سبيل المثال، إذا أردت إضافة حقل مخصص للمواضيع، فسأقوم دائمًا بالتخصيص فوق الطرق والكود المجهّز مسبقًا في Discourse.
ولكن إذا كانت الوظيفة مستهدفة ومحددة—مثل قائمة منسدلة لغرض جديد—فأنا أكون بالفعل في حالة حيث، إذا استخدمت طرق Discourse، سأكون أقوم بتكييفها لأشياء لم تكن موجهة إليها أصلاً.
الخيار الأول: يمكنني محاولة أخذ كود select-kit الذي أراه، على سبيل المثال، في category-chooser، وإدراجه في مكان جديد (ليس متعلقًا بالفئات)، ثم محاولة تخصيصه ليصبح عن الشيء الذي أريده أن تكون عنه القائمة المنسدلة، بدلًا من الفئات. هذه هي المهمة التي وصفتها سابقًا بأنها معقدة.
وقد يكون من الصعب صيانتها—لأنه إذا قام فريق Discourse بتغيير شيء ما في طريقة عمل كود select-kit في category-chooser، فقد يتغير ذلك قوائم منسدلة المخصصة الجديدة، ولكن بطرق قد تكون مفاجئة (لأنني قمت بتخصيصها لتعمل بشكل مختلف قليلاً عن قائمة الفئات الفعلية).
الخيار الثاني: يمكنني إدراج شيء من Ember قوي ولكنه مصمم أيضًا ليتم تخصيصه، حيث يمكنني رؤية بوضوح نسبيًا كيفية عمل الكود فعليًا. في هذه الحالة، قد أفوت ميزات جديدة رائعة قد يضيفها Discourse إلى قوائمها المنسدلة، لكنني سأتمكن من البقاء على اطلاع بكيفية عمل قوائم منسدلة الخاصة بي بسهولة أكبر. لذا، هذا على الأرجح هو الخيار الأفضل، أعتقد، إذا كان ذلك ممكنًا.
الخيار الثالث: كتابة الكود بالكامل من الصفر. هذا هو المكان الذي أميل إلى الوصول إليه. عندما ينتهي الترميز، من الجيد أن يكون لدي كود أفهمه بالكامل ويمكنني تخصيصه. ولكن بالطبع يستغرق وقتًا أطول، و(النسخ الأولية على الأقل) من غير المرجح أن تكون قوية ومتينة مثل ما بناه فريق Discourse أو فريق Ember.