اختبار A / B هو وسيلة قوية لاختبار واجهات قبل النشر على جمهور كامل. قررت أن أقول ما هي هذه الأداة ، وما هي ميزات تسجيلها ، وكيف يتم تجميع المقاييس ، وما هو جوهر التجارب في الواجهة الأمامية. دعنا نتحدث عن أجهزتهم وخدماتهم لحل المهام التحليلية اليومية. سنناقش العديد من مسارات التطوير لمطور يبدو أنه قادر بالفعل على فعل كل شيء ، لكنه يريد المزيد.

- اسمي ليشا ، أعمل في بحث وتطوير أهم نتائج بحث عن منتج ياندكس.
جميعكم ، بطريقة أو بأخرى ، سبق أن استخدمت أيًا من عمليات البحث. بضع شروط. القضية تتكون من كتل مختلفة. هناك مستندات عضوية بسيطة نجمعها من جميع أنحاء الإنترنت ونعرف بطريقة ما كيفية تقديمها ، وهناك كتل خاصة نعرضها كعلامات تمييز خاصة. نحن نعرف الكثير من البيانات حول محتوياتها. وتسمى هذه الكتل السحرة. مصطلحات محددة اعتمدتها ياندكس وليس فقط.
اليوم أريد أن أخبركم كيف نجري تجارب وما الفروق الدقيقة والأدوات والاختراعات الرائعة الموجودة في حيواناتنا في هذا المجال من نشاطنا.
ما هو اختبار A / B؟
من أين تبدأ؟ لماذا تحتاج ياندكس إلى تجارب A / B؟
أود أن أبدأ بالكلمات. منذ وقت ليس ببعيد ، شاهدت مع ابنتي فيلمًا علميًا قصيرًا "4.5 مليار سنة في 40 دقيقة. تاريخ الأرض ". هناك في كثير من الأحيان A / B التجارب. بما في ذلك هذه. حاولت أن أجعل واحدة من أكثرها متعة وإثارة على هذه الشريحة. هذا هو عندما يكون للتطور عدة فروع. على سبيل المثال ، هناك نوعان من العائلات: جرابي المشيمة والمشيمية. وكما نرى الآن ، فوز المشيمة بطريقة أو بأخرى. هذا هو السبب وراء فوزهم.

هذا هو بالفعل العقل البشري تصور. في مرحلة ما قبل الولادة والمزيد من التطوير للجرابيات ، يصلب صندوق الجمجمة بسرعة ويمنع نمو المخ. وفي المشيمة ، يتقدم كل شيء ، يصبح كل شيء طريًا إلى أن يتحول المخ مع الأخاديد وينمو السطح مما يجعل القشرة المخية الحديثة باردة. نتيجة لذلك ، سوف يفوز المشيمة في التطور. ما هي النقطة؟ الطبيعة لها تطور ، وقوتها الدافعة هي الطفرة والانتقاء الطبيعي ، كما تعلمون.


لدى الشركة تشبيه لتجارب A / B الطبيعية: أي عمل يريد أن يتطور بثبات ويستثمر جهودًا معينة ، باستخدام تجارب A / B كوسيلة لتحوير شيء ما ، وتغيير شيء ما. تستخدم الشركة كل القوة الرياضية للتحليلات لتحديد هذه التجارب بالذات.
تهدف تجارب A / B والتطور كله إلى تحقيق الأهداف ، والقدرة على مراقبة الذات من الخارج ، والمقارنة مع المنافسين ، والبحث عن منافذ جديدة ، وفرضيات. للمطورين بشكل عام ، خاصة بالنسبة للبائعين المتقدمين ، من المهم اختبار ميزات جديدة على جزء صغير من الإنتاج.

قصة قصيرة تبدو مثل هذا. يمكننا أن نقول أن عام 2010 ، عندما أجرى مدراء منتجاتنا أول تجارب A / B ، هو فترة ما بعد الانفجار الكبير. بدأت مجموعات معينة من النجوم في الظهور للتو ، وفهمًا لكيفية إجراء تجارب A / B ، وما الذي يجب النظر إليه ، وكيفية تسجيل الدخول. المطبات الأولى ، الأخطاء الأولى ، تراكمت.
خلال هذه الفترة من 2010 إلى 2019 ، حققنا نتائج مهمة. اليوم ، تعد كل هذه المصطلحات المتعلقة بالسجلات والتجارب والمقاييس والأهداف والإنجازات وما إلى ذلك أساسية بالفعل بالنسبة لنا ، خاصة بالنسبة للقادمين الجدد إلى المطورين الجدد. هذه هي العامية لدينا ، لدينا عقلية ياندكس الداخلية.
بحث كبير
نمر مباشرة إلى اللحوم ، عن البحث العظيم. البحث الكبير في هيكلها يبدو شيء من هذا القبيل.

