Příkladné programování - Example-centric programming

Příkladné programování je přístup k vývoj softwaru který pomáhá uživateli vytvořit software lokalizací a úpravou malých příkladů do většího celku. Tomuto přístupu mohou pomoci nástroje, které umožňují integrované vývojové prostředí (IDE) pro zobrazení příkladů kódu nebo API dokumentace týkající se chování kódování vyskytujícího se v IDE. Taktiky „půjčování“ se často používají z online zdrojů, programátoři opouštějí IDE při řešení problémů.[1]Účelem příkladně zaměřeného programování je snížit čas strávený vývojáři hledáním online. V ideálním případě je v příkladově orientovaném programování uživatelské rozhraní integruje s příklady modulu nápovědy pro pomoc, aniž by programátoři opustili IDE. Myšlenkou tohoto typu „okamžité dokumentace“ je snížit přerušení programování.[2] Využití této funkce není omezeno na odborníky, protože někteří nováčci sklízejí výhody integrované znalostní báze, aniž by se uchýlili k častému vyhledávání na webu nebo procházení.[1]

Pozadí

Růst webu zásadním způsobem změnil způsob vytváření softwaru. Obrovský nárůst informačních zdrojů a demokratizace přístupu a distribuce jsou hlavními faktory při vývoji příkladně zaměřeného programování pro vývoj koncových uživatelů. Výukové programy jsou na webu k dispozici během několika sekund, čímž se rozšiřuje prostor toho, kdo je píše: návrháři, vědci nebo fandové. Do roku 2012 je součástí jejich práce 13 milionů programů, ale pouze tři miliony z nich jsou skutečnými profesionálními programátory. Prevalence online úložišť kódů, dokumentace, blogů a fór - umožňuje programátorům iterativně vytvářet aplikace hledající, upravující a kombinující příklady.

Používání webu je nedílnou součástí oportunistického přístupu k programování, když se zaměřuje na rychlost a snadný vývoj přes robustnost a udržovatelnost kódu. Web je široce využíván programátory, nováčky i odborníky prototyp, nápad a objev.[3]

Pro rychlý vývoj softwaru programátoři často spojují různé existující systémy. V rámci tohoto procesu musí programátoři často hledat vhodné komponenty a učit se nové dovednosti, proto pro tento účel začali používat web.

Při vývoji softwarových programátorů tráví 19% svého programovacího času na webu.[3] Jednotlivci používají web k provádění několika různých druhů činností. Záměry používání webu se liší formou i časem. Programátoři tráví většinu času učením se novému konceptu, nejméně času tráví připomínáním detailů konceptu, který již znají, a mezitím používají web k objasnění svých stávajících znalostí.[3]

Programování zaměřené na příklady se snaží vyřešit problém nutnosti vystoupit z vývojového prostředí, aby při programování hledaly reference a příklady. Například tradičně, aby našli dokumentaci API a ukázkový kód, programátoři buď navštíví webovou stránku s referenčním jazykem, jdou do vyhledávačů a zadají specifické dotazy API.[2] Když se programátoři snaží naučit něco nového, používají to webové výukové programy pro just-in-time učení. Programátoři se navíc záměrně rozhodli nepamatovat si komplikovanou syntaxi a místo toho používají web jako externí paměť, ke které lze v případě potřeby přistupovat.[3]

Výhody

Mezi výhody programování zaměřeného na příklad patří:

  • Prevence chyb při používání [4][5]
  • Zkrácení času hledáním příkladů kódu [1][2]
  • Zkrácení času vyhledávání dokumentace API [2]
  • Upřesnění stávajících znalostí a připomenutí zapomenutých detailů [1]

Naléhavé programování

Vznik lze definovat jako proces, při kterém větší entity, vzorce a zákonitosti vznikají prostřednictvím interakcí mezi menšími nebo jednoduššími entitami, které samy o sobě takové vlastnosti nevykazují. Velké množství kódu, který je veřejně dostupný na webu, lze použít k nalezení tohoto typu vzorů a zákonitostí. Modelováním způsobu, jakým vývojáři používají programovací jazyky v praxi, lze vytvořit algoritmy pro hledání běžných idiomů a detekci nepravděpodobného kódu.[5]

Tento proces je omezen na množství kódu, který jsou programátoři ochotni a schopni sdílet. Protože lidé píší více kódu, než sdílejí online, je zde spousta zdvojeného úsilí. Chcete-li plně využít sílu davu, mělo by se snížit úsilí potřebné k publikování kódu online.[6]

Příklady

Modrotisk [1]

Blueprint je plugin pro Adobe Flash Builder který automaticky rozšiřuje dotazy o kontext kódu, poskytuje pohled na výsledky vyhledávání zaměřený na kód, vkládá prostředí vyhledávání do editoru a zachovává spojení mezi zkopírovaným kódem a jeho zdrojem. Je navržen tak, aby pomohl programátorům při vyhledávání na webu a umožnil jim snadno si zapamatovat zapomenuté podrobnosti a objasnit stávající znalosti.

Zobrazuje výsledky z pestré sady webových stránek a umožňuje uživatelům rychle procházet a vyhodnocovat výsledky vyhledávání.

