
في المستقبل ، أود أن ألفت الانتباه إلى الوضع الفوضوي مع الفائز في المرحلة الأولى من المسابقة. استغرق الفائز 50K رؤساء أمريكا. ولكن ، كان هناك مطور آخر واحد على الأقل قام بكتابة طلب مطابق ولم يتم مكافأته بأي شكل من الأشكال. لم يأخذ حتى آخر مكان. هذا المطور علنًا ، من خلال موقعه على الويب - https://tgcontest.braychuk.com/ ، اتصل بفريق Telegram مع الأسئلة. إذا كان أي شخص يعرف أي شيء عن هذا ، يرجى الكتابة في التعليقات.
لذلك دعونا نبدأ.
كما تعلمون ، أرسلت Telegram مؤخرًا رسالة مباشرة إلى جميع مستخدميها بأنها ستجري مسابقة في البرمجة.
كيف رائع ، اعتقدت.
حسنًا ، اقرأ شروط مسابقة Android:
وما نراه هناك - "المعيار الرئيسي هو السرعة والأداء". ! ممتاز أليس هذا ما يحب العديد من المبرمجين مهام التحسين؟ أنا فقط أعشقهم. لذلك ، تم اتخاذ قرار المشاركة في المسابقة ، يبقى تحديد طريقة التنفيذ. شيء واحد واضح ، تحتاج إلى التعامل مع حل مشكلة الأداء بدقة وبشكل أساسي. لذلك ، لكسر إن لم يكن كل شيء ، ثم على الأقل الأغلبية. نظرًا لأن معيارًا آخر للمنافسة ، والذي كان بالطبع أقل من حيث الترتيب مقارنة بالأداء ، هو الامتثال لتصميم واجهة المستخدم ، فنحن على الأرجح بحاجة إلى الدوران حول Java UI واستخدام عناصر التحكم القياسية التي تظهر في مخطط التصميم. ومع ذلك ، سيكون من غير المربح استخدام Java UI وعرضه في منطقة التراكب في OpenGL ، وهنا على الأقل سوف يتسبب ذلك في انخفاض في تبديل السياق. لكننا نريد كسر الجميع مع الأداء العالي. لذا يختفي Java UI ، فنحن نعتمد على الأداء ، ونطرح التصميم. دع المصممين يقومون بذلك ، نحن فخورون بالمبرمجين :) . الحل واضح - استخدم OpenGL بملء الشاشة ، وتظليل قمة الرأس ، واكتب كل الشفرة في NDK / C ++. أي نحتاج فقط إلى كتابة محرك / تقديم رسومات ، والذي يتم كتابته عادةً للألعاب المحمولة ، من أجل رسم رسومات Telegram فقط.
نعم ، أنا أعرف ، أنا مجنون :)
هناك ناقص واحد كبير لهذا النهج - سنحتاج إلى كتابة جميع عناصر واجهة المستخدم ونصف التفاعل لها ، والتي سوف تأكل جزءًا كبيرًا من الوقت. لذلك ، سنناقش تنفيذ أبسط واجهة المستخدم: نكتب الحاجيات التفاعلية واجهة المستخدم البسيطة التي هي قادرة على تحديد نقرة على أنفسهم والقيام بذلك في ديناميات (عند التنقل في جميع أنحاء الشاشة ، في الوقت الحقيقي).
اتضح ما يلي تقريبا:
في الواقع ، تم تنفيذ كل ما سبق في غضون أسبوعين ، في وقت الفراغ من العمل المكتبي ، مع ليال بلا نوم ، بطبيعة الحال.
ماذا برقية تفعل؟ قلل تمامًا طلبي من المسابقة بعبارة "عدم الامتثال للتصميم وعرض الرسوم البيانية على شاشة واحدة".
Shta؟
أعتقد أنني كنت مخطئًا في البداية عن طريق المنافسة :) لذا ، فهذه ليست مسابقة للمطورين الذين يمكنهم إظهار مستوى كفاءاتهم من خلال تنفيذ تطبيقات / خوارزميات عالية الأداء ، بل مسابقة من المصممين؟ أم أنها منافسة قصوى لمطوري واجهة المستخدم الذين يمكنهم استخدام أدوات تصميم واجهة المستخدم القياسية ، وكذلك القدرة على لمس قماش على واجهة المستخدم نفسها؟
حسنا ، التين معه ، مع التصميم. أنا لا أقول ، هناك تباين :) . وماذا عن الصياغة - "عرض الرسوم البيانية على شاشة واحدة"؟ ولكن هذا مثير للاهتمام بالفعل.
إذا نظرت إلى شروط المسابقة ، فلن نرى هذه المتطلبات من كلمة "بالكامل". لذلك لا يمكن أن يكون. لذلك كنت مخطئا في مكان ما. تتبع Telegram بدقة رسومات التصميم وتتبعها بصرامة. لذلك يجب أن يتم عرض هذا الشرط "بصريا" في نفس الرسومات.
نحن ننظر إلى الرسومات:
مهم ... ليس من الواضح أن المخططات موجودة في "ورقة" مشتركة واحدة ويتم تمريرها. بدلاً من ذلك ، نرى رسومات بيانية مرسومة بشكل منفصل على شاشة واحدة. هناك خياران ممكنان:
- جميع الجداول موجودة فعليًا على نفس الورقة الشائعة وتمريرها ، لكنهم لم يعرضوها بصريًا على الرسومات ولم يسجلوا صراحة كل شيء في المنافسة
- الرسوم البيانية هي التحول بطريقة أو بأخرى. كيف لا تتم الإشارة إليه ، مما يعني أنه "افتراضي" ، وبالتالي ، يتم تركه للمطور. يمكن أن يدرك هذا في تقديره.
بشكل عام ، يتعلم فريق Telegram كتابة المعارف التقليدية ، وسيكون مفيدًا لك ؛) . على محمل الجد.
تصنيف الأداء
من ما تقدم فإنه يتبع - لم ترقى طلبي إلى تقييم الأداء. لكن لا يزال. كيف أداء معدل العربة؟
يبدو الأمر كما يلي: "لقد اختبرنا تطبيقك على الأجهزة القديمة ويعمل بسلاسة أقل مقارنةً بالأجهزة الأخرى."
Shta؟
برقية ، أين الأرقام؟ جداول ملخص الاختبارات ، مقارنة مع التطبيقات الأخرى بناءً على البيانات الموضوعية التي يتم التعبير عنها بالمصطلحات الرقمية؟
كان ينبغي أن يكون مثل هذا:
- أخذنا طلبك ، وأطلقناه في 1000 نقطة انطلاق من مخططنا ، ثم عند 10،000 ، ثم إلى 100000 ، و 1000،000 ، حصلنا على أرقام FPS هذه
- تلقى التطبيق الخاص بك بالإضافة إلى العديد من النقاط للأداء المحقق.
- للتناقض بين التصميم والحماقة المهمة بالنسبة لنا ، تلقى طلبك ناقص العديد من النقاط
- نتيجة لذلك ، في المجموع ، سجل تطبيقك نقاط N
- ونتيجة لذلك ، تطبيقك هو Kth في جدول النتائج الكلي
هذا النهج في تقييم شيء ما هو بطبيعة الحال لأي محترف. ربما تقوم Telegram أيضًا بتقييم جودة خوارزميات الاتصال الصوتي الخاصة بها؟ عن طريق الأذن؟ لا عجب إذن لماذا لا يزال يترك الكثير مما هو مرغوب فيه. زملائي الأمريكيين ، في مثل هذه الحالات ، يحبون أن يقولوا: "إنه ألم في الحمار". ومع ذلك ، من الإنصاف القول ، كان لدي رأي أفضل من فريق Telegram ككل.
تقييم التطبيق الاستقرار
و النهاية.
كيف تقوم العربة بتقييم ثبات التطبيق؟ في الواقع ، وفقًا لهذا المعيار ، قامت سلة التسوق بطرد مجموعة كاملة من الطلبات من المنافسة. للحظة ، سألفت انتباهكم إلى حقيقة أن معيار الاستقرار في شروط مسابقة "المرحلة 2" لا يظهر من كلمة "بالكامل".
لكن مع ذلك. لقد قاموا بقطع التطبيقات باستخدام صيغة قالب ، "لقد أطلقنا تطبيقك على العديد من الأجهزة. على الجهاز K و M تحطمت "
أنا محرج أن أسأل ، لكن أين توجد قائمة الأجهزة التي ستختبر التطبيقات التنافسية عليها؟ كان من المفترض أن تكون هذه القائمة علنية ، حتى يعرف جميع المنافسين عنها مسبقًا. وإلا ، فمن الذي سيضمن أنه في حالة تعطل تطبيق واحد من أصل 10 على جهاز واحد من أصل 5 ، فإنه يعمل بشكل أقل استقرارًا من جميع التطبيقات المتبقية التي لم "تسقط"؟ ولكن ماذا لو أخذت هذه التطبيقات التسعة وقمت بتشغيلها على الأجهزة الخمسة الأخرى التي سيتعطلون فيها كل شيء ، وإلا فلن يحدث ذلك؟ كيف تحب هذه الحالة؟ كيف إذن ستقوم Telegram بتقييم ثبات جميع التطبيقات العشرة؟
وبالتالي ، هناك خطأ كلاسيكي ارتكبه الناجي.
Applaud Telegram ، ستارة ....
استنتاج الطبيب الشرعي
وبالتالي ، فإننا نستنتج أن هذه المسابقة هي هرم مالي وغذائي ، Naedalovo -
وللأسف ، هناك العديد من المشاركين في المسابقة الذين لا يفهمون أيضًا كيف ولماذا أخذوا هذا المكان أو ذاك ، أو لم يأخذوه على الإطلاق. بالطبع ، أشعر بالأسف على الوقت والجهد المبذول. لكن كل الأسف سيتم تسويتها إذا كانت المسابقة مفتوحة وشفافة.
شكرا لاهتمامكم!
PS
قم بتنزيل apk-chechka من هنا