أستخدم ChatGPT لمساعدتي في إصلاح الشفرة بشكل أسرع، ولكن بأي ثمن؟

صورة 5.jpg

في بداية هذا الأسبوع ، أظهرت لك كيف يمكن لـ ChatGPT أن ينشئ إضافة كاملة لـ ووردبريس تلبي المواصفات الوظيفية المحددة ، وإن كانت بسيطة إلى حد ما. الآن ، سأواصل اختبار ChatGPT للتعرف على مدى إمكانية استفادتي منه كأداة مفيدة - في هذه الحالة ، لمساعدتي في الحصول على بعض الإرشادات التقنية

أيضاً: سألت ChatGPT أن يكتب أداة ووردبريس لي. ففعل ذلك في أقل من 5 دقائق

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

فهم تغييرات لغة البرمجة

مزود خدمة الاستضافة الخاص بي يقوم بنقل جميع المواقع من PHP 7.4 القديم جدًا إلى PHP 8. PHP هو لغة برمجة ويب يعتمد عليها ووردبريس وعدد من أدوات إدارة الويب الأخرى. كان لدي بعض الإضافات التي لم تكن متوافقة مع PHP 8 ، وأردت تحديد الجوانب التي يجب أن أجدها وأقوم بإصلاحها في كودها.

عادةً، سأتفحص موقع PHP.net وأقوم بالقيام بعدد من عمليات البحث في جوجل والاطلاع على التعليقات في StackExchange لمعرفة العمل البرمجي الذي سأحتاج إلى القيام به. ولكن هذه عملية غير منظمة وتستغرق وقتًا طويلاً. بدلاً من ذلك، طلبت سؤالاً مفصلاً ومباشراً من ChatGPT وحصلت على إجابة مفيدة جداً، بما في ذلك كتل من الشفرة التوضيحية.

أواجه مشكلة في وظيفة استخراج الـ PHP تعطي خطأ مميت عندما لا يتم تمرير مصفوفة. في PHP 7.4 ، لم أحصل على الخطأ ، ولكن يبدو أنه في PHP 8. هل تغيرت استخراج لـ PHP 8؟

في PHP 8 تم تغيير سلوك دالة extract() لتكون أكثر صرامة. في الإصدارات السابقة من PHP، كانت دالة extract() تقوم ببساطة بإرجاع قيمة false إذا لم يتم تمرير مصفوفة إليها، ولكن في PHP 8، ستقوم برمي خطأ فادح إذا لم تتم تمرير مصفوفة إليها. تم إجراء هذا التغيير لتحسين قوة ودقة الدالة وللمساعدة في منع حدوث أخطاء محتملة نتيجة لإدخال غير متوقع.

يمكنك التحقق مما إذا كانت المتغير الممرر للدالة هو مصفوفة أم لا باستخدام الدالة is_array() قبل استدعاء extract().

صورة 3.jpg

يمكنك أيضًا استخدام وظيفة array_key_exists() للتحقق مما إذا كانت المتغير الممر مصفوفة أم لا.

صورة 6.jpg

بدلاً من ذلك، يمكنك استخدام العامل ... لتفكيك المصفوفة إلى متغيرات.

صورة7.jpg

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

بما أنني كنت أحاول تأمين المساحة الكلية للملحق الذي كنت أنقله إلى النسخة الجديدة، فقد طلبت أيضًا ما يلي:

أي وظائف PHP من المرجح أن تتعطل عند التحول من PHP 7.4 إلى PHP 8؟

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

  • الدالة extract()، كما هو مذكور في الإجابة السابقة، تقوم الآن بإرجاع خطأ قاتل إذا لم يتم تمريرها مصفوفة.
  • تمت إزالة الدالة each() في PHP 8.0. يمكنك استخدام foreach أو array_keys() و current() بدلاً منها.
  • تمت إزالة الدالة create_function() في PHP 8.0. يُوصى باستخدام الدوال المجهولة بدلاً منها.
  • تم تغيير تصميم البنية list() عند استخدامها مع foreach. الآن تقوم بإرجاع المفتاح والقيمة كمتغيرات منفصلة، بدلاً من مصفوفة واحدة.
  • تمت إزالة الدالة __autoload() في PHP 8.0. يجب استخدام spl_autoload_register() بدلاً منها.
  • تمت إزالة المتغير $php_errormsg في PHP 8.0. يجب استخدام الدالة error_get_last() بدلاً منه.
  • تمت إزالة بعض التحذيرات في إصدارات PHP السابقة في PHP 8.0. على وجه التحديد، تمت إزالة الدوال create_function() و each() و __autoload() و $php_errormsg.

هذه مجرد أمثلة قليلة على التغييرات التي قد تتسبب في مشاكل عند الانتقال من PHP 7.4 إلى PHP 8. من الجيد أن تقوم بإجراء اختبار شامل لشفرتك وتطبيقاتك قبل الترقية للتأكد من أن كل شيء يعمل كما هو متوقع.

