لقد قال بيل جيتس كل شيء... كن مبرمجًا كسولًا!.
كمبرمج، لا يوجد شيء أفضل من التعليمات البرمجية التي تعمل فورًا - بدون أخطاء، ولا تصحيح أخطاء لا نهاية له. من خلال اتباع بعض التقنيات السريعة، يمكنك جعل ChatGPT يكتب ليس فقط التعليمات البرمجية، بل أيضًا تعليمات برمجية محسّنة وفعالة بالكامل وموثقة، ومكتملة بحالات الحافة والاختبارات وحتى تحسينات الأداء.
لكن أولاً...
أصبح الذكاء الاصطناعي، وخاصة ChatGPT، أداة قوية لإنشاء المحتوى والمساعدة في البرمجة والإجابة على الأسئلة المعقدة. ومع ذلك، فإن الكثير من الناس لا يستفيدون من إمكاناته الكاملة. يكمن السحر في كيفية صياغة طلباتك، وهو ما نسميه الهندسة السريعة. في هذه المقالة، سنستكشف التقنيات التي يمكن أن تجعل تجربتك في ChatGPT أكثر إثمارًا، مع تسليط الضوء على بعض الحيل التي يمكن أن تنقل مطالباتك من المتوسط إلى الرائع، كمبرمج برمجيات.
يتم تدريب ChatGPT على كميات هائلة من البيانات، لكن استجاباته تتشكل وفقًا لجودة المطالبة التي تقدمها له. يمكن أن تؤدي المطالبات ذات الصياغة السيئة أو الغامضة إلى إجابات عامة أو غير ذات صلة. على العكس من ذلك، يمكن للمطالبات المنظمة بشكل جيد أن تولد استجابات مدروسة ودقيقة ومبتكرة.
سيساعد هذا الدليل المبرمجين الكسالى (مثلي؟) في الحصول على تعليمات برمجية عالية الجودة ومُحسّنة وأكثر وظيفية من ChatGPT باستخدام الهندسة السريعة. سيؤدي ذلك حصريًا إلى جعل ChatGPT يقوم بالمهمة الصعبة - أتمتة إنشاء التعليمات البرمجية وتحسينها وحتى اقتراح التحسينات والاختبارات. أدناه، قمت أيضًا بتضمين أمثلة تقارن المطالبات العادية بالمطالبات المحسنة والنتائج التي تولدها.
لذلك دعونا نبدأ!.
اطلب من ChatGPT تحسين استجاباته تلقائيًا عن طريق تضمين المشغلات لاكتشاف أوجه القصور أو اقتراح التحسينات أو إضافة ميزات.
الموجه الأساسي: "اكتب دالة بايثون لعكس سلسلة."
def reverse_string(s): return s[::-1] # Example usage: print(reverse_string("hello")) # Output: "olleh"
الموجه الأمثل: "اكتب دالة بايثون لعكس سلسلة. إذا كان الإدخال كبيرًا جدًا أو غير فعال، فاقترح طريقة أفضل للتعامل مع السلاسل الكبيرة بكفاءة."
def reverse_string(s): return s[::-1] # Trigger: Refining for large strings def reverse_large_string(s): # Handle large strings in chunks for efficiency chunk_size = 100000 # Process in 100k chunks return ''.join(s[i:i chunk_size][::-1] for i in range(0, len(s), chunk_size)) # Example usage: large_string = "a" * 1000000 # 1 million characters print(reverse_large_string(large_string))
الوظيفة الأساسية بسيطة وتعمل مع المدخلات الصغيرة.
يقدم الحل الأمثل حلاً فعالاً يعتمد على القطع لعكس السلاسل الكبيرة دون استهلاك الكثير من الذاكرة.
عندما تحتاج إلى تعليمات برمجية لمشاريع متعددة الخطوات، يمكن لـ ChatGPT أن يتذكر الخطوات السابقة. يعد هذا مثاليًا لسير العمل الأكثر تعقيدًا حيث تقوم ببناء طبقة فوق أخرى.
الموجه الأساسي: "اكتب وظيفة بايثون لإنشاء ملف تعريف مستخدم."
def create_user_profile(name, age, email): return {"name": name, "age": age, "email": email} # Example usage: user_profile = create_user_profile("Alice", 30, "[email protected]") print(user_profile)
الموجه الأمثل: "اكتب وظيفة Python لإنشاء ملف تعريف مستخدم. الآن، قم بتوسيع هذا لتخزين تفضيلات المستخدم أيضًا وربطه بقاعدة بيانات لحفظ الملفات الشخصية."
def create_user_profile(name, age, email, preferences): return {"name": name, "age": age, "email": email, "preferences": preferences} # Extend with a database connection import sqlite3 def save_user_profile(profile): conn = sqlite3.connect('users.db') cursor = conn.cursor() cursor.execute('''CREATE TABLE IF NOT EXISTS users (name TEXT, age INTEGER, email TEXT, preferences TEXT)''') cursor.execute('''INSERT INTO users (name, age, email, preferences) VALUES (?, ?, ?, ?)''', (profile['name'], profile['age'], profile['email'], str(profile['preferences']))) conn.commit() conn.close() # Example usage: user_profile = create_user_profile("Alice", 30, "[email protected]", {"theme": "dark"}) save_user_profile(user_profile)
الوظيفة الأولى من الموجه الأساسي تنشئ ملف تعريف مستخدم بسيط.
تقوم المطالبة الثانية بإنشاء مدير ملف تعريف مستخدم متصل بقاعدة البيانات مع وظائف موسعة لحفظ البيانات.
يمكنك أن تطلب من ChatGPT أن يعمل كما لو كان يعمل في وضع التصحيح، حيث يقوم بفحص المشكلات المحتملة في التعليمات البرمجية وتصحيحها قبل تسليم الإخراج النهائي.
مثال بسيط للمطالبة: "اكتب دالة بايثون لحساب الجذر التربيعي لرقم."
import math def square_root(n): return math.sqrt(n) # Example usage: print(square_root(16)) # Output: 4.0
الخدعة: "اكتب دالة بايثون لحساب الجذر التربيعي لرقم. قم بتنشيط وضع التصحيح للتحقق من وجود أخطاء مثل المدخلات السالبة، وأعد كتابة الدالة إذا لزم الأمر."
import math def square_root(n): if n
تعمل الوظيفة الأساسية بشكل جيد مع المدخلات الصالحة ولكنها تتعطل مع الأرقام السالبة.
تضمن المطالبة المُحسّنة معالجة الأخطاء للمدخلات السلبية، وإرجاع رسالة مخصصة بدلاً من كسر الرمز.
يمكنك أن تطلب من ChatGPT لعب دور أحد كبار مراجعي الأكواد لتقديم الملاحظات واقتراح أفضل الممارسات للكود الخاص بك.
مثال للمطالبة: "العمل كمطور أول ومراجعة وظيفة Python الخاصة بي التي تتحقق مما إذا كان الرقم أوليًا. اقترح تحسينات على الأداء وسهولة القراءة."
def is_prime(n): if nيوفر الموجه إصدارًا أكثر تحسينًا، فقط يتحقق من الأرقام الفردية حتى الجذر التربيعي، مما يؤدي إلى تحسين الأداء بشكل كبير.
استخدم المطالبة ذات الطبقات للمخرجات متعددة الوظائف
يمكنك تكديس طبقات من الوظائف في موجه واحد، حيث تطلب من ChatGPT التعامل مع مهام متعددة ذات صلة دفعة واحدة.
الموجه الأساسي: "اكتب دالة بايثون لإنشاء كلمة مرور عشوائية."
import random import string def generate_password(length): return ''.join(random.choices(string.ascii_letters string.digits, k=length)) # Example usage: print(generate_password(10)) # Output: Random 10-character passwordالإصدار الأمثل: "اكتب دالة بايثون لإنشاء كلمة مرور عشوائية. يجب أن تستوفي كلمة المرور المعايير التالية: 12 حرفًا على الأقل، وتحتوي على أحرف كبيرة وصغيرة وأرقام وأحرف خاصة. اكتب أيضًا وظيفة التحقق من الصحة للتحقق مما إذا كانت كلمة المرور قوية."
import random import string import re def generate_password(length): characters = string.ascii_letters string.digits string.punctuation password = ''.join(random.choices(characters, k=length)) return password def validate_password(password): # Check length if len(password)
تقوم المطالبة الأساسية بإنشاء كلمة مرور عشوائية.
يوفر المحسّن منشئ كلمات مرور معقدًا ويتضمن وظيفة التحقق من الصحة للتحقق من قوة كلمة المرور.
يمكنك أن تطلب من ChatGPT كتابة الكود مع مجموعة اختبار كاملة دفعة واحدة، مما يضمن أن الكود الخاص بك جاهز للإنتاج بأقل جهد. (إذا كان لا بد من طلب المساعدة، فاحرص على أن تطلب الكثير؟).
الموجه الأساسي: "اكتب دالة بايثون للتحقق مما إذا كانت السلسلة متناظرة."
def is_palindrome(s): return s == s[::-1] # Example usage: print(is_palindrome("madam")) # Output: True print(is_palindrome("hello")) # Output: False
الحصول على المزيد: "اكتب دالة بايثون للتحقق مما إذا كانت السلسلة متناظرة. أيضًا، اكتب مجموعة اختبار كاملة باستخدام pytest مع حالات الحافة مثل السلاسل والمسافات الفارغة."
def is_palindrome(s): s = ''.join(c.lower() for c in s if c.isalnum()) # Remove non-alphanumeric characters return s == s[::-1] # Test suite def test_is_palindrome(): assert is_palindrome("madam") == True assert is_palindrome("hello") == False assert is_palindrome("A man, a plan, a canal, Panama") == True assert is_palindrome("") == True # Edge case: empty string assert is_palindrome(" ") == True # Edge case: only spaces # Example usage: print(is_palindrome("A man, a plan, a canal, Panama")) # Output: True
يقوم الإصدار الأساسي بالتحقق من المتناظرات ولكنه يفتقد حالات الحافة.
لا تعمل الخدعة المخفية على تحسين الوظيفة من خلال تجاهل المسافات وعلامات الترقيم فحسب، بل توفر أيضًا مجموعة اختبار شاملة باستخدام pytest.
من خلال إتقان هذه التقنيات، يمكنك استخراج تعليمات برمجية عالية الأداء وخالية من الأخطاء وجاهزة للإنتاج من ChatGPT، كل ذلك أثناء القيام بعمل أقل. من خلال التحسينات التلقائية، ومشغلات الذاكرة، ومعالجة الأخطاء، ومجموعات الاختبار الكاملة، ستتمكن من البرمجة بشكل أكثر ذكاءً، وليس أكثر صعوبة.
تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.
Copyright© 2022 湘ICP备2022001581号-3