التحقق من تطابق العنوان مع رمزه البريدي المذكور قبل الدفع
عدم تطابق الرمز البريدي والمدينة في نموذج الطلب يبدو خطأ إملائيًا صغيرًا إلى أن يتحول إلى شحنة مرسلة إلى جزء آخر من البلاد تمامًا.
المسافة وحدها طريقة سيئة لتقييم مدى صعوبة رحلة المشي فعلًا. فمسار مستوٍ بطول ستة أميال على ضفة نهر ومسار بطول ستة أميال يصعد جبلًا ظهرا كلاهما تحت التصنيف نفسه «متوسط، ستة أميال» في دليل أحد تطبيقات أدلة المسارات، وهو تصنيف أثار سيلًا مستمرًا من الشكاوى من متنزهين وثقوا بتصنيف «متوسط» ثم وجدوا أنفسهم في صعود أصعب بكثير مما استعدوا له.
كان التطبيق يخزن أصلًا كل مسار في صورة تسلسل من الإحداثيات يرسم مساره، مجمّعة من تسجيلات GPS يرسلها المساهمون. أما ما كان ينقصه فهو الارتفاع على طول ذلك المسار، وهو جزء البيانات الذي يميز فعلًا نزهة مستوية من صعود جاد على المسافة نفسها. فاستقبلت نقطة النهاية /v1/elevation القائمة الكاملة لإحداثيات المسار، لأن الطلب المجمّع يقبل قائمة من النقاط ويعيد الارتفاع لكل منها، وحصل التطبيق على قيمة ارتفاع لكل نقطة على طول المسار المسجل، بالترتيب نفسه الذي أُرسلت به.
من تلك القائمة، كان حساب إجمالي الصعود، أي مجموع كل تغير صاعد على طول المسار، عملية حسابية مباشرة تولتها الواجهة الخلفية للتطبيق. وأنتج إجمالي الصعود، مقرونًا بالمسافة، مؤشر صعوبة أكثر فائدة فعلًا من المسافة وحدها: فالمسار ذو الصعود الكبير على مسافة قصيرة صُنّف شديد الانحدار وصعبًا بغض النظر عن قصره الظاهر على الورق، بينما صُنّف المسار الطويل المستوي أسهل رغم طوله، وهو ما يطابق ما يعيشه المتنزهون فعلًا على الأرض بدرجة أكبر بكثير مما كان عليه النظام القديم المعتمد على المسافة فقط.
أعاد التطبيق بناء تصنيف الصعوبة حول هذا الرقم المركب وأعاد حساب كل مسار موجود في دليله بأثر رجعي، في مهمة دفعية لمرة واحدة شملت مكتبة المسارات كاملة. وكانت تلك الدفعة أكبر طلب أرسله التطبيق على الإطلاق، ولأن طلب الارتفاع المجمّع يحتسب كل نقطة عنصرًا مفوترًا واحدًا لا كل مسار، فإن حجم المهمة الدقيق تناسب مع عدد نقاط الإحداثيات الموجودة في المكتبة كلها لا مع عدد المسارات، وهو أمر أخذه الفريق في الحسبان عند تقدير التكلفة مسبقًا بدلًا من أن يفاجأ به لاحقًا.
إلى جانب تصنيف الصعوبة الرئيسي، أتاحت بيانات الارتفاع نفسها للتطبيق عرض مخطط لملف الصعود في صفحة كل مسار، على غرار ما قد يعرضه تطبيق لركوب الدراجات، مما يتيح للمتنزه أن يرى بالضبط مواضع المقاطع شديدة الانحدار على طول المسار بدلًا من الاكتفاء بمعرفة تصنيف إجمالي للصعوبة. ووجد المتنزهون الذين أرادوا الاستعداد لمقطع صعب بعينه، بدلًا من مجرد معرفة أن المسار صعب إجمالًا، أن المخطط أكثر فائدة من التصنيف وحده.
كانت استعلامات الارتفاع المستمرة بعد الدفعة الأولى مدفوعة بإضافات المسارات الجديدة، وهو حجم أصغر وأكثر ثباتًا بكثير من مشروع إعادة الحساب لمرة واحدة، ويقع بارتياح ضمن الحصة اليومية المجانية بالنسبة إلى المعدل المعتاد لإضافات المساهمين الجديدة في التطبيق.
لا يكون نظام التصنيف أفضل من البيانات التي يقوم عليها، وقد تبين أن الارتفاع هو المُدخل الناقص الذي كان تصنيف الصعوبة في التطبيق بحاجة إليه طوال الوقت. توثيق نقطة النهاية، بما في ذلك حدود عدد النقاط لكل طلب، متاح في /docs/elevation-lookup/.