Blueprint je specifický pro daný úkol, což znamená, že bude konkrétně hledat příklady v programovacím jazyce.

Redprint [2]

Redprint je vývojové prostředí založené na prohlížeči pro PHP který integruje rozhraní pro zobrazení „okamžitého příkladu“ a „okamžité dokumentace“ specifické pro API. Prototyp IDE byl vyvinut společností Anant Bhardwaj, pak v Stanfordská Univerzita za předpokladu, že ukázková rozhraní specifická pro daný úkol ponechají programátorům povinnost porozumět nalezenému ukázkovému kódu, a proto Redprint zahrnuje také vyhledávací rozhraní specifické pro API.[2] Rozhraní pro vyhledávání specifické pro API hledá relevantní příklady a dokumentaci specifickou pro API.

Kodex [5]

Codex je znalostní báze, která zaznamenává běžné postupy pro Rubín. Použití crowdsourcing data od vývojářů a prohledává celý kód, hledá vzory, takže pokud někdo kóduje zvláštním způsobem, Codex mu dá vědět, že dělá něco špatně.

Codex používá statistické linkování k vyhledání špatně napsaného kódu nebo kódu, který se syntakticky liší od dobře napsaného kódu, a varuje uživatele, anotaci vzoru, aby automaticky objevil běžné programovací idiomy a anotoval je pomocí metadat pomocí crowdsourcingu a generování knihovny pro konstrukci balíčku nástrojů který zapouzdřuje nově vznikající softwarovou praxi.

Kodety[4]

Codel je blok ukázkového kódu, interaktivního pomocného widgetu, který pomáhá uživateli pochopit a integrovat příklad.

Hledání kódu Bing [7]

Hledání kódu Bing je příponou Microsoft Visual Studio vyvinutý týmem lidí z Visual Studio, Bing a Microsoft Research, který umožňuje vývojářům vyhledávat příklady kódu a dokumentaci z Bing přímo z IntelliSense.

Hledání kódu Bing shromažďuje ukázky kódu z MSDN, StackOverflow, Dotnetperls a CSharp411.

Codota

Codota pomáhá vývojářům najít typické Jáva příklady kódu analyzováním milionů úryvků kódu dostupných na webech, jako je GitHub a Přetečení zásobníku. Codota řadí tyto příklady podle kritérií, jako je shodnost vzorů kódování, důvěryhodnost původu a jasnost kódu. Codota plugin pro IntelliJ IDEA a Android Studio IDE umožňují vývojářům získat příklady kódu pro používání rozhraní API Java a Android, aniž by museli opustit svůj editor.

Viz také

Reference

  1. ^ A b C d E Scaffidi, Christopher; Brandt, Joel; Burnett, Margaret; Dove, Andrew; Myers, Brad (2012). SIG: programování pro koncové uživatele. CHI '12 Extended Abstracts on Human Factors in Computing Systems. 1193–1996. doi:10.1145/2212776.2212421. ISBN  9781450310161.
  2. ^ A b C d E F Bhardwaj, Anant; Luciano, rande; Klemmer, Scott (2011). Redprint: integrace rozhraní API specifického pro „okamžitý příklad“ a „okamžitou dokumentaci“ v IDE. Sborník příspěvků z 24. výročního sympozia ACM o softwaru a technologii uživatelského rozhraní. 21–22. doi:10.1145/2046396.2046408. ISBN  9781450310147.
  3. ^ A b C d Brandt, Joel; Guo, Philip; Lewenstein, Joel; Dontcheva, Mira; Klemmer, Scott (2009). Dvě studie oportunistického programování: prokládání webových stránek, učení a psaní kódu. Sborník konference SIGCHI o lidských faktorech ve výpočetních systémech. 1589–1598. doi:10.1145/1518701.1518944. ISBN  9781605582467.
  4. ^ A b Oney, Stephen; Brandt, Joel (2012). Codelets: propojení interaktivní dokumentace a ukázkového kódu v editoru. Sborník konference SIGCHI o lidských faktorech ve výpočetních systémech. 2697–2706. doi:10.1145/2207676.2208664. ISBN  9781450310154.
  5. ^ A b C Rychle, Ethane; Steffee, Daniel; Wang, Lucy; Brandt, Joel; Bernstein, Michael (2014). Naléhavá praxe programování v davovém měřítku v IDE. Sborník konference SIGCHI o lidských faktorech ve výpočetních systémech. 2491–2500. CiteSeerX  10.1.1.645.4136. doi:10.1145/2556288.2556998. ISBN  9781450324731.
  6. ^ Lieber, Thomas; Miller, Rob (2012). Programování se všemi: zpřísnění zpětnovazební smyčky kopírování, úpravy a publikování. Doplňkový sborník z 25. výročního sympozia ACM o softwaru a technologii uživatelského rozhraní. 101–102. doi:10.1145/2380296.2380342. ISBN  9781450315821.
  7. ^ Shiban, Ala. „Představujeme vyhledávání kódu Bing pro C #“. blogs.msdn.com. Citováno 8. prosince 2014.

externí odkazy