Jump to content

Примерно-ориентированное программирование

Программирование, ориентированное на примеры, — это подход к разработке программного обеспечения , который помогает пользователю создавать программное обеспечение, находя и изменяя небольшие примеры в единое целое. В этом подходе могут помочь инструменты, которые позволяют интегрированной среде разработки (IDE) показывать примеры кода или документацию API , связанную с поведением кодирования, происходящим в IDE. Тактика «заимствования» часто используется из интернет-источников, когда программисты покидают IDE для устранения неполадок. [1] Целью программирования, ориентированного на примеры, является сокращение времени, затрачиваемого разработчиками на поиск в Интернете. В идеале при программировании, ориентированном на примеры, пользовательский интерфейс интегрируется с примерами справочных модулей, чтобы программистам не приходилось покидать IDE. Идея этого типа «мгновенной документации» состоит в том, чтобы уменьшить перерывы в программировании. [2] Использование этой функции доступно не только экспертам, поскольку некоторые новички могут воспользоваться преимуществами интегрированной базы знаний, не прибегая к частому поиску или просмотру веб-страниц. [1]

Рост Интернета фундаментально изменил способ создания программного обеспечения. Огромное увеличение информационных ресурсов и демократизация доступа и распространения являются основными факторами в разработке ориентированных на примеры программ для развития конечных пользователей . Учебные пособия доступны в Интернете за считанные секунды, что расширяет круг тех, кто их пишет: дизайнеров, ученых или любителей. К 2012 году 13 миллионов программистов являются частью их работы, но только три миллиона из них являются настоящими профессиональными программистами.Распространенность онлайн-хранилищ кода, документации, блогов и форумов позволяет программистам создавать приложения, итеративно ища, изменяя и комбинируя примеры.

Использование Интернета является неотъемлемой частью оппортунистического подхода к программированию, когда упор делается на скорость и простоту разработки, а не на надежность и удобство сопровождения кода. Программисты, новички и эксперты широко используют Интернет для создания прототипов , идей и открытий. [3]

Чтобы быстро разработать программное обеспечение, программисты часто объединяют различные существующие системы. В рамках этого процесса программистам часто приходится искать подходящие компоненты и осваивать новые навыки, поэтому они начали использовать для этой цели Интернет.

При разработке программного обеспечения программисты проводят 19% своего времени в Интернете. [3] Люди используют Интернет для выполнения нескольких различных видов деятельности. Намерения, стоящие за использованием Интернета, различаются по форме и затраченному времени. Программисты тратят большую часть времени на изучение новой концепции, меньше всего времени тратят на напоминание себе о деталях уже известной концепции, а в перерывах между ними они используют Интернет для уточнения своих существующих знаний. [3]

Программирование, ориентированное на примеры, пытается решить проблему необходимости выходить из среды разработки для поиска ссылок и примеров во время программирования. Например, традиционно, чтобы найти документацию по API и пример кода, программисты либо посещают справочный веб-сайт по языку, либо обращаются к поисковым системам и делают запросы, специфичные для API. [2] Пытаясь изучить что-то новое, программисты используют веб-уроки для оперативного обучения. Кроме того, программисты сознательно предпочитают не запоминать сложный синтаксис и вместо этого используют Интернет как внешнюю память, к которой можно получить доступ при необходимости. [3]

Преимущества

[ редактировать ]

Некоторые из преимуществ примерно-ориентированного программирования включают в себя:

  • Предотвращение ошибок использования [4] [5]
  • Сокращение времени на поиск примеров кода [1] [2]
  • Сокращение времени на поиск документации по API [2]
  • Уточнение имеющихся знаний и напоминание забытых деталей [1]

Экстренное программирование

[ редактировать ]

Эмерджентность можно определить как процесс, в ходе которого более крупные сущности, закономерности и закономерности возникают в результате взаимодействия между меньшими или более простыми сущностями, которые сами по себе не обладают такими свойствами. Обширный объем кода, общедоступный в сети, можно использовать для обнаружения закономерностей и закономерностей такого типа. Моделируя то, как разработчики используют языки программирования на практике, можно создать алгоритмы для поиска общих идиом и обнаружения маловероятного кода. [5]

Этот процесс ограничен объемом кода, которым программисты хотят и могут поделиться. Поскольку люди пишут больше кода, чем выкладывают в Интернете, возникает много дублирующихся усилий. Чтобы в полной мере использовать мощь толпы, необходимо сократить усилия, необходимые для публикации кода в Интернете. [6]

План [1]

Blueprint — это плагин для Adobe Flash Builder , который автоматически дополняет запросы контекстом кода, представляет ориентированное на код представление результатов поиска, встраивает возможности поиска в редактор и сохраняет связь между скопированным кодом и его источником. Он разработан, чтобы помочь программистам при поиске в Интернете и позволить им легко запоминать забытые детали и уточнять имеющиеся знания.

Он отображает результаты с разнообразного набора веб-страниц, позволяя пользователям быстро просматривать и оценивать результаты поиска.