لدينا متصفح وموازن والعديد من مراكز البيانات وبنية تحتية غنية ضخمة تحت الغطاء. يوضح المخطط أن الجهاز معقد ، وهناك العديد من المكونات. والأكثر إثارة للدهشة ، أن كل هذه المكونات قادرة على إجراء تجارب A / B ، وبالطبع كتابة وتحليل السجلات.
السجلات

سجلات مكتوبة من قبل العديد من المكونات. بالطبع ، من المثير للاهتمام بالنسبة لنا أن نتحدث في سياق الواجهة الأمامية. الواجهة الأمامية يسجل شريحتين كبيرتين كبيرتين. هذه هي سجلات فنية بحتة تتعلق بالقياس المباشر لبعض الوقت ، والأداء على أجهزة العميل. قياس المستخدم الحقيقي ، مقاييس رم. في ما يلي الأوقات التي تسبق البايتة الأولى ، قبل العرض الأول ، قبل تحميل كل محتوى DOM وقبل التفاعل.
جنبا إلى جنب مع هذا ، هناك سجلات مكتوبة من قبل كل من التنضيد الخادم والعميل. هذه هي سجلات البقالة. في واقعنا ، حتى هنا يوجد مصطلح "baobab". لماذا باوباب؟ لأن الشجرة: شجرة المكون ، شجرة الميزات ، والتي يكون أحد السجلات الرئيسية فيها سجلات مرات الظهور والنقرات والأحداث الفنية الأخرى التي نسجلها لتحليلها لاحقًا.

تعرض هذه الشريحة أداة لتخزين السجلات داخل Yandex وللحوسبة الموزعة. لدينا ما يسمى
جداول ياندكس ، YT . كل شيء تم تطويره في Yandex يحتوي على الحرف Y. حاولت أن أذكر نظير هذه الأداة في العالم الخارجي. في رأيي ، لدى Facebook أداة MapReduce تسمى Hadoop. انها تسمح لك لتنفيذ التخزين والحساب.
تظهر الشريحة إحصائيات 8 أغسطس من هذا العام. واحدة من سجلات البحث الأكثر قيمة ، جلسات المستخدم ، هي 54 تيرابايت في اليوم في شكله. هذه هي كمية كبيرة من المعلومات التي لا يمكن مجرفة في شكله الخام. لذلك ، يجب على المرء أن يكون قادرا على بناء بعض القصص رفيعة المستوى.
للعمل مع السجلات ، على وجه الخصوص ، يجب على جميع المطورين ذوي الخبرة الخاصة إتقان نوع من الأدوات التحليلية.

داخل Yandex ، هناك أداة
YQL . هذه لغة تشبه لغة الاستعلامات البنيوية (SQL) ولغة الحساب على سجلاتنا ، والتي تسمح لك ببناء جميع أنواع البيئات ، والقيام فقط بالتحليلات ذات المستوى المنخفض ، والنظر مباشرة في الأرقام المحددة ، والنسب المئوية المتوسطة ، وإنشاء التقارير. هذه الأداة قوية جدًا ، وتحتوي على واجهة برمجة التطبيقات (API) ذات فروع ضخمة والعديد من الميزات. بنيت العديد من عمليات البنية التحتية على أساسها.

بالإضافة إلى ذلك ، بين مطوري الواجهة الأمامية لدينا ، وعلى وجه الخصوص ، المحللين ، فإن أداة Jupyter في الطلب والشعبية كبيرة. من الممكن بالفعل بفضل قوة أدوات Numpy وغيرها من الأدوات المعروفة لك ، على سبيل المثال Pandas ، القيام ببعض التحولات والتحليلات عالية المستوى عبر سجلاتنا.

نحن حقًا نقدر السجلات ، ونحارب حرفيًا لكل إدخال. للقيام بذلك ، في مستودع مشروع البحث الخاص بنا ، توجد اختبارات في رمز الواجهة الأمامية تتيح لنا التحقق من تسجيل جميع الأحداث بشكل صحيح. نكتب اختبارات لكل ميزة من ميزاتنا ، يمكننا التحقق من برنامج نصي معين ، والنقر على روابط وأزرار معينة ، والتمرير عبر معارض معينة في واجهتنا ونرى بالضبط عدد السجلات التي يتم تسجيلها بالضبط مع القيم التي نتوقعها ، والتي سجلناها ، والتي قمنا بها بعض المعايير. ثم سنذهب إلى هذه القيم المرجعية.

