پرش به محتوا

برنامه نویسی مثال محور

از ویکی‌پدیا، دانشنامهٔ آزاد

برنامه نویسی مثال محور یک رویکرد نسبت به توسعه ی نرم افزار است که به کاربران کمک می کند تا نرم افزار را با پیدا کردن و تغییر دادن مثال های کوچک به یک کل بزرگتر بسازند. از طریق محیط توسعه یکپارچه(IDE) برای نشان دادن کد-مثال ها یا اسناد API مربوط به رفتار های کدنویسی ای که در IDE روی می دهد می توان به این رویکرد کمک کرد. تاکتیک های "قرض گیری" معمولا توسط برنامه نویسانی که IDE را برای مشکل یابی ترک می کنند از سورس های آنلاین مورد استفاده قرار می گیرند.[۱] هدف برنامه نویسی مثال-محور این است که زمانی که توسعه دهندگان برای حل مشکلاتشان در اینترنت سرچ می کنند را کاهش دهد. در حالت ایده آل، در برنامه نویسی مثال-محور، رابط کاربری بدون اینکه توسعه دهندگان IDE را ترک کنند، با مثال های ماژول کمک یکپارچه می شود. ایده ی پشت این نوع از "مستند سازی لحظه ای" کاهش دادن اختلالات برنامه نویسی است.[۲] کاربرد این ویژگی محدود به متخصصان نیست، بلکه تازه کاران نیز از فواید یک پایگاه دانش یکپارچه بهره ی فراوان می برند بدون اینکه به جستجو کردن های مکرر در اینترنت رو بی آورند.[۱]


زمینه[ویرایش]

رشد وب شیوه ی ساخت نرم افزار را به طور بنیادین تغییر داده است. افزایش وسیع منابع اطلاعات و دموکراتیزه شدن دسترسی و توزیع، عوامل اصلی در توسعه ی برنامه نویسی مثال-محور برای توسعه ی سمت کاربر (End-User) است. آموزش ها ظرف چند ثانیه در اینترنت در دسترس است و بدین صورت طیف کسانی که آن را می نویسند وسیع تر می شود: طراحان، دانشمندان و سرگرمی جویان. طبق آمار 2012، سیزده میلیون نفر به عنوان بخشی از کارشان برنامه نویسی می کنند اما فقط سه میلیون از آن ها برنامه نویس حرفه ای و واقعی هستند. رواج ریپازیتوری(مخزن) های آنلاینِ کد، اسناد، بلاگ ها و انجمن ها، این توانایی را به برنامه نویسان می دهد تا با جستجو کردن، تغییر دادن و ترکیب کردن مثال ها، برنامه ها را به طور پشت سر هم بسازند. در یک رویکرد فرصت طلبانه نسبت به برنامه نویسی که بر روی سرعت و آسانی توسعه به جای انسجام و نگهداشت پذیری کد متمرکز است، استفاده از اینترنت حیاتی است. استفاده ی وسیع و مشابهی از وب توسط برنامه نویسان، متخصصان و تازه کاران وجود دارد که از آن برای نمونه سازی، ایده پردازی و کشف و یافتن استفاده می کنند. برنامه نویسان برای توسعه ی سریع نرم افزار، برنامه نویسان معمولا سیستم های مختلف موجود را با یکدیگر ترکیب می کنند. به عنوان بخشی از این پروسه، برنامه نویسان معمولا باید به جستجوی اجزای مناسب بگردند و مهارت های جدید یاد بگیرند، به همین دلیل آن ها شروع به استفاده از وب کردند. هنگام توسعه ی یک نرم افزار، برنامه نویسان 19 درصد از زمانشان را صرف جستجو در وب می کنند. افراد برای انجام چندین کار از انواع مختلف از وب استفاده می کنند. نیات پشت استفاده از وب بسته به فرم و زمان مورد استفاده متفاوت است.[۳] برنامه نویسان بیشتر وقت خود را صرف یادگیری یک مفهوم جدید می کنند، کمترین زمانشان صرف یادآوری به خودشان درمورد جزییات مفاهیمی که پیش از آن می دانستند میشود، و در این میان آن ها از اینترنت برای شفاف سازی دانش فعلی خود استفاده می کنند. برنامه نویسی مثال-محور سعی می کند مشکل لزوم خارج شدن از محیط توسعه برای گشتن به دنبال رفرنس ها و مثال ها حین برنامه نویسی را حل کند. به عنوان مثال، به طور سنتی و مرسوم، برای یافتن اسناد API و نمونه کد، برنامه نویسان یا از وبسایت مرجع زبان بازدید می کنند یا به موتور های جستجو می روند و پرس و جو های مختص به API را انجام می دهند.[۲] هنگام تلاش برای یادگیری یک چیز جدید، برنامه نویسان از آموزش های اینترنتی برای یادگیری سر وقت استفاده می کنند. علاوه بر آن، برنامه نویسان عمدا انتخاب می کنند که سینتکس های پیچیده را یادآوری نکنند و از اینترنت به عنوان یک حافظه ی خارجی که به هنگام نیاز می توان به آن دسترسی داشت استفاده کنند.[۳]


