البرمجة التي تركز على الأمثلة

البرمجة المرتكزة على الأمثلة هي منهجية لتطوير البرمجيات تُساعد المستخدم على إنشاء برامج من خلال تحديد وتعديل أمثلة صغيرة لتكوين برنامج متكامل. يُمكن تسهيل هذه المنهجية باستخدام أدوات تسمح لبيئة التطوير المتكاملة (IDE) بعرض أمثلة برمجية أو توثيق واجهة برمجة التطبيقات (API) المتعلقة بسلوكيات البرمجة التي تحدث داخل بيئة التطوير. غالبًا ما يلجأ المبرمجون إلى "استعارة" المعلومات من مصادر الإنترنت، حيث يخرجون من بيئة التطوير لحل المشكلات. [ 1 ] يهدف هذا النوع من البرمجة إلى تقليل الوقت الذي يقضيه المطورون في البحث عبر الإنترنت. في الوضع الأمثل، تتكامل واجهة المستخدم مع أمثلة وحدة المساعدة لتوفير الدعم دون الحاجة إلى مغادرة بيئة التطوير. تكمن فكرة هذا النوع من "التوثيق الفوري" في تقليل انقطاعات البرمجة. [ 2 ] لا يقتصر استخدام هذه الميزة على الخبراء، إذ يستفيد بعض المبتدئين من قاعدة المعرفة المتكاملة، دون الحاجة إلى البحث أو التصفح المتكرر على الإنترنت. [ 1 ]

خلفية

أحدث نمو الإنترنت تغييرًا جذريًا في طريقة بناء البرمجيات. ويُعدّ التزايد الهائل في مصادر المعلومات، وتيسير الوصول إليها وتوزيعها، من العوامل الرئيسية في تطوير البرمجة القائمة على الأمثلة لتطوير تطبيقات المستخدم النهائي . تتوفر الدروس التعليمية على الإنترنت في غضون ثوانٍ، مما وسّع نطاق من يكتبونها: المصممون، والعلماء، والهواة. وبحلول عام 2012، بلغ عدد المبرمجين الذين يعملون في هذا المجال 13 مليون شخص، إلا أن 3 ملايين منهم فقط هم مبرمجون محترفون. ويُمكّن انتشار مستودعات الشفرة البرمجية، والوثائق، والمدونات، والمنتديات على الإنترنت، المبرمجين من بناء التطبيقات بشكل متكرر من خلال البحث عن الأمثلة وتعديلها ودمجها.

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

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

يقضي المبرمجون 19% من وقتهم في تطوير البرمجيات على الإنترنت. [ 3 ] يستخدم الأفراد الإنترنت لإنجاز أنشطة متنوعة. وتختلف دوافع استخدام الإنترنت من حيث الشكل والوقت المُستغرق. يقضي المبرمجون معظم وقتهم في تعلم مفاهيم جديدة، وأقل وقت في مراجعة تفاصيل مفاهيم يعرفونها مسبقًا، وفيما بين ذلك، يستخدمون الإنترنت لتوضيح معارفهم الحالية. [ 3 ]

يسعى أسلوب البرمجة القائم على الأمثلة إلى حل مشكلة الحاجة إلى الخروج من بيئة التطوير للبحث عن المراجع والأمثلة أثناء البرمجة. فعلى سبيل المثال، كان المبرمجون في السابق، للعثور على توثيق واجهات برمجة التطبيقات (API) ونماذج التعليمات البرمجية، إما بزيارة موقع مرجع اللغة أو بالبحث في محركات البحث عن واجهات برمجة التطبيقات المحددة. [ 2 ] وعند محاولة تعلم شيء جديد، يستخدم المبرمجون الدروس التعليمية على الإنترنت للتعلم الفوري. إضافةً إلى ذلك، يتجنب المبرمجون حفظ القواعد المعقدة، ويستخدمون الإنترنت بدلاً من ذلك كذاكرة خارجية يمكن الوصول إليها عند الحاجة. [ 3 ]

فوائد

