إدارة وكلاء البرمجة عن بُعد في مشاريع Flutter: من المهمة إلى مراجعة الكود
بقلم يوسف سالم حسنمهندس برمجيات رئيسي · LinkedIn
كيف تستفيد من متابعة وكيل البرمجة من هاتفك مع إبقاء تغييرات Flutter محدودة وقابلة للاختبار والمراجعة: نتيجة واحدة قابلة للتقييم لكل مهمة، وحدود واضحة للمعمارية، وأدلة من الاختبارات، وتغيير صغير.

متابعة الوكيل من الهاتف
أصبح بإمكان المطور متابعة بعض أعمال وكيل البرمجة من الهاتف، بينما يستمر التنفيذ على جهازه الأساسي. هذه فرصة مفيدة أثناء التنقل، لكنها تحتاج إلى طريقة واضحة لتقسيم العمل ومراجعة نتائجه. في مشروع Flutter، القيمة ليست في إرسال تعليمات أكثر، بل في تحويل كل تعليمات إلى تغيير محدود يمكن فهمه واختباره والتراجع عنه.
أعلن Cursor في ٦ أكتوبر ٢٠٢٦ دعم متابعة الوكلاء المحليين والرد عليهم عبر تطبيقه على iOS (سجل تغييرات Cursor: «Remote control for local agents»). يظل الوكيل يعمل على الكمبيوتر، الذي يجب أن يبقى متصلًا ومشغّلًا؛ الميزة لا تنقل العمل تلقائيًا إلى السحابة.
ما يلي اقتراح عملي لسير عمل في تطبيقات Flutter، وليس وصفًا لميزة إضافية في Cursor أو تجربة شخصية مقاسة. يصلح أيضًا عند استخدام أدوات أخرى تدعم متابعة المهام، مع اختلاف إعدادات الصلاحيات والتنفيذ.
ابدأ بمهمة تستطيع تقييمها
طلب مثل «حسّن التطبيق كله» يترك تعريف النجاح مفتوحًا. الأفضل وصف مشكلة واحدة وسلوك متوقع واضح. مثلًا: في شاشة طلبات الصيانة، تبقى حالة التحميل ظاهرة بعد فشل الاتصال. المطلوب إظهار رسالة مناسبة وزر إعادة المحاولة، مع الاحتفاظ بالطلبات المعروضة سابقًا إذا كان المنتج يسمح بذلك.
اذكر الشاشة المتأثرة، وما يحدث الآن، وما يجب أن يحدث بعد التعديل. أضف القيود التي تهم المشروع، مثل دعم العربية والإنجليزية وعدم تغيير عقد الـAPI. بهذه الطريقة يستطيع الوكيل اقتراح نطاق قبل لمس الملفات، وتستطيع أنت مراجعة الخطة حتى من شاشة صغيرة.
تجنب جمع تحديث الحزم وإعادة هيكلة المشروع وإصلاح المشكلة في مهمة واحدة. كل تغيير إضافي يزيد عدد الاحتمالات عند ظهور خطأ، ويجعل المراجعة أصعب. يمكن اقتراح التحسينات الأخرى في قائمة منفصلة ثم تنفيذها لاحقًا.
حدّد حدود الطبقات في Clean Architecture
في مشروع يفصل العرض والبيانات والمنطق، اشرح المسار المتوقع للتغيير. قد يبدأ من تحويل خطأ الشبكة داخل مصدر البيانات، ثم إعادته عبر المستودع، ثم تمثيله في حالة الـCubit، وأخيرًا عرضه في الواجهة. لا تجعل هذا التقسيم طقسًا ثابتًا؛ إذا كانت المشكلة في نص الرسالة فقط، لا تحتاج إلى تعديل جميع الطبقات.
قدّم للوكيل أسماء الملفات الحالية ومثالًا قريبًا من السلوك المطلوب. القواعد الموجودة في المستودع أكثر فائدة من وصف معماري عام، لأنها توضح conventions الفعلية. اطلب منه تفسير أي تغيير في interface أو dependency بدل إدخاله ضمن إصلاح صغير دون بيان أثره.
مثال تعليمات يمكنك تكييفه: «المشكلة: شاشة الطلبات لا تخرج من التحميل عند فشل الشبكة. اقرأ التدفق الحالي ثم اقترح الملفات المطلوبة فقط. التزم بأسلوب Cubit والمستودعات الموجود في المشروع. لا تغيّر عقد API أو تحدث الحزم ضمن هذه المهمة. غطّ سلوك الفشل وإعادة المحاولة باختبار ذي معنى. اعرض diff ونتائج الفحص وما لم تتمكن من اختباره. توقف عند قرار يحتاج تغيير سلوك المنتج.»
هذا المثال يحدد هدفًا وحدودًا ومخرجات. لا يضمن صحة التنفيذ؛ يسهّل اكتشاف ما إذا كان التنفيذ يحقق المطلوب.
اجعل مراجعة الهاتف نقطة توجيه
الهاتف مناسب لمعرفة أين وصلت المهمة، والإجابة عن سؤال محدد، ومراجعة ملخص أو خطة. عند وجود تعديل واسع في المصادقة أو الدفع أو إعدادات البناء، ارجع إلى بيئة تستطيع فيها قراءة التغييرات كاملة وتشغيل التطبيق.
اطلب تحديثًا يتضمن ما تغير، وما بقي، وما تعطل. إذا وجد الوكيل أن إصلاح الخطأ يتطلب تعديل endpoint في الباك إند، لا تسمح للطلب الأصلي بأن يتوسع بصمت. افصل القرار إلى مهمة واضحة تتضمن عقد البيانات وأثر التغيير على الإصدارات القديمة.
ومن المفيد الاتفاق على نقطة توقف. بعد تنفيذ التعديل والفحوص، يعرض الوكيل النتائج وينتظر المراجعة المطلوبة قبل الدمج. هذا اقتراح لإدارة المشروع؛ إعدادات الأداة وسياسات الفريق هي التي تحدد الصلاحيات الفعلية.
اربط التغيير بأدلة قابلة للفحص
توثيق Flutter يميز بين اختبارات الوحدة وواجهات widgets واختبارات التكامل. اختر المستوى الذي يتحقق من المشكلة، بدل إضافة اختبارات تعيد وصف الكود فقط.
في مثال فشل الشبكة، قد تحتاج إلى التحقق من الحالة الصادرة عند الخطأ ومن ظهور زر إعادة المحاولة. أما رحلة المستخدم كاملة فتستحق اختبار تكامل عندما يكون لها أثر مهم في المنتج. نجاح اختبار حالة منفردة لا يثبت أن شاشة التطبيق الفعلية تعرض النص العربي بشكل صحيح.
يمكن أن تشمل الفحوص الأولية flutter analyze وflutter test، وهما أمران موثقان في مرجع Flutter CLI. أضف إجراءات البناء أو الاختبارات التي يعتمدها مستودعك بالفعل. لا تطلب من الوكيل ادعاء نجاح Android أو iOS إذا لم تتوفر له البيئة المناسبة.
اطلب عرض نتيجة الأمر وحالة الخروج، وتحديد الاختبارات التي شغّلها. وعند الفشل، يجب توضيح هل السبب في التعديل أم في مشكلة سابقة أو تبعية غير متاحة. عبارة «كل شيء يعمل» لا تساعدك على اتخاذ قرار دمج.
راجع تجربة المستخدم بجانب الاختبارات
تطبيق عربي وإنجليزي يحتاج إلى مراجعة الاتجاهين. افحص طول الرسالة، واتجاه الأيقونة، وموقع زر المحاولة، وما يحدث عند الضغط المتكرر. جرّب اتصالًا ضعيفًا أو منقطعًا، وانتقال التطبيق إلى الخلفية إذا كان ذلك مرتبطًا بالسيناريو.
في المنتجات التجارية، اكتب معيار قبول يستطيع صاحب المشروع فهمه: «عند فشل تحميل الطلبات، تظهر رسالة قابلة للفهم ويمكن إعادة المحاولة دون فقدان القائمة السابقة». هذا أدق من مطالبة عامة بتحسين تجربة المستخدم، ويمنح المطور والعميل لغة مشتركة للتقييم.
إذا لم تنفّذ هذه التجارب بالفعل، ضعها ضمن قائمة المراجعة المتبقية. توضيح حدود التحقق أفضل من ترك الملخص يوحي بأن كل منصة وحالة قد جُرّبت.
احتفظ بتغيير صغير ومسار رجوع واضح
استخدم فرعًا مستقلًا للمهمة وراجع الفرق مقارنة بفرع الأساس. ابحث عن ملفات لا ترتبط بالمشكلة، وحذف اختبارات، وتعديلات lockfiles غير مفسرة. يمكن أن يكون تغيير الحزمة صحيحًا، لكنه يحتاج سببًا واضحًا واختبارًا يناسب أثره.
اطلب ملخصًا يربط كل مجموعة ملفات بالسلوك الذي تغير. احتفظ بتفاصيل الإعدادات السابقة إذا عدّلت إعدادًا، حتى تستطيع إعادة الوضع عند الحاجة. في Flutter والباك إند، راجع توافق الطلبات والاستجابات قبل دمج تغييرات تعتمد على بعضها.
الهدف هو تقليل الغموض أثناء العمل عن بُعد. لا توجد سرعة مضمونة من هذه الطريقة؛ فائدتها المحتملة أن تكون كل خطوة قابلة للتقييم بدل تراكم تغييرات كبيرة يصعب فهمها.

