وحدة 1 / 11

مقدمة إلى الذكاء الاصطناعي في تطوير الأجهزة المحمولة: الأدوار والحدود والمصادقة والأمن

المكاسب:

  • القدرة على التمييز بين المكان الذي يوفر فيه الذكاء الاصطناعي السرعة الحقيقية في تطوير الأجهزة المحمولة (كود النمط، المسودة، التعلم) وأين (الهندسة المعمارية، الإذن، الأمان، النشر) حيث يُترك القرار للإنسان، اعتمادًا على مستوى مخاطر المهمة.
  • القدرة على تطبيق نظام يتحقق من كل مخرجات الذكاء الاصطناعي من خلال خطوات التشغيل والاختبار والمراجعة
  • القدرة على تطوير عادة كتابة مطالبات قوية ومليئة بالسياق وحماية البيانات الشخصية والمفاتيح السرية دون إعطائها للذكاء الاصطناعي

يعد تطوير تطبيقات الهاتف المحمول أحد أكثر مجالات البرمجيات تنافسية في العالم. نحن نتحدث عن منتج يعمل على مليارات الأجهزة، وتعتمد دورة تحديثه على موافقة المتجر، ويتم قياسه في جيب المستخدم في جميع الأوقات. لقد دخل الذكاء الاصطناعي (الذكاء الاصطناعي - أنظمة برمجية يمكنها إنتاج النصوص والتعليمات البرمجية والحلول مثل البشر) هذا المجال بطريقتين: أولاً، كمساعدة تعمل على تسريع عملية التطوير (إنشاء التعليمات البرمجية، وتصحيح الأخطاء، وكتابة الاختبار)، وثانيًا، كقدرة مضمنة في التطبيق (التعرف على الصور على الجهاز، ومساعد الدردشة، ومحرك التوصيات). هذه الوحدة تعلم كلا من النهاية إلى النهاية. ولكن دعونا نثبت جملة واحدة منذ البداية: الذكاء الاصطناعي لا يحل محل مطور الأجهزة المحمولة؛ يوسع إنتاجيته ونطاقه. أنت مسؤول عن كل سطر من التعليمات البرمجية الصادرة، وكل إذن مطلوب، وكل معاملة تتم باستخدام بيانات المستخدم.

في هذه الوحدة، سنرى أين ينتج الذكاء الاصطناعي قيمة حقيقية في تطوير الأجهزة المحمولة، وأين يجب أن يستسلم للبشر، وكيفية التحقق من كل ناتج، ولماذا يعد الانضباط في أمن الخصوصية غير قابل للتفاوض.

أين يصبح الذكاء الاصطناعي مفيدًا في تطوير الأجهزة المحمولة؟

يتكون تطوير الأجهزة المحمولة من العديد من المهام المتكررة والمنقوشة: كتابة كود العرض، وإعداد طبقة طلب الشبكة، وتحديد نموذج البيانات، وإنتاج حالة اختبار، وحل رسالة الخطأ. وينتج الذكاء الاصطناعي هذه الأنماط بسرعة كبيرة. وفي المقابل، فإن القرارات المعمارية، وتفضيلات تجربة المستخدم، والحدود الأمنية، ودقة منطق الأعمال هي من اختصاص البشر.

من المفيد تقسيم المهام إلى ثلاث مجموعات بناءً على مستوى المخاطرة:

نوع المهمة

دور الذكاء الاصطناعي

دور الرجل

رمز القالب (النموذجي)، شاشة العينة، التحويل

يولد مشروع، ويسرع ذلك

التعليقات، يتكامل

منطق الأعمال وتدفق البيانات وتكامل واجهة برمجة التطبيقات

يقدم اقتراحات ومسودات

يتحقق، يختبر، يثبت

الهندسة المعمارية، طلب الإذن، الأمن، قرار البث

يسرد الخيارات والمبررات

يتخذ القرار ويتحمل المسؤولية

سيكون هذا الجدول بمثابة بوصلتنا طوال الوحدة. لا يتم تسليم العمود الأيمن إلى الذكاء الاصطناعي أبدًا.

نصيحة: فكر في الذكاء الاصطناعي باعتباره "متدربًا سريعًا جدًا ولكن عديم الخبرة". أنت تعطيه مهمة واضحة، وتقرأ نسخته المطبوعة، وتضعه تحت الاختبار، وتتحمل المسؤولية. لا ترسل الكود الذي أنتجه المتدرب إلى الإنتاج (البيئة الحية) دون قراءته؛ وتنطبق نفس القاعدة على الذكاء الاصطناعي.

انضباط التحقق: ثلاث خطوات