Blueprint ориентирован на конкретную задачу, то есть он будет специально искать примеры на языке программирования.

Редпринт [2]

Redprint — это среда разработки на основе браузера для PHP , которая объединяет специальные API-интерфейсы отображения «мгновенного примера» и «мгновенной документации». Прототип IDE был разработан Анантом Бхардваджем , работавшим тогда в Стэнфордском университете , исходя из того, что примеры интерфейсов для конкретных задач заставляют программистов понимать найденный пример кода, и поэтому Redprint также включает интерфейс поиска для конкретного API. [2] Интерфейс поиска по API ищет соответствующие примеры и документацию по API.

Кодекс [5]

Кодекс — это база знаний, в которой записаны общие практики для Ruby . Использует краудсорсинговые данные от разработчиков и просматривает весь код в поисках закономерностей. Таким образом, если кто-то пишет код странным образом, Codex сообщит ему, что он делает что-то не так.

Codex использует статистический анализ, чтобы найти плохо написанный код или код, который синтаксически отличается от хорошо написанного кода, и предупредить пользователя, аннотацию шаблонов для автоматического обнаружения распространенных идиом программирования и аннотировать их метаданными с использованием краудсорсинга, а также создание библиотек для создания служебного пакета. который отражает возникающую практику программного обеспечения.

Кодлеты [4]

Кодлет — это блок примера кода, интерактивный вспомогательный виджет, который помогает пользователю понять и интегрировать пример.

Поиск кода Bing [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 для IDE IntelliJ IDEA и Android Studio позволяет разработчикам получать примеры кода для использования API Java и Android, не выходя из редактора.

UpCodeIn

UpCodeIn — это поисковая система исходного кода, которая позволяет разработчикам находить и повторно использовать программные компоненты из Интернета. Уникальной особенностью UpCodeIn по сравнению с другими поисковыми системами исходного кода является ее способность находить код для элемента синтаксиса, например, вы можете найти методы с определенным типом параметра, аннотацией, переменными. UpCodeIn понимает синтаксис многих языков программирования, таких как Java, JavaScript, Python и C#.

См. также

[ редактировать ]
  1. ^ Jump up to: а б с д и Скаффиди, Кристофер; Брандт, Джоэл; Бернетт, Маргарет ; Голубь, Эндрю; Майерс, Брэд (2012). «SIG: Программирование конечного пользователя». CHI '12 Расширенные тезисы по человеческому фактору в вычислительных системах . стр. 1193–1996. дои : 10.1145/2212776.2212421 . ISBN  9781450310161 . S2CID   17748945 .
  2. ^ Jump up to: а б с д и ж Бхардвадж, Анант; Лучано, Дате; Клеммер, Скотт (2011). «Редпринт». Материалы 24-го ежегодного симпозиума ACM по программному обеспечению и технологиям пользовательского интерфейса . стр. 21–22. дои : 10.1145/2046396.2046408 . ISBN  9781450310147 . S2CID   23031454 .
  3. ^ Jump up to: а б с д Брандт, Джоэл; Го, Филип; Левенштейн, Джоэл; Дончева, Мира; Клеммер, Скотт (2009). «Два исследования оппортунистического программирования». Материалы конференции SIGCHI по человеческому фактору в вычислительных системах . стр. 1589–1598. дои : 10.1145/1518701.1518944 . ISBN  9781605582467 . S2CID   2907348 .
  4. ^ Jump up to: а б Оней, Стивен; Брандт, Джоэл (2012). «Коделеты». Материалы конференции SIGCHI по человеческому фактору в вычислительных системах . стр. 2697–2706. дои : 10.1145/2207676.2208664 . ISBN  9781450310154 . S2CID   9811795 .
  5. ^ Jump up to: а б с Быстро, Итан; Стеффи, Дэниел; Ван, Люси; Брандт, Джоэл; Бернштейн, Майкл (2014). «Новая практика массового программирования в IDE». Материалы конференции SIGCHI по человеческому фактору в вычислительных системах . стр. 2491–2500. CiteSeerX   10.1.1.645.4136 . дои : 10.1145/2556288.2556998 . ISBN  9781450324731 . S2CID   2840903 .
  6. ^ Либер, Томас; Миллер, Роб (2012). «Программирование со всеми». Дополнительные материалы 25-го ежегодного симпозиума ACM по программному обеспечению и технологиям пользовательского интерфейса . стр. 101–102. дои : 10.1145/2380296.2380342 . ISBN  9781450315821 . S2CID   1319863 .
  7. ^ Шибан, Алабама, «Представляем поиск по коду Bing для C#» . blogs.msdn.com . Проверено 8 декабря 2014 г.
[ редактировать ]
Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: a0004ec577627f2657f65b4e590c9c5a__1703648820
URL1:https://arc.ask3.ru/arc/aa/a0/5a/a0004ec577627f2657f65b4e590c9c5a.html
Заголовок, (Title) документа по адресу, URL1:
Example-centric programming - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)