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é
- Vznik
- Seznam témat interakce člověka s počítačem
- Uživatelská zkušenost
- Návrh uživatelského zážitku
- Použitelnost webu
- Crowdsourcing
Reference
- ^ 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.
- ^ 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.
- ^ 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.
- ^ 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.
- ^ 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.
- ^ 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.
- ^ Shiban, Ala. „Představujeme vyhledávání kódu Bing pro C #“. blogs.msdn.com. Citováno 8. prosince 2014.