متى تفيد هذه الطريقة؟
تصلح للمهام المحدودة: إصلاح حالة عرض، إضافة اختبار لتدفق معروف، أو توثيق جزء من المشروع. وتحتاج متابعة أقرب عندما تتغير صلاحيات المستخدمين أو منطق الدفع أو ترحيل البيانات. اختر مستوى الإشراف وفق أثر التغيير وإمكانية التراجع عنه.
ابدأ بمهمة صغيرة ذات معيار قبول واضح. تابعها عن بُعد عندما يفيدك ذلك، واجعل القرار النهائي مبنيًا على الفرق والاختبارات وتجربة المنتج.
اقرأ دراسة الحالة: Tech 92 — تطبيق الحضور ومؤشرات الأداء للموظفين ←
مقالات أخرى
- كيف صنعت فيديو إعلانيًا لتطبيق بالكود باستخدام Remotionكيف صنعت فيديو إصدار تطبيق Tech 92 ومدته 68 ثانية بالكود بدل برامج المونتاج: شاشات حقيقية من محاكي iOS، وواجهة متحركة في Remotion، وتعليق صوتي من ElevenLabs موقّت كلمةً بكلمة عبر Whisper، وكود واحد يُخرج نسخًا لـ LinkedIn وApp Store.
- استلام سورس كود التطبيق: قائمة مراجعة للعميلعندما يسلّمك المطوّر تطبيقك، تأكد أنك استلمت مستودع الكود، وحسابات المتاجر والخوادم، والمفاتيح، وطريقة لبناء التطبيق بنفسك، ودليلًا مختصرًا. وبدون هذه الأشياء ستعتمد على شخص واحد لتعديل تطبيقك.
- Flutter أم Native: أيهما يناسب تطبيقك؟لمعظم تطبيقات الأعمال، Flutter هو الخيار الأفضل: قاعدة كود واحدة لأندرويد وiOS، وتكلفة أقل، وتحديثات أسرع، ودعم جيد للعربية. ويبقى التطوير الأصلي Native أفضل في حالات قليلة، مثل الرسوم ثلاثية الأبعاد أو الواقع المعزز الثقيل، أو الوصول العميق للعتاد، أو وجود فريق Native قائم.