تتضمن بعض فوائد البرمجة التي تركز على الأمثلة ما يلي:

  • منع أخطاء الاستخدام [ 4 ] [ 5 ]
  • تقليل الوقت اللازم للبحث عن أمثلة التعليمات البرمجية [ 1 ] [ 2 ]
  • تقليل الوقت اللازم للبحث عن وثائق واجهة برمجة التطبيقات [ 2 ]
  • توضيح المعرفة الحالية والتذكير بالتفاصيل المنسية [ 1 ]

البرمجة الناشئة

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

تقتصر هذه العملية على كمية الشيفرة البرمجية التي يرغب المبرمجون في مشاركتها ويستطيعون ذلك. ولأنّ الناس يكتبون شيفرة برمجية أكثر مما ينشرونها عبر الإنترنت، فإنّ هناك الكثير من الجهد المكرر. وللاستفادة القصوى من قوة المشاركة الجماعية، ينبغي تقليل الجهد المطلوب لنشر الشيفرة البرمجية عبر الإنترنت. [ 6 ]

أمثلة

المخطط [ 1 ]

Blueprint هو إضافة لبرنامج Adobe Flash Builder ، تعمل تلقائيًا على إثراء الاستعلامات بسياق الكود، وعرض نتائج البحث بطريقة تركز على الكود، ودمج تجربة البحث في المحرر، والحفاظ على رابط بين الكود المنسوخ ومصدره. صُممت هذه الإضافة لمساعدة المبرمجين في عمليات البحث على الإنترنت، وتمكينهم من تذكر التفاصيل المنسية بسهولة، وتوضيح المعلومات الموجودة لديهم.

يعرض نتائج من مجموعة متنوعة من صفحات الويب، مما يتيح للمستخدمين تصفح نتائج البحث وتقييمها بسرعة.

يُعد Blueprint خاصًا بالمهمة، مما يعني أنه سيبحث تحديدًا عن أمثلة في لغة البرمجة.

ريدبرينت [ 2 ]

Redprint هي بيئة تطوير برمجية (IDE) تعمل عبر المتصفح للغة PHP ، وتدمج واجهات عرض "أمثلة فورية" و"وثائق فورية" خاصة بواجهة برمجة التطبيقات (API). طُوِّر النموذج الأولي لبيئة التطوير المتكاملة (IDE) بواسطة أنانت بهاردواج ، الذي كان يعمل آنذاك في جامعة ستانفورد، انطلاقًا من فرضية أن واجهات الأمثلة الخاصة بالمهام تُجبر المبرمجين على فهم الشيفرة البرمجية التي تم العثور عليها، ولذلك تتضمن Redprint أيضًا واجهة بحث خاصة بواجهة برمجة التطبيقات. [ 2 ] تبحث واجهة البحث هذه عن أمثلة ووثائق خاصة بواجهة برمجة التطبيقات ذات صلة.

المخطوطة [ 5 ]

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

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

[ 4 ] وحدات الكود

الكودليت عبارة عن كتلة من التعليمات البرمجية النموذجية، وهي أداة مساعدة تفاعلية تساعد المستخدم في فهم المثال ودمجه.

بحث بينغ عن الرموز [ 7 ]

Bing Code Search هو امتداد لبرنامج Microsoft Visual Studio تم تطويره بواسطة فريق مكون من أشخاص من Visual Studio وBing و Microsoft Research يسمح للمطورين بالبحث عن أمثلة التعليمات البرمجية والوثائق من Bing مباشرة من IntelliSense .

يجمع محرك بحث Bing Code Search نماذج التعليمات البرمجية الخاصة به من MSDN و StackOverflow و Dotnetperls و CSharp411.

كودوتا

