مرحباً، لقد لاحظت للتو أن Discourse يستخدم إصدارًا قديمًا من ActiveModelSerializer.
تم إصداره قبل خمس سنوات ولا أعتقد أنه جيد.
يبدو أنه تم التخطيط لإنشاء نسخة من AMS ولكن هناك حل أفضل.
اقتراحي هنا هو الترحيل من AMS إلى Alba، وهو مُسلسِل JSON قمت بإنشائه وأحافظ عليه. على الرغم من أن Alba ليس متوافقًا بنسبة 100٪ مع AMS، إلا أن الواجهة البرمجية التي يقدمها مشابهة لـ AMS وأسرع بحوالي 10 مرات من أحدث إصدار من AMS.
إذا وافق المشرفون على الترحيل، فسأقوم بإرسال طلب سحب.
أعتقد أنه يُجري تحسينات على الأداء، لذا سأقوم بتشغيل نص قياس الأداء.
لم أكن أعرف عن إضافات المُسلسِل (serializer plugins). لقد وجدت مثالاً للإضافات التي تُخصص المُسلسِل.
هنا، تبدو الدالة include_votes? وكأنها دالة سحرية من AMS نظرًا لعدم تمكني من العثور على مكان استخدامها في قاعدة الأكواد. أعتقد أننا بحاجة إلى بعض الترحيل (migration) في مثل هذه الحالات نظرًا لأن Alba لا يدعم هذا السلوك.
يجب أن تكون المحافظة على التوافق مهمة، لذلك إذا لم أتمكن من جعل Alba متوافقًا مع الإضافات الحالية، فأفضل عدم المضي قدمًا.
آه، شكرًا، يبدو أنه يحدد فقط بعض الطرق المساعدة التي تُرجع ما إذا كانت الإضافة ممكّنة أم لا وجسم الإضافة. أعتقد أنه يمكنني جعله متوافقًا مع Alba، دعني أحاول.
آسف. لم أنتبه بما فيه الكفاية للإضافة الأصلية. أعتقد أن تلميحي قد لا يكون مفيدًا كما كنت أعتقد.
إذا كنت تضيف شيئًا إلى المحلقات الموجودة (مثل إضافة حقل إلى ملحق المنشور)، فقد ساعدت. إذا كنت بحاجة إلى إضافة مسار جديد يعرض معلوماته الخاصة، فستحتاج إلى القيام بشيء آخر.