تجاوز إلى المحتوى
تمت ترجمة هذه المقالة من اليابانية باستخدام الذكاء الاصطناعي
اقرأ باليابانية
هذه المقالة في الملكية العامة (CC0). لا تتردد في استخدامها بحرية. CC0 1.0 Universal

التطوير الموجه بالتطوير والاختبار القائم على إعادة الهيكلة

التطوير يعني تكرار إنشاء شيء جديد ومفيد.

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

لذلك، فإن التصميمات والقوالب التي تُنشأ من خلال تطوير المنتجات الجديدة تُستخدم مرارًا وتكرارًا في المصانع لإنتاج كميات كبيرة من المنتجات المتطابقة.

هناك أيضًا استخدامات لكلمة "تطوير" مثل تطوير القدرات الفردية، أو تطوير المجتمع والأمة. هذه الاستخدامات لا تعني مجرد زيادة ما يمتلكه الفرد، بل تعني القدرة على الاستخدام المتكرر للقدرات المطوّرة والاستفادة منها.

بينما قد تتقلب القوة الاقتصادية للأفراد والمجتمعات مع الظروف الاقتصادية، إلا أن القدرات المطوّرة عادة ما تكون دائمة.

وحتى لو تضاءلت، فإن ذلك يُنظر إليه على أنه تدهور، وليس تقلبًا مثل الازدهار الاقتصادي.

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

ومن بين نتائج هذه التطورات - المنتجات، والقدرات، والمعرفة، والتقنيات - بعضها يمكن أن يكون مفيدًا للتطوير اللاحق.

عن طريق تطوير مثل هذه النتائج المفيدة، يتوسع نطاق التطوير، وتتحسن الكفاءة والجودة أيضًا.

تطوير البرمجيات الموجه بالذكاء الاصطناعي

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

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

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

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

يشار إلى هذا باسم تطوير البرمجيات الموجه بالذكاء الاصطناعي.

التطوير الموجه بالتطوير

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

كما ذكرنا سابقًا، فإن النتائج المساعدة في التطوير توسع نطاق التطوير وتساهم في زيادة الكفاءة والجودة. علاوة على ذلك، إذا تم إنشاؤها بفعالية، يمكن إعادة استخدامها في مشاريع تطوير أخرى.

لذلك، من خلال تطوير برمجيات مفيدة أثناء مسار تطوير البرمجيات، يمكن زيادة الكفاءة الكلية في نهاية المطاف، ويمكن الاستفادة من هذه الأصول للتطوير المستقبلي أيضًا.

تقليديًا، كان تطوير مثل هذه البرمجيات المساعدة في التطوير ممارسة شائعة في هذا المجال، ولكنه تطلب وقت وجهدًا خاصين بالتطوير، مما استدعى تقييمًا دقيقًا وتنفيذًا مستهدفًا.

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

هذا يجعل تطوير البرمجيات التي تساعد في التطوير أثناء تطوير البرمجيات أسهل من أي وقت مضى.

وبعد التفكير العميق، يظهر أسلوب تطوير يتم فيه تطوير أدوات مفيدة باستمرار أثناء عملية التطوير، وبالتالي تحويل طريقة التطوير نفسها.

سنطلق على هذا اسم التطوير الموجه بالتطوير.

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

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

بينما يمكن لوكلاء الذكاء الاصطناعي تحقيق نتائج مماثلة من خلال الإيحاء (prompting)، يمكن للبرمجيات التي تدمج الذكاء الاصطناعي التوليدي زيادة الدقة بسهولة أكبر من خلال الجمع بين البرامج والإيحاءات.

إذا أمكن ممارسة التطوير الموجه بالتطوير، فسيشهد المشروع الثاني تحسينات في كل من الجودة والتكلفة مقارنةً بالأول. علاوة على ذلك، مع كل مشروع لاحق - الثالث والرابع وما إلى ذلك - ستستمر التحسينات في التراكم.

يختلف هذا تمامًا عن مجرد تطوير البرمجيات باستخدام الذكاء الاصطناعي التوليدي. ستظهر فجوة كبيرة بمرور الوقت بين الفرق التي تتقن أدوات الذكاء الاصطناعي التوليدي ببساطة والفرق التي تمارس التطوير الموجه بالتطوير.

الاختبار الموجه بإعادة الهيكلة

يوجد مفهوم يُعرف بـ التطوير الموجه بالاختبار (TDD)، والذي يتضمن أولاً تصميم الاختبارات بناءً على المواصفات ثم تطوير البرمجيات لتجتاز تلك الاختبارات.

في البداية، اعتقدتُ أيضًا أنه مع سهولة تطوير برامج الاختبار للاختبار الآلي بفضل الذكاء الاصطناعي التوليدي، قد يكون التطوير الموجه بالاختبار قابلاً للتطبيق.

ومع ذلك، عندما بدأت في ممارسة التطوير الموجه بالتطوير، توصلت إلى اعتقاد بأن نهج تصميم الاختبارات قبل التنفيذ لم يكن دائمًا مناسبًا.

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

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

في مشروع تطوير البرمجيات الشخصي الحالي، لاحظتُ أيضًا مشكلات في مرونة الوظائف والأداء، مما دفعني إلى استبدال إطارين بإطارين مختلفين.

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

عند هذه المنعطفات لإعادة الهيكلة، يصبح الاختبار اعتبارًا واعيًا لأول مرة.

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

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

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

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

يمكن أن يُطلق على هذا اسم الاختبار الموجه بإعادة الهيكلة.

الخلاصة

يُحدث الذكاء الاصطناعي التوليدي تحولًا جذريًا في تطوير البرمجيات.

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

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

إن التطوير الموجه بالتطوير و الاختبار الموجه بإعادة الهيكلة هما بالتحديد المنهجان اللذان سيقوداننا نحو هذه الآفاق الجديدة في تطوير البرمجيات.