نولي أيضًا اهتمامًا كبيرًا بأداء واجهاتنا. في أي طلب مجمع يحتوي على وظائف جديدة أو إعادة تشكيل للوظائف الحالية ، فإننا نولي اهتمامًا كبيرًا للأوقات والمجلدات وعدد مكالمات وظائف معينة. على الشريحة أحد تقارير طلب التجمع العشوائي تمامًا. لدينا مرحلتان من البحث ، أحدهما نوع ajax: أولاً نقوم بتحميل الرأس على الصفحة مع سهم البحث ، وعندما تعمل جميع مصادر البحث ، لا يزال بإمكاننا قياس أوقات القالب وكل الأداء عند تقديم الجزء الرئيسي من المخرجات.

بالنسبة لنا ، كما هو الحال بالنسبة لأي موضوع آخر في تكنولوجيا المعلومات ، فإن الأخطاء في الإنتاج وفي البيئات الخاصة مهمة جدًا. لدينا أداة تدعى Error booster ، والتي تسمح لك بالنظر إلى الأخطاء الحقيقية في الإنتاج في الوقت الحقيقي مع إطار زمني جيد إلى حد ما. تحت الغطاء ، تستخدم هذه الأداة قاعدة بيانات ClickHouse ، والتي تتم فيها معالجة الطلبات بسرعة كبيرة ، وقاعدة البيانات نفسها مصممة للعمل التحليلي. يتم تنفيذ معظم التفاعلات بشكل خاص مع ClickHouse.
تحدثنا عن سجلات ، عن أنواعها. هناك الكثير منهم. من أجل نقل التجارب وتحليل شيء ما ، لاتخاذ قرارات بشأن شيء ما ، لدينا عدد كبير من المقاييس. هذه هي بعض التلفاز على كميات كبيرة من البيانات الخام.
المقاييس

لدى Yandex الآن حوالي 8.6 ألف مقاييس مختلفة تستند إلى سجلات الخام نفسها - وتلك ذات المستوى الأعلى ، مثل جلسات البحث والمستخدم. إنها متنوعة للغاية ، وغالبًا ما تكون موجهة نحو الميزة. بمعنى ، هذه مقاييس خاصة بساحر معين ، كتلة محددة ، شريحة من الطلبات ، نوع المستندات التي نعرضها.

في سيناريوهات الاختبار الخاصة بنا ، من الممكن التحقق من قيمة المقاييس في واجهاتنا الخاصة. عندما فقدنا بعض السيناريوهات ، يمكننا أن ننظر إلى نتائج العمليات الحسابية على السجلات وتحديد مصادر معينة للقياس.

لعبت دورا هاما من خلال مقاييس السرعة. كلهم بسيطة بما فيه الكفاية مرتبة. هذا عادة ما يكون نوعًا من النسب المئوية ، أو القيمة المتوسطة وانحرافها وأهميتها الإحصائية.

هناك الكثير منهم ، يأخذون في الاعتبار كل من وقت التوحيد ووقت تسليم المحتوى إلى جهاز المستخدم.

يؤخذ أداء العميل المباشر في الاعتبار أيضًا: تقديم الوقت ووقت التفاعل وغير ذلك.
التجارب

إذن كيف نجري تجارب؟ على سبيل المثال ، هناك اثنان من المستخدمين قرروا فجأة استخدام بحث Yandex. اتفقنا مع بعضنا البعض - نذهب اليوم ، على سبيل المثال ، إلى Starbucks ، ونحن نبحث عنه باستخدام بحثنا. يتم تمييز طلباتهم ، التي تقع في البنية التحتية لمصادر البحث لدينا ، مع علامات معينة. من خلال العلامات ، يقع هؤلاء المستخدمون في سلال التجربة المختلفة. تحتوي كل سلة على مجموعة محددة من العلامات التي تنشط التجارب في كل من مصادر البحث. على سبيل المثال ، ذهب هذان المستخدمان إلى نتائج البحث واستخدما تلميحات البحث. يقدم الأول "ستاربكس" ، يرى بعض التلميحات كلمة لكلمة في شكل كلمات. عندما ينتهي البحث ، يرى كتلة حول هذه المنظمة ، يقول - نعم ، لقد وجدت ، أذهب إلى هناك. ويكتشف المستخدم الثاني تلميح التنقل الموجود بالفعل في واجهة تلميحات البحث ، ويتحول بسرعة إلى المؤسسة ويتلقى استجابة أسرع.
لكل هذه التغييرات المتنوعة ، الاختلافات في الواجهة ، في وظيفة معينة ، تكون أداة BEM مسؤولة. هذا ليس مجرد إطار ، ولكن منهجية كاملة لإعلان المكونات البصرية ، تعديلاتها. حتى هنا في الخلفية توجد كروموسومات الحمض النووي ذاتها التي يبدو أنها تتحول من خلال بيم. في الواقع ، bem هو Yandex DNA ، الحمض النووي للتجارب في النهاية الأمامية.

