مقتطف (برمجة)
في برمجة الحاسوب ، تُعرف الشفرة البرمجية بأنها جزء صغير نسبيًا من شفرة المصدر ، يتم تخزينه وإدراجه لاحقًا في قاعدة بيانات برمجية أكبر كجزء من عملية كتابة الشفرة. توفر بعض أدوات التطوير ، مثل محرر الشفرة أو بيئة التطوير المتكاملة (IDE)، ميزات إدارة الشفرة البرمجية لتعزيز الإنتاجية ، وذلك بالسماح للمطور بإدراج جزء من الشفرة بدلًا من كتابتها بالكامل. [ 1 ]
على عكس البنية المجردة ، كالدالة مثلاً ، تُعدّ المقتطفات البرمجية شكلاً من أشكال البرمجة بالنسخ واللصق ، وهي عملية ماكرو تُوسّع نص القالب المُخزّن وتُدرج النتيجة في شفرة المصدر. [ 2 ] يُشبه إدراج المقتطفات البرمجية ماكرو المعالج المسبق، إلا أنه يُدرج توسيع تعريف الماكرو بدلاً من الإشارة إليه. لا يُؤثر تغيير المقتطف بعد إدراجه على الشفرة، كما هو الحال عند تغيير تعريف ماكرو المعالج المسبق. لهذا السبب، يُنصح باستخدام المقتطفات البرمجية فقط للشفرات البسيطة نسبيًا، مثل نموذج الدالة الأولي، أو بنية التحكم، أو استيراد المكتبة. يُستخدم المقتطف عادةً عندما لا يكون التجريد مُتاحًا (أي غير مدعوم من لغة البرمجة ) أو غير مرغوب فيه (أي بسبب زيادة الحمل على وقت التشغيل ).
توفر أدوات التطوير التي تدعم إدارة المقاطع البرمجية عادةً إمكانية الاحتفاظ بقائمة من القوالب المخزنة، والتي تتضمن عمليات مثل العرض والإضافة والحذف والتعديل وإعادة التسمية . ومن أبرز الأدوات التي تدعم إدارة المقاطع البرمجية: Eclipse و NetBeans و Visual Studio و Dreamweaver . ويمكن استخدام ميزات المقاطع البرمجية، مثل الإكمال التلقائي واستبدال العناصر النائبة، في بيئات سطر الأوامر مثل bash و PowerShell .
تدعم بيئات التطوير المتكاملة عادةً ميزة القصاصات البرمجية من خلال تطبيق بروتوكول خادم اللغة الذي يدعم هذه الميزة. [ 3 ]
الأنواع