فواید[ویرایش]

برخی از فواید استفاده از برنامه نویسی مثال-محور عبارتند از:

  • جلوگیری از ارور های هنگام استفاده [۴][۵]
  • کاهش زمان جستجوی مثال های کد [۱][۲]
  • کاهش زمان جستجوی اسناد API [۲]
  • شفاف سازی دانش موجود و یادآوری جزییات فراموش شده[۱]


برنامه نویسی پدیدار شونده[ویرایش]

پدیدارگی یا پدیدار شدن را می توان به عنوان فرایندی تعریف کرد که در آن موجودات، الگو ها و نظم های بزرگتر از تعامل بین موجودات کوچکتر و ساده تری شکل می گیرد که خودشان آن ویژگی ها را ندارند. از مقادیر وسیعی از کد که به طور عمومی در سطح وب در دسترس است می توان برای پیدا کردن این الگو ها و نظم ها استفاده کرد. با مدل کردن نحوه ی استفاده از زبان های برنامه نویسی توسط برنامه نویسان در تمرین ها، الگوریتم هایی برای پیدا کردن نحوه های کدنویسی رایج و شناسایی کد های غیرمحتمل می تواند ساخته شود.[۵] این فرایند به میزان کدی که برنامه نویسان حاضرند و می توانند به اشتراک بگذارند محدود است. از آن جایی مردم کد بیشتری از آنچه به طور آنلاین به اشتراک میگذارند می نویسند، تلاش های مضاعف زیادی در این فرایند وجود دارد. برای استفاده ی کامل از قدرت جماعت، تلاش مورد نیاز برای انتشار آنلاین کد باید کاهش داده شود. [۶]


منابع[ویرایش]

  1. ۱٫۰ ۱٫۱ ۱٫۲ ۱٫۳ Scaffidi, Christopher; Brandt, Joel; Burnett, Margaret; Dove, Andrew; Myers, Brad (2012). "SIG: End-user programming". CHI '12 Extended Abstracts on Human Factors in Computing Systems. pp. 1193–1996. doi:10.1145/2212776.2212421. ISBN 9781450310161. S2CID 17748945.
  2. ۲٫۰ ۲٫۱ ۲٫۲ ۲٫۳ Bhardwaj, Anant; Luciano, Date; Klemmer, Scott (2011). "Redprint". Proceedings of the 24th annual ACM symposium adjunct on User interface software and technology. pp. 21–22. doi:10.1145/2046396.2046408. ISBN 9781450310147. S2CID 23031454.
  3. ۳٫۰ ۳٫۱ Brandt, Joel; Guo, Philip; Lewenstein, Joel; Dontcheva, Mira; Klemmer, Scott (2009). "Two studies of opportunistic programming". Proceedings of the SIGCHI Conference on Human Factors in Computing Systems. pp. 1589–1598. doi:10.1145/1518701.1518944. ISBN 9781605582467. S2CID 2907348.
  4. Oney, Stephen; Brandt, Joel (2012). "Codelets". Proceedings of the SIGCHI Conference on Human Factors in Computing Systems. pp. 2697–2706. doi:10.1145/2207676.2208664. ISBN 9781450310154. S2CID 9811795.
  5. ۵٫۰ ۵٫۱ Fast, Ethan; Steffee, Daniel; Wang, Lucy; Brandt, Joel; Bernstein, Michael (2014). "Emergent, crowd-scale programming practice in the IDE". Proceedings of the SIGCHI Conference on Human Factors in Computing Systems. pp. 2491–2500. CiteSeerX 10.1.1.645.4136. doi:10.1145/2556288.2556998. ISBN 9781450324731. S2CID 2840903.
  6. Lieber, Thomas; Miller, Rob (2012). "Programming with everybody". Adjunct proceedings of the 25th annual ACM symposium on User interface software and technology. pp. 101–102. doi:10.1145/2380296.2380342. ISBN 9781450315821. S2CID 1319863.