لقد توليت مهمة صعبة إلى حد ما. وهذا يعني أخذ بعض أكواد C# القبيحة للمؤسسة وترجمتها إلى Python. قبل أن أتعمق في الأمر، أشعر أنني بحاجة إلى القيام ببعض التوضيحات.
يعمل مشروع C# هذا كطبقة توصيل بيانات لبعض نماذج التعلم الآلي. عندما تسمع البيانات، أول ما يجب أن يتبادر إلى ذهنك هو لغة بايثون. لسوء الحظ، لم يكن هذا هو الحال، ولتحسين الأمر، يتم استخدام امتداد .NET لـ Apache Spark. يعد ترحيلها إلى لغة بايثون أمرًا منطقيًا، نظرًا لأنها تستخدم تقنية غير قياسية إلى حد ما لحل المشكلة، مما يجعل توظيف المواهب المستقبلية أمرًا صعبًا إلى حد ما. وهناك مشاكل أخرى واضحة، شائعة في لغات OOP الأخرى الخاصة بالمؤسسات أيضًا، مثل مستويات متعددة من التجريد، والوراثة في كل مكان، وانعكاس التحكم، ومرة أخرى الأشياء التي لا تفعلها في توصيل البيانات. ولإطعام الشيطان بشكل أكبر، سيغادر الفريق الأصلي من المقاولين/الاستشاريين (لأن من سيستخدم C#، بدلاً من بعض مستشاري المؤسسات) سيغادر الشهر المقبل.
راجع للشغل، أنا أستخدم Neovim، وأنا أستخدم Github Copilot منذ ما يقرب من عامين، وأيضًا Copilot Chat (من الناحية الفنية ChatGPT) منذ أن حصلت على نسخة المعاينة، لذلك أنا لست مبتدئًا تمامًا بأي حال من الأحوال، عندما يأتي إلى LLMs والكود.
ما هو شعورك عند البرمجة باستخدام Claude 3.5، حسنًا، هناك بعض الأجزاء الجيدة والسيئة والقبيحة. لكن في الغالب ليس لديك أي فكرة عما يحدث، حتى لو كنت قادرًا على كتابة نفس الوظيفة من الصفر.
يميل Claude 3.5 إلى تقديم نتائج صحيحة بشكل مدهش، ومع ذلك، يحاول في بعض الأحيان أن يكون ذكيًا، ويفشل، ولكن يمكنك توجيهه لإصلاح المشكلات. بشكل عام، يعد طرح الأسئلة رفيقًا جيدًا، وبالنسبة لي، نظرًا لأنه كان لدي سير عمل صارم وبذلت الكثير من الجهد لصياغة موجه متطور مع الكثير من الأمثلة والحواف، فقد كنت راضيًا للغاية. يمكنني الحصول على دورة تدريبية في لغة #C وترجمة الأجزاء المهمة إلى لغة بايثون التي تتطلب القليل جدًا من التعليمات الإضافية.
يمكنني عادةً الذهاب وكتابة التعليمات البرمجية لمدة 12 ساعة، مع فترات استراحة عرضية في الحمام ولإعادة ملء مقصف المياه الخاص بي. ونعم، لا أشعر بالجوع عندما أمارسه حقًا. مع كلود، بدأت في التدفق، ولكن بعد حوالي 3 ساعات شعرت بالموت. خلال هذه الساعات الثلاث، قمت بإنتاج الكثير من الأكواد البرمجية، وشعرت بالإنتاجية، ولكن كان الأمر أشبه بإجراء مراجعات للأكواد البرمجية بدون توقف، وطلب التغييرات، وفي أغلب الأحيان أو عدم البحث عن الوثائق إذا كان ما تم إنشاؤه صالحًا.
إذا كنت مبرمجًا، فمن المحتمل أن تكون على دراية إلى حد ما بالبرمجة التي كتبتها. تميل هذه الألفة إلى التلاشي مع مرور الوقت، ولكن إذا كنت تعمل لفترة كافية مع قاعدة التعليمات البرمجية، فأنت تعرف طريقك. مع التعليمات البرمجية التي تم إنشاؤها بواسطة LLM، لا يحدث هذا. لم يكن لدي سوى القليل من الفهم لما كان يحدث. لعدة أيام، قمت بإنتاج الكثير من التعليمات البرمجية، ومراجعة كل سطر، ومن وقت لآخر طلبت بعض التغيير، ولكن في النهاية لم يكن لدي أي فكرة عما يحدث بالفعل. في النهاية، بدت قاعدة التعليمات البرمجية وكأنها غريبة، وهو شيء لم أكتبه. ولجعل الأمور أسوأ، كان نمط التعليمات البرمجية الفعلي غير متناسق، ويمكنك معرفة الملفات التي تمت كتابتها في نفس اليوم، وشعرت أن أشخاصًا مختلفين هم من كتبوها.
لقد أمضيت الكثير من الوقت في مراجعة هذا النهج الكامل لترميز LLM وإعادة تصميمه وتعديله، ولكن النتيجة في معظم الأوقات هي مجرد كود، وهو يعمل إلى حد ما، ولكن ليس لديك أي فكرة عن السبب أو كيف. السؤال الكبير هو:
هل يستحق الأمر أن ينتهي بك الأمر بقاعدة تعليمات برمجية ليس لديك ارتباط كبير بها، والتي تشعر على الفور وكأنك كتبتها قبل عام مع زملاء خياليين لمرة واحدة.
خلاصة الأمر، شعرت أنني أنتجت المزيد من التعليمات البرمجية، ولكن الجودة كانت أقل من المعتاد. في بعض الحالات، تكون هذه الجودة المنخفضة مبررة، خاصة إذا كنت لا تهتم. لكن ما أخشاه هو أن الوقت قادم، حيث ستصبح كل قاعدة تعليمات برمجية "إرثًا" في وقت قياسي.
تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.
Copyright© 2022 湘ICP备2022001581号-3