يمكن تصنيف المقاطع البرمجية وفقًا لمستوى التفاعل عند استخدامها، بما في ذلك:
- ثابت
- المقتطف الثابت هو نص ثابت يمكن إدراجه دون الحاجة إلى إدخال معلومات في وقت الإدراج.
- متحرك
- تحتوي المقتطفات الديناميكية على عناصر نائبة قد يُطلب من المستخدم إدخال نص بديل لها عند وقت الإدراج.
- قابل للبرمجة
- المقطع البرمجي القابل للتنفيذ هو عبارة عن كود قابل للتنفيذ. قد يشمل دعم هذه المقاطع تشغيل أمر shell، أو توفير مربع حوار واجهة المستخدم الرسومية ، أو طرق أخرى لتفاعل المستخدم مع نظام التشغيل؛ أو تطبيقات أخرى؛ أو مكونات فرعية أخرى من التطبيق المضيف نفسه.
عنصر نائب
العنصر النائب هو جزء من مقتطف برمجي يُستبدل عند إدراجه. عادةً، يحتوي العنصر النائب على بنية ترميز خاصة تُمكّن أداة التطوير من تحديد حدود كل عنصر نائب لاستبداله. توفر بعض الأدوات واجهة مستخدم رسومية (GUI) تُمكّن المستخدم من إدخال قيم الاستبدال.
عادةً ما يتم تحديد العنصر النائب في مقتطف برمجي باستخدام صيغة خاصة، ويمكن تمييزه باسم أو رقم. يستخدم النص التالي عناصر نائبة محددة: first_name، last_name، و item:
مرحباً {% first_name %} {% last_name %} ,شحنتك المكونة من {% item %} جاهزة الآن للاستلام.شكراً لك يا {% first_name %} !باستخدام عنصر نائب مُحدد، يمكن للمقتطف البرمجي استخدام نفس قيمة الاستبدال عدة مرات. في المثال السابق، first_nameيُعد العنصر النائب مثالاً على هذا الاستخدام.
تتيح خاصية التحويل للمستخدم تحديد أن قيمة واحدة أو أكثر من القيم المُدخلة في خانة العنصر النائب يجب تكرارها وتحويلها في مواضع أخرى ضمن نص المقتطف البرمجي. على سبيل المثال، يمكن للمستخدم إدخال عنوان مستند في جزء من المقتطف، وتحديد أن عنوان المستند يجب تكراره في مواضع أخرى، بحيث يكون أول ظهور له بأحرف كبيرة، وكل ظهور لاحق بأحرف صغيرة.
مثال
يمكن ترميز خوارزمية تبديل قيم متغيرين xعلى النحو التالي:y
درجة الحرارة = س س = ص ص = درجة الحرارة
لجعل المقتطف أكثر فائدة، يتم استبدال أسماء المتغيرات بعناصر نائبة كما يلي:
temp = 1 دولار 1 دولار = 2 دولار 2 دولار = مؤقت
عند إدراج المقتطف البرمجي، قد تطلب أداة التطوير من المطور إدخال أسماء أكثر تحديدًا لاستبدال الأسماء الافتراضية. بالنسبة لـ fooو bar، يكون الكود المُدرج كالتالي:
temp = foo foo = bar بار = درجة الحرارة
إذا تم تغيير المقتطف لاحقًا، على سبيل المثال لاستخدام __tempبدلاً من temp، فلن يستخدم الكود الحالي تعريف المقتطف الجديد تلقائيًا، ولكن عمليات الإدخال اللاحقة ستفعل ذلك.
البدائل
يُعدّ استخدام الدوال بديلاً شائعاً لاستخدام المقاطع البرمجية، إذ يتميز هذا البديل بأنّ تعديل تعريف الدالة يؤثر على المستخدمين، بينما لا يؤثر تعديل المقطع البرمجي على أيٍّ من إضافاته الموجودة. وتؤكد العديد من تقنيات التطوير، مثل البرمجة الكائنية والبرمجة الوظيفية، على تجنّب تكرار التعليمات البرمجية ، وهو ما يتعارض مع استخدام المقاطع البرمجية.
ثمة بديل آخر وهو ماكرو المعالج المسبق المتوفر في لغة C والعديد من اللغات ذات الصلة.
متعلق ب
- نمط التصميم
- يُشبه نمط التصميم المقتطف البرمجي من حيث توليد الكود بدلاً من كتابته كدوال، لكن النمط يختلف عنه في نطاقه. فالنمط كبير نسبياً، كما أنه يُمثل تحدياً في برمجته كمكتبة قابلة لإعادة الاستخدام .
- جزء من كود الكائن
- على غرار مقتطفات الشفرة المصدرية، يمكن للمترجم الفوري (JIT) دمج الشفرة المترجمة مسبقًا في مقاطع أطول من شفرة الكائن . هذا يقلل من وقت التفسير ويسرع التنفيذ.
- إدخال كود الذكاء الاصطناعي
- يمكن لتقنيات الذكاء الاصطناعي التوليدي ، مثل GitHub Copilot، استنتاج الوظائف من شفرة المصدر وإدراج شفرة ذات صلة يمكن اعتبارها مشابهة لمقتطف برمجي. [ 4 ] [ 5 ]
انظر أيضاً
- الإكمال التلقائي – ميزة حاسوبية تتنبأ بنهاية الكلمة التي يكتبها المستخدم
- إعادة هيكلة الكود – إعادة تنظيم الكود البرمجي الحالي دون تغيير سلوكه الخارجي
- إدارة المحتوى – إنشاء المعلومات وعرضها للجمهور
- الكود المكرر – جزء متكرر من كود المصدر الحاسوبي
- Pastebin – نوع من خدمات استضافة المحتوى عبر الإنترنت حيث يمكن للمستخدمين تخزين النصوص العادية
- سكراب بوك (ماك أو إس) – برنامج كمبيوتر ماكنتوش
- التحكم في الإصدارات – إدارة إصدارات التعليمات البرمجية المصدرية أو البيانات
- أداة ويب - تطبيق صغير مصمم للاستخدام داخل صفحات الويب
مراجع
- ↑ "Gedit/Plugins/Snippets" . مؤرشف من الأصل بتاريخ 25-08-2012 . تم الاطلاع عليه بتاريخ 09-01-2010 .مثال على هذه الميزة في محرر Gedit.
- ↑ كيم، ميريونغ؛ بيرغمان، لورانس؛ لاو، تيسا؛ نوتكين، ديفيد (2004). "دراسة إثنوغرافية لممارسات البرمجة بالنسخ واللصق في لغات البرمجة الكائنية التوجه" (ملف PDF) . وقائع: الندوة الدولية لعام 2004 حول هندسة البرمجيات التجريبية، ISESE 2004: 19-20 أغسطس 2004، ريدوندو بيتش، كاليفورنيا . لوس ألاميتوس، كاليفورنيا: IEEE . الصفحات 83-92 . ISBN 978-0-7695-2165-7OCLC 326620442. مؤرشف من الأصل (PDF) بتاريخ 19 أكتوبر 2016. تم الاطلاع عليه بتاريخ 18 أكتوبر 2016. لكل حالة نسخ ولصق ،
لاحظنا أيضًا العلاقة بين جزء الكود المنسوخ والكود الموجود في مكان آخر في قاعدة الكود
. - ↑ "المواصفات" . microsoft.github.io . تم الاطلاع عليه في 4 سبتمبر 2025 .
- ↑ إتش إم لي، تريت؛ تشين، هاو؛ علي بابار، محمد (2021). "التعلم العميق لنمذجة وتوليد شفرة المصدر". مجلة ACM Computing Surveys . 53 (3). جامعة أديلايد: 1-38 . arXiv : 2002.05442 . doi : 10.1145/3383458 . S2CID 211096967 .
- ↑ "GitHub يستعرض أداة ذكاء اصطناعي جديدة تقدم اقتراحات برمجية" . TechCrunch . 29 يونيو 2021. تاريخ الاطلاع: 25 يوليو 2021 .
- شفرة المصدر
- ميزات محرر النصوص