يرجى ملاحظة أنه استخدم ChatGPT عبارة "كما ذكر في الإجابة السابقة". فهو قادر على تتبع الإجابات في المحادثة. هذا أمرٌ مدهش وفي الوقت نفسه مخيف.

في الكود الذي كنت أقوم بمراجعته، تبين أن المطور الأصلي (الذي غاب عن الصورة منذ فترة طويلة) استخدم دالة create_function بكثرة. لم أدرك أنها أُهجِرت. ولكن مع القائمة المفيدة أعلاه، فقط قمت بالبحث في الكود واكتشفت ما يجب تحديثه وإعادة صياغته. ثم ذهبت إلى الأمام وطلبت من ChatGPT عرض طرق لاستبدال تلك الدالة.

ما هو أفضل طريقة لإعادة كتابة الكود باستخدام create_function في لغة PHP؟ هل يمكنك أن تعطيني مثالًا يستخدم create_function وثم مثالًا يستخدم آلية البرمجة الحالية الصحيحة؟

create_function هي وظيفة قديمة في لغة PHP تستخدم لإنشاء وظائف لا اسم لها. لم يعد مستحسناً استخدام هذه الوظيفة نظرًا لأنها تمت إزالتها في PHP 8.0. بدلاً من ذلك، يمكن إنشاء وظائف لا اسم لها ، أيضًا معروفة باسم الإغلاقات، باستخدام الكلمة الرئيسية function.

هنا مثال على استخدام create_function:

صورة2.jpg

وهنا هو الشفرة المعادلة باستخدام وظيفة مجهولة:

صورة8.jpg

بالإضافة إلى ذلك، يمكنك استخدام الكلمة المفتاحية use لنقل المتغيرات داخل الإغلاق.

صورة1.jpg

بشكل عام، يُوصَى بِاِستِخدامِ الدوالِ المجهولَةِ بدلاً من create_function لأنَّها تتميز بأداءٍ محسَّن وقراءةٍ أفضل.

كما تبين ، كانت هذه شرحًا واضحًا جدًا وتمكنت من إعادة كتابة الكود بشكل مناسب بسرعة. هذا البرنامج المساعد يعمل الآن في بيئة PHP 8 الجديدة لمقدم الخدمة الاستضافة بدون مشاكل.

دعم فني لنظام التشغيل MacOS

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

إذا استخدمت ميزة Optimize Mac Storage في نظام التشغيل MacOS، فهل ستقوم أداة Time Machine بإجراء نسخ احتياطية غير كاملة بسبب أن بعض الملفات تكون ممثلة فقط على هيئة ملفات shortcut على الجهاز المحلي؟

ميزة "تحسين تخزين Mac" في نظام التشغيل macOS تستخدم iCloud لتفريغ الملفات التي لا يتم استخدامها بشكل متكرر من جهاز Mac الخاص بك إلى السحابة، في حين يتم الاحتفاظ بملف "stub" على الجهاز المحلي لتمثيل الملف الأصلي. يمكن أن يوفر هذا المساحة في قرص Mac الصلب الخاص بك.

عندما تُعيَّن آلة الزمن لعمل نسخ احتياطية، فإنها ستقوم بنسخ جميع الملفات، بما في ذلك تلك التي تم نقلها بواسطة "تحسين تخزين ماك". ومع ذلك، سيتم نسخ ملفات الاشتراط التي تُمثِل الملفات المنقولة في المكان الخاص بالملفات الأصلية.

هذا يعني أنه إذا كنت ستستعيد نظام التشغيل Mac الخاص بك من نسخة احتياطية في Time Machine تم إنشاؤها أثناء تمكين "تحسين تخزين Mac"، فإن أي ملفات تم تخزينها في السحابة ستكون غير متاحة في عملية الاستعادة ويجب تنزيلها من iCloud مرة أخرى.

من المهم أن نلاحظ أنه إذا كان لديك الكثير من الملفات التي تم تفعيلها، فإن نسخ الاحتياط الخاصة بـ Time Machine يمكن أن تستغرق مساحة أكثر من عدم استخدام Optimize Mac Storage لأن Time Machine سيقوم بنسخ ملفات العناصر المؤقتة، التي تأخذ مساحة أقل، ولكن Time Machine ستعاملها كملفات أصلية.

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

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

تشات جي بي تي، عندما تجيب على سؤال، هل تستفيد من المعرفة التي قدمها الآخرون؟ وهل تسلب العمل والشهرة من المصادر البشرية الأصلية؟

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

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

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

هذه إجابة صحيحة.

التداعيات

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

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

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

أتساءل فقط أين حصلت على معلوماتها. هل هناك كاتب مثلي هناك قام بكتابة مقال معلوماتي عميق حول extract أو create_function وتم "تلفيق" كلماته في إجابة من ChatGPT بدون إقامة أو تحقيق أرباح من ذلك؟ هل يتم استخدام معلومات الشخص الذي اكتسبها بجدية كمصدر غير معتمد لهذه الإجابات؟

المقالات ذات الصلة

عرض المزيد >>

أطلق العنان لقوة الذكاء الاصطناعي مع HIX.AI!