نص الذكاء الاصطناعي مرن ويبدو واثقًا؛ لكن الطلاقة ليست الدقة. يناسب الذكاء الاصطناعي أحيانًا وظيفة مكتبة غير موجودة (وهذا ما يسمى الهلوسة - النموذج ينتج بثقة شيئًا غير موجود في الواقع). إليك الفلتر المكون من ثلاث خطوات الذي يطبقه مطور الأجهزة المحمولة على كل مخرجات الذكاء الاصطناعي:

  1. تجميع وتشغيل. هل يتم تجميع الكود بالفعل، هل يتم فتح التطبيق؟ هل واجهة برمجة التطبيقات (API) التي يقترحها الذكاء الاصطناعي موجودة بالفعل في SDK (مجموعة أدوات تطوير البرامج - مجموعة الأدوات الجاهزة التي تقدمها المنصة)؟
  2. اختبره. اختبار السلوك المتوقع تلقائيًا أو يدويًا. "يبدو أنه يعمل" ليس كافيا؛ جرب حالات الحافة (بيانات خاملة، لا توجد شبكة، تم رفض الإذن).
  3. مراجعة وتبرير. هل تفهم لماذا يتم كتابة الكود بهذه الطريقة؟ لا تنشر تعليمات برمجية لا تفهمها. اسأل الذكاء الاصطناعي "ماذا يفعل هذا الخط، ولماذا هو مطلوب؟" بسأل.
تنبيه: قد تكون أرقام الإصدارات وأسماء المكتبات وتوقيعات واجهة برمجة التطبيقات المقدمة من YZ قديمة أو ملفقة. ولا يمكنه معرفة التحديثات التي تم إصدارها بعد التاريخ النهائي (آخر تاريخ تم فيه تدريب النموذج). تحقق دائمًا من التبعية المهمة من الوثائق الرسمية (Apple Developer، Android Developers).

ثلاث حالات صغيرة

الحالة 1 - تسريع تطوير الشاشة. قام فريق التجارة الإلكترونية بصياغة شاشة تفاصيل المنتج بمساعدة الذكاء الاصطناعي من Jetpack Compose (مجموعة أدوات الواجهة الحديثة لنظام Android). المسودة الأولى، التي تستغرق عادة يومين، صدرت في 3 ساعات. لكن الفريق اكتشف في الاختبار أن تنسيق السعر الذي ينتجه الذكاء الاصطناعي كان يقوم بتقريب العملة بشكل غير صحيح: 19.99 ليرة تركية ظهرت على أنها 20 ليرة تركية على بعض الأجهزة. إذا لم يكن هناك تحقق، فسيتم نشر هذا الخطأ. الربح حقيقي لكن السيطرة واجبة.

الحالة 2 - تم القبض على الهلوسة. حصل أحد المطورين على رمز من الذكاء الاصطناعي لطلب إذن تحديد الموقع على نظام iOS. اقترح الذكاء الاصطناعي وظيفة تسمى requestPreciseLocationOnce(). لم يكن هناك مثل هذه API؛ كان الخيار الصحيح هو requestWhenInUseAuthorization(). كشف خطأ التجميع هذا على الفور. الدرس المستفاد: المترجم هو المدقق الأكثر صدقًا للذكاء الاصطناعي.

الحالة 3 - فخ الخصوصية. قام أحد الفرق بلصق تقارير أخطاء المستخدم في الذكاء الاصطناعي وطلب حلاً. وتضمنت التقارير البريد الإلكتروني للمستخدمين ومعرفات الأجهزة. وهذا يعني تسرب البيانات الشخصية إلى خدمة طرف ثالث وكان انتهاكًا لشروط KVKK (قانون حماية البيانات الشخصية). الحل: مسح (إخفاء) الحقول الشخصية قبل إعطاء البيانات إلى الذكاء الاصطناعي.

موجه ضعيف / موجه قوي

يحدد الفرق بين اثنين من المطالبات لنفس المهمة جودة المخرجات.

المطالبة الضعيفة: "اكتب لي شاشة تسجيل الدخول."

مطالبة قوية: "قم بإنشاء شاشة تسجيل دخول باستخدام Jetpack Compose لنظام Android. المتطلبات: - حقل البريد الإلكتروني وكلمة المرور؛ التحقق من تنسيق البريد الإلكتروني، كلمة مرور مكونة من 8 أحرف على الأقل - تم تعطيل زر "تسجيل الدخول" أثناء التحميل وإظهار القرص الدوار - تظهر رسائل الخطأ بنص أحمر أسفل الحقل - بنية MVVM: الحالة في ViewModel، واجهة المستخدم القابلة للتركيب فقط - Kotlin، المادة 3، minSdk 24، ما عليك سوى تقديم الرمز، ثم شرح كل قسم في جملة واحدة."

يخبر الموجه الثاني النظام الأساسي والأداة والهندسة المعمارية والحدود وتنسيق الإخراج. ولا يترك أي شيء للذكاء الاصطناعي لتخمينه؛ ولذلك، فإنه يعطي نتيجة أكثر فائدة وأسهل للتحقق.

قوالب بداية قابلة للنسخ

استخدم النماذج أدناه عن طريق ملئها بالسياق الخاص بك.