هناك العديد من التطبيقات في المنهجية. أحدهما موجود في مجموعة i-bem التي تم إنشاؤها بالفعل ، والتي توجد في مكان ما أسفل الغطاء المتصل بـ jQuery. هذه بالفعل تكنولوجيا ناضجة للغاية. في مثل هذه المجموعة ، يمكننا حل الكثير من المشكلات. اليوم ، اكتسبت تقنية bem-react ، التي يتم تنفيذها بالفعل على إطار React ولغة TypeScript ، دفعة وتطوير كبيرين. كل هذه الأدوات تسمح لك ببناء التجارب والوعظ بالفكرة الرئيسية - القدرة على إعلان كل من المكونات البصرية وتعديلاتها. لدينا مستوى منفصل بالكامل في المستودع مع إعلانات لتلك التجارب ذاتها. ولكن حوالي عام 2015 ، أدركوا أنه من غير المجدي اقتصاديًا نشر أعلامنا التجريبية عبر رمز الواجهة الأمامية بالكامل. والحقيقة هي أن وحدات التجارب تصل إلى إنتاج حقيقي ، وكل شيء غير مستخدم يصعب فصله عن الكود لاحقًا. لذلك ، أخرجناهم إلى مستوى منفصل من التعريف. وهنا مرة أخرى بفضل منهجية bem ، التي أتاحت لنا الفرصة لاستخدام مستويات إعادة التعريف. نعلن تجاربنا عليها.

هذا هو واحد من تقارير التجارب. عمودين: التحكم والتجربة. قبل أن لا تكون حتى كل ما هو موجود في التقرير. لماذا هو طويل جدا؟ بادئ ذي بدء ، رأيت عدد المقاييس التي لدينا - 8.6 ألف.

ولكن الدور الرئيسي لا يلعبه إلا المقاييس التي تختلف. ونحن قادرون على إجراء تجاربنا في نفس الوقت ، أي على مستخدم واحد يمكن أن نجري في وقت واحد حوالي 20 تجربة. فهي لا تتعارض مع بعضها البعض بأي شكل من الأشكال ، وفي جميع تجاربنا فقط يتم تلوين مقاييس منتجاتها البحتة ، دون التأثير على بعضها البعض. يوجد الآن حوالي 800 تجربة في الإنتاج: ليس فقط محركات البحث ، ولكن أيضًا من العديد من الخدمات. تسمى الأداة AB ، وهي ليست مفاجئة. تبدأ الخدمات في إجراء التجارب عليها ، وتعلن عن عينات معينة ، ثم تنظر في الاختلافات بين المقاييس ، والتي تبدأ بعد فترة من الزمن في الاختلاف في التجربة والتحكم.
أدوار المطور ذات الصلة
نتيجة لهذا التنوع في عمل المطورين الأماميين ، هناك أدوار بينهم. هناك خبراء في التجارب ، ولهذا فإننا نعطي إنجازات رسمية في إطار شبكة ياندكس الداخلية ، فالناس يجتازون الاختبارات بالفعل. يقومون بتحليل التجارب والتحقق من صحة نتائجهم حول الخبراء والحصول على جواز سفر يقول: "أنا محلل ، يمكنني تحليل التجارب." وبشكل عام ، يركز كل العمل مع التجارب ، بمقاييسنا ، بشكل أساسي على تحسين المنتج نفسه. أنا أحد الممثلين ، وأنا متحمس للغاية لتطوير المنتج ، وليس فقط الكود وليس التكنولوجيا. إنه يقودني حقًا عندما أتيت إلى فريق وأصنع منتجًا.

ما هو بيت القصيد؟ لدينا عدد كبير من سجلات مكتوبة يوميا لأنظمة التخزين لدينا. هناك عدد كبير من المقاييس التي نحسبها ، ونجري تجارب عليها. بنية تحتية كبيرة جدًا. الأداة الحديثة الأفضل التي تسمح لك بتنفيذ عدد كبير من الأدوات هي حزمة bem-react. نولي اهتماما كبيرا لمؤشرات السرعة والجودة ، واستقرار المنتج. وبشكل عام ، نحن نطور في مطورينا المزيد والمزيد من الأدوار الجديدة المتعلقة بالتخصص الرئيسي - الواجهة الأمامية. لدي كل شيء. شكرا لاهتمامكم