تساعد Codota المطورين في العثور على أمثلة نموذجية لأكواد Java من خلال تحليل ملايين مقتطفات الأكواد المتوفرة على مواقع مثل GitHub و StackOverflow . وتصنف Codota هذه الأمثلة وفقًا لمعايير مثل شيوع أنماط البرمجة، ومصداقية المصدر، ووضوح الكود. ويتيح ملحق Codota لبيئتي التطوير المتكاملتين IntelliJ IDEA و Android Studio للمطورين الحصول على أمثلة برمجية لاستخدام Java وواجهات برمجة تطبيقات Android دون الحاجة إلى مغادرة محرر النصوص.

UpCodeIn

UpCodeIn هو محرك بحث عن شفرة المصدر، يُمكّن المطورين من العثور على مكونات برمجية من الإنترنت وإعادة استخدامها. ومن أبرز ميزات UpCodeIn، مقارنةً بمحركات البحث الأخرى، قدرته على البحث عن الشفرة بناءً على عناصر بناء الجملة، فعلى سبيل المثال، يُمكنك العثور على الدوال ذات أنواع المعاملات المحددة، والتعليقات التوضيحية، والمتغيرات. يدعم UpCodeIn قواعد بناء جملة العديد من لغات البرمجة، مثل Java وJavaScript وPython وC#.

انظر أيضاً

مراجع

  1. 1 2 3 4 5 سكافيدي، كريستوفر؛ براندت، جويل؛ بورنيت، مارغريت ؛ دوف، أندرو؛ مايرز، براد (2012). "SIG: برمجة المستخدم النهائي". ملخصات موسعة لمؤتمر CHI '12 حول العوامل البشرية في أنظمة الحوسبة . الصفحات 1193-1996 . doi : 10.1145/2212776.2212421 . ISBN  9781450310161. S2CID 17748945 . 
  2. 1 2 3 4 5 6 بهاردواج، أنانت؛ لوتشيانو، ديت؛ كليمر، سكوت (2011). "الطبعة الحمراء". وقائع الندوة السنوية الرابعة والعشرين لجمعية ACM حول برمجيات وتكنولوجيا واجهة المستخدم . الصفحات 21-22 . doi : 10.1145/2046396.2046408 . ISBN  9781450310147. S2CID 23031454 . 
  3. 1 2 3 4 براندت، جويل؛ غو، فيليب؛ ليوينشتاين، جويل؛ دونتشيفا، ميرا؛ كليمر، سكوت (2009). "دراستان حول البرمجة الانتهازية". وقائع مؤتمر SIGCHI حول العوامل البشرية في أنظمة الحوسبة . الصفحات 1589-1598 . doi : 10.1145/1518701.1518944 . ISBN  9781605582467. S2CID 2907348 . 
  4. 1 2 أوني، ستيفن؛ براندت، جويل (2012). "وحدات البرمجة". وقائع مؤتمر SIGCHI حول العوامل البشرية في أنظمة الحوسبة . الصفحات 2697-2706 . doi : 10.1145/2207676.2208664 . ISBN  9781450310154. S2CID 9811795 . 
  5. 1 2 3 فاست، إيثان؛ ستيفي، دانيال؛ وانغ، لوسي؛ براندت، جويل؛ بيرنشتاين، مايكل (2014). "ممارسات البرمجة الناشئة على نطاق واسع في بيئة التطوير المتكاملة". وقائع مؤتمر SIGCHI حول العوامل البشرية في أنظمة الحوسبة . الصفحات 2491-2500 . CiteSeerX 10.1.1.645.4136 . doi : 10.1145/2556288.2556998 . ISBN   9781450324731. S2CID 2840903 . 
  6. ليبر، توماس؛ ميلر، روب (2012). "البرمجة مع الجميع". وقائع ملحقة بالندوة السنوية الخامسة والعشرين لجمعية ACM حول برمجيات وتكنولوجيا واجهة المستخدم . الصفحات 101-102 . doi : 10.1145/2380296.2380342 . ISBN  9781450315821. S2CID 1319863 . 
  7. شيبان، علا (17 فبراير 2014). "تقديم خدمة بحث Bing عن التعليمات البرمجية للغة C#" . blogs.msdn.com . تم الاطلاع عليه بتاريخ 8 ديسمبر 2014 .
  • حديث جويل براندت