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

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

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

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

*جلوگیری از ارور های هنگام استفاده 
*کاهش زمان جستجوی مثال های کد  
*کاهش زمان جستجوی اسناد API 
*شفاف سازی دانش موجود و یادآوری جزئیات فراموش شده

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

## منابع

رده:برنامه‌نویسی
رده:تعامل انسان و رایانه
رده:طراحی نرم‌افزار
رده:ویژگی‌های نرم‌افزاری