الهندسة
من 15 إلى 30 رياضة: ما يتطلبه فعلًا بناء منصة متعددة الرياضات
إضافة رياضة ليست تغييرًا في الإعدادات. إنها مجموعة قواعد جديدة ونموذج تسجيل جديد ومجموعة جديدة من الحالات الحدّية. وهكذا ضاعف Zeetius تغطيته.
حين يسمع الناس أن منصة تدعم ثلاثين رياضة، يفترضون عادةً وجود قائمة منسدلة في مكان ما وجدول قواعد خلفها. أضف صفًا تحصل على رياضة. افترضنا شيئًا مشابهًا حين بدأنا. وهذا بعيد كل البعد عن الحقيقة، وسبب ذلك هو أكثر المشكلات الهندسية إثارة في هذا المجال.
كل رياضة تختلف في تعريف النتيجة نفسها
الريشة الطائرة أفضل ثلاثة أشواط حتى 21 بفارق نقطتين وبحد أقصى 30. وكرة الطاولة أفضل خمسة أو سبعة أشواط حتى 11 بفارق نقطتين دون حد أقصى، ويتغير الإرسال كل نقطتين. والمصارعة تراكم النقاط باستمرار داخل الفترات ويمكن أن تنتهي فورًا بالسقوط. وكرة السلة لها ساعة تتوقف. والكريكيت له أشواط. والملاكمة الشطرنجية تتناوب بين نظامي تسجيل مختلفين تمامًا في النزال نفسه.
لا يوجد تجريد مشترك يغطي كل ذلك دون أن يصبح غامضًا إلى درجة تفقده فائدته. فحقل «نقاط» عام يعني شيئًا مختلفًا في كل رياضة ليس نموذجًا، بل مربع نص بخطوات إضافية، وعلى كل مستهلك لتلك البيانات أن يعيد تنفيذ منطق الرياضة ليفسرها.
ما استقررنا عليه: أنماط لا رياضات
كان الاختراق أن نتوقف عن نمذجة الرياضات ونبدأ بنمذجة أنماط التسجيل. فتحت ثلاثين رياضة تبيّن أن هناك عددًا أقل بكثير من الأشكال المختلفة فعلًا:
- رياضات الأشواط والتبادلات: ريشة الطائرة وكرة الطاولة والتنس والبيكلبول والبادل والكرة الطائرة. المباراة سلسلة أشواط؛ والشوط سلسلة تبادلات؛ وللتبادل فائز واحد بالضبط. ويقتصر الاختلاف كليًا على النتيجة المستهدفة وقاعدة النقطتين والحد الأقصى ودوران الإرسال.
- رياضات الساعة والتراكم: كرة القدم وكرة السلة وكرة اليد والهوكي. المباراة سلسلة من الفترات الزمنية؛ وتتراكم النقاط في أحداث تُنسب إلى فريق وغالبًا إلى لاعب؛ والساعة نفسها حالة يمكن أن تبدأ وتتوقف وتنتهي.
- رياضات النزال: المصارعة والملاكمة الشطرنجية. فترات وتسجيل متواصل وشروط إنهاء قد تُفعَّل في أي لحظة وتتقدم على كل شيء آخر.
بمجرد إسناد نمط إلى رياضة، تصبح إضافتها مسألة التصريح بمعاييرها لا كتابة منطق جديد. استغرق البيكلبول أيامًا لا أسابيع، لأنه رياضة أشواط وتبادلات بقاعدة إرسال غير معتادة ونتيجة مستهدفة مختلفة، وكلاهما كان للنمط خانات جاهزة له.
مجموعة القواعد بيانات، والمحرك شيفرة
هذا الفصل هو ما يجعل ثلاثين رياضة قابلة للصيانة من فريق ليس أكبر بثلاثين ضعفًا. فإصلاح منطق فارق النقطتين يُنفَّذ مرة واحدة ويصح في ست رياضات في آن واحد. والرياضة الجديدة ترث كل إصلاح حصل عليه النمط يومًا. وحين يغير اتحاد قاعدة، وهذا يحدث أكثر مما يتوقع الغرباء، فهو تغيير في البيانات يُراجَع ويُنشَر، لا تغيير في الشيفرة يُفكَّر فيه من الصفر.
الجزء الذي لا ينبهك إليه أحد: الحالات الحدّية
تتعامل الأنماط مع المسار السلس. ونحو نصف العمل الفعلي يكمن فيما يحدث حين لا تتعاون الرياضة.
- ينسحب لاعب في منتصف التبادل. من يحصل على الشوط، وماذا تُظهر النتيجة في أرشيف النتائج؟
- يصحح حكم نقطة أُدخلت قبل تبادلين. وعلى كل ما يتبعها، من الصفحة المباشرة واحتمالية الفوز والجدول، أن يتسق دون إعادة تحميل الصفحة.
- يُسجَّل انسحاب قبل بدء المباراة. لا توجد نتيجة بالنقاط، لكن هناك نتيجة، ولا يزال على الجدول أن يتقدم.
- يحمل لاعبان في القرعة نفسها الاسم نفسه. وعلى شاشة التسجيل أن تميّز بينهما دون أن يدقق الحكم في رقم العضوية.
- ينقطع الاتصال بجانب الملعب، وفي صالة مدرسة هذا يحدث دائمًا. يجب أن تنتظر النتائج محليًا في طابور وتتزامن بالترتيب عند عودة الشبكة.
هذه النقطة الأخيرة شكّلت من البنية أكثر مما شكّله أي اختلاف في القواعد. فبجانب الملعب بيئة شبكية معادية، ونظام التسجيل الذي يفترض وجود الاتصال نظام يخسر المباريات.
لماذا يهمك هذا إن لم تكن مهندسًا
لأنه يحدد ما يمكن لاتحاد أن يطلبه فعلًا. ففي منصة تُبنى فيها كل رياضة على حدة، يعني سؤال «هل يمكنكم دعم الكالاريباياتو؟» ربعًا كاملًا من خارطة الطريق. أما في منصة قائمة على الأنماط فالإجابة الصادقة عادةً سؤال مقابل: ما شكل التسجيل، وأين يكسر الافتراضات؟ فإن كانت رياضة أشواط وتبادلات بمعايير غير معتادة فالأمر أسابيع. وإن كان نمطًا جديدًا فعلًا فهو أطول، وسنقول ذلك صراحة.
ثلاثون رياضة ليست الإنجاز. الإنجاز هو القدرة على قول نعم للحادية والثلاثين دون إعادة كتابة أي شيء.