قالب الدور والسياق: "أنت أحد كبار مطوري [iOS/Android/Flutter]. مشروعي: [نوع التطبيق]، النظام الأساسي المستهدف [الإصدار]، الهندسة المعمارية [MVVM/Clean]. المهمة: [ما تريد]. القيود: [اللغة، المكتبة، الإصدار]. قم أولاً بتلخيص الخطة في 3 عناصر، ثم إنتاج الكود، ثم قم بإدراج المخاطر."

قالب مراجعة الكود:"افحص كود [اللغة] التالي. حدد: 1) الأخطاء ومخاطر الأعطال 2) مشكلات الذاكرة/الأداء 3) ثغرات الأمان والخصوصية 4) حيث يمكن كتابتها بشكل أكثر بساطة. أرقام الأسطر لكل عنصر واقتراح التصحيحات. [الكود]"

قالب التعلم: "اشرح [المفهوم، على سبيل المثال، async/await in Swift] من وجهة نظر مطور الأجهزة المحمولة. أعط مثالاً بسيطًا، واذكر 3 أخطاء شائعة، وأشر إلى متى يجب ألا أستخدمه."

قالب التحقق: "لقد اقترحت واجهة برمجة التطبيقات/الوظيفة هذه: [الاسم]. التحقق: ما هو إصدار SDK الذي تم تقديمه، ما الإذن الذي يتطلبه، هل تم إهماله؟ إذا لم تكن متأكدًا، فقل "لست متأكدًا، تحقق من الوثائق الرسمية"."

الأخطاء الشائعة

  • لصق الإخراج دون قراءته. الخطأ الأكثر شيوعا والأخطر. حتى لو تم تجميعها، قد يكون المنطق خاطئا.
  • إعطاء البيانات السرية لمنظمة العفو الدولية. لا يتم لصق مفتاح API وبيانات المستخدم وشهادة التوقيع في الطلب مطلقًا.
  • عدم التحقق من الإصدار وواجهة برمجة التطبيقات. قد يقترح الذكاء الاصطناعي واجهات برمجة تطبيقات قديمة أو مختلقة؛ الوثيقة الرسمية لها الكلمة الأخيرة.
  • ترك القرار المعماري للذكاء الاصطناعي. "ما هو أفضل الهندسة المعمارية؟" تعتمد إجابة السؤال على مشروعك؛ الذكاء الاصطناعي يعطي إجابة عامة، أنت تعرف السياق.
  • كتابة موجه واحد عملاق. محاولة حل مهمة معقدة بطلب واحد؛ من الأفضل تقسيمها إلى خطوات صغيرة يمكن التحقق منها.
  • طلب الأذونات "فقط في حالة". يضيف الذكاء الاصطناعي أحيانًا أذونات أكثر من اللازم؛ يشكل كل إذن خطرًا على موافقة المتجر وثقة المستخدم.

في ملخص

يلعب الذكاء الاصطناعي دورين في تطوير الأجهزة المحمولة: مساعد يعمل على تسريع عملية التطوير، وقدرة مضمنة في التطبيق. يوفر رمز النمط تسريعًا هائلاً للصياغة والتعلم؛ لكن القرارات المعمارية والأمنية والتصاريح والنشر هي قرارات بشرية. يتم التحقق من كل مخرجات من خلال ثلاث خطوات: الترجمة والتشغيل والاختبار والمراجعة. لا يتم منح البيانات السرية والمعلومات الشخصية أبدًا إلى الذكاء الاصطناعي. تنص منصة الطلب القوي بوضوح على الأداة والقيود وتنسيق الإخراج. هذا الانضباط هو الأساس لبقية الوحدة.

مهمة التطبيق

حدد شاشة من مشروع الهاتف المحمول الخاص بك (أو "تطبيق تدوين الملاحظات" الخيالي). اكتب مطالبة لتلك الشاشة باستخدام "قالب الدور والسياق" أعلاه. حاول تجميع التعليمات البرمجية التي تم إنشاؤها بواسطة الذكاء الاصطناعي في مشروع وتمريرها عبر مرشح التحقق من ثلاث خطوات: هل تم تجميعها، هل عملت كما هو متوقع، هل فهمت كل سطر؟ قم بتدوين ملاحظة عن خطأ واحد أو واجهة برمجة تطبيقات زائفة واحدة على الأقل تجدها.

قائمة مرجعية

  • [ ] لقد قمت بتحديد أي من المجموعات الثلاثة التي تقع المهمة ضمنها بناءً على مستوى المخاطرة الخاص بها
  • [ ] لقد حددت النظام الأساسي والإصدار والهندسة المعمارية والقيود في الطلب
  • [ ] قمت بتجميع الإخراج وتشغيله
  • [ ] لقد اختبرت الحالات المحدودة (بيانات خاملة، لا توجد شبكة، تم رفض الإذن)
  • [ ] لقد تأكدت من أنني فهمت كل سطر
  • [ ] لم أقدم أي بيانات شخصية أو مفاتيح خاصة للذكاء الاصطناعي
  • [ ] لقد قمت بالتحقق من واجهات برمجة التطبيقات الهامة من خلال الوثائق الرسمية