Snippet (programování) - Snippet (programming)

Příklad fragmentu kódu.

Úryvek je programovací termín pro malou oblast opakovaně použitelných zdrojový kód, strojový kód nebo text. Obvykle se jedná o formálně definované operativní jednotky, které se začlení do větších programovací moduly. Správa úryvků je rysem některých textové editory, program editory zdrojových kódů, IDE a související software. Umožňuje uživateli vyhnout se opakovanému psaní během rutinních operací úprav.[1]

[1]Přehled

Správa úryvků je funkce textového editoru oblíbená mezi vývojáři softwaru nebo jinými, kteří běžně vyžadují obsah z katalogu opakovaně zadávaného textu (například s zdrojový kód nebo varná deska ). Tato funkce je často oprávněná, protože obsah se při každém zadání liší jen nepatrně (nebo vůbec).

Fragmenty v textových editorech

Textové editory, které tuto funkci obsahují, obvykle poskytují mechanismus pro správu katalogu a oddělují „úryvky“ stejným způsobem, jakým textový editor a operační systém umožňují správu samostatných souborů. Tyto základní manažerské schopnosti zahrnují operace, jako je prohlížení, přidávání, úpravy, mazání, třídění, filtrování, seskupování, přejmenování a ukládání úryvků v úložiště, katalog nebo databáze. Někteří redaktoři poskytují makroprocesy na úryvky, které umožňují generování prototypů funkcí a proměnných řídicích struktur na základě standardní šablony.

Fragmenty v IDE

Některé programátorské aplikace jako např Zatmění, NetBeans a Microsoft Vizuální studio a další IDE zahrnout vestavěné části struktury pro snadné kódování.

Další aplikace, jako je Macromedia Dreamweaver tyto fragmenty kódu také využijte pro Webový vývoj.

Fragmenty v kompilátorech JIT

Právě včas (JIT ) kompilátoři mohou „spojit dohromady“ předkompilované části kódu déle kód objektu /strojový kód segmenty. To významně snižuje dobu interpretace a současně zrychluje provádění.

Definice

V praxi programování označuje „snippet“ úzce část zdrojového kódu, která je editorským programem doslova zahrnuta do souboru a je formou kopírování a vkládání programování.[2] Toto konkrétní zahrnutí je na rozdíl od abstrakčních metod, jako je např funkce nebo makra, což jsou abstrakce v daném jazyce. Fragmenty se tedy primárně používají, když tyto abstrakce nejsou k dispozici nebo nejsou požadovány, například v jazycích, které nemají abstrakci, nebo kvůli jasnosti a absenci režijních nákladů.

Fragmenty jsou podobné tomu, že v editoru je zahrnuto statické předzpracování, a nevyžadují podporu kompilátoru. Na druhou stranu to znamená, že úryvky nelze po této skutečnosti vždy změnit, a proto jsou zranitelné vůči všem problémům programování kopírování a vkládání. Z tohoto důvodu se úryvky primárně používají pro jednoduché části kódu (s malou logikou) nebo pro základní desku, jako jsou upozornění na autorská práva, prototypy funkcí, společné kontrolní struktury nebo standardní importy knihoven.

Příklad

Zvažte proces výměny hodnot dvou proměnných, X a y. Za předpokladu slabého psaní a bez obav o kolizi názvů to představuje kód:

temp = xx = yy = temp

Po vložení fragmentu se programátor vyzve k zadání hodnot těchto dvou parametrů. Za předpokladu, že jsou typu foo a bar, což jsou skutečné názvy proměnných, které chtějí vyměnit, získá kód:

temp = foofoo = barbar = temp

Pokud se úryvek následně změní, řekněme použít __temp namísto tepl, nezmění kód, který již byl vložen, ale bude použit v následných vloženích fragmentu.

Fragment pro toto může být reprezentován jako:

temp = $ 1 $ 1 = $ 2 $ 2 = temp

Konvence

Kromě základních schopností správy popsaných výše lze funkce správy fragmentů klasifikovat podle rozsahu interaktivity mezi fragmenty a textovým editorem nebo aplikací, která je hostitelem.

Mezi tyto skupiny funkcí úryvků patří:

  • prostý text nebo „statické“ úryvky
  • interaktivní nebo „dynamické“ úryvky
  • skriptovatelné úryvky

Statický úryvky sestávají primárně z fixního textu, který si uživatel může zvolit pro vložení do aktuálního dokumentu. Uživatel není schopen určit nic jiného, ​​kromě polohy kurzoru relativně k nově vloženému textu. Statické úryvky jsou podobné jednoduchým makra.

Dynamický úryvky se skládají z pevného textu kombinovaného s dynamickými prvky. Uživatel může v rámci výběru, co vložit do aktuálního dokumentu, určit jak obsah dynamických prvků, tak jejich polohu vzhledem k pevnému textu. Příklady dynamických prvků mohou být proměnné, jako je aktuální datum nebo systémový čas, nebo vstup od uživatele, který je dodáván prostřednictvím grafického uživatelského rozhraní, nebo vstup z jiné aplikace. (viz také: programovatelné makro ).

Zapisovatelný fragmenty se skládají ze spustitelných segmentů kódu buď v jazyce maker, nebo skriptovací jazyk. Skriptovatelné úryvky poskytují uživateli největší míru flexibility, i když to do jisté míry závisí na programovacích jazycích podporovaných textovým editorem a na tom, zda je programovací jazyk dobře známý nebo konkrétní a jedinečný pro daný konkrétní editor.

Typ podpory skriptování se liší, ale může zahrnovat funkce, jako je spuštění příkazy prostředí, poskytující a Dialog GUI nebo jiné metody interakce uživatele s operačním systémem; další aplikace; nebo jiné dílčí komponenty samotné hostitelské aplikace.

Zástupné symboly fragmentů

Zástupné symboly jsou prvky v rámci fragmentu, které jsou ponechány k dodání uživatelem nebo jiným externím procesem. Hodnoty pro zástupné symboly nejsou určeny, dokud není během úryvku vložen text úryvku.

Zástupné symboly mohou mít speciální syntaxe značek který umožňuje editoru identifikovat hranice zástupných symbolů vzhledem k jinému textu v aktuální editační vyrovnávací paměti.

Jiné aplikace používají grafická uživatelská rozhraní a modální dialogová okna které uživateli umožňují zadat jednu nebo více hodnot, které se zadají pro zástupné symboly.

Identifikátory zástupných symbolů

Zástupné symboly jsou obvykle označeny nějakým speciálním znakem nebo sekvencí znaků, aby se odlišily od zbytku úryvku textu. Některé systémy umožňují pojmenovat zástupné symboly úryvků identifikátory. Identifikátory mohou být užitečné pro podporu takových funkcí, jako je duplikace zástupného symbolu nebo transformace zástupného symbolu.

Následující příklad používá identifikátory jméno, příjmení, a položka:

Ahoj {%jméno%}{%příjmení%},Vaše zásilka {%položka%} je nyní připraven vyzvednout.dík {%jméno%}!

Duplikování zástupných symbolů

To umožňuje uživateli označit, že hodnota zadaná pro jeden zástupný symbol by měla být replikována na více místech, relativně k celému textu programovatelného fragmentu. V předchozím příkladu pojmenovaný zástupný symbol jméno je příkladem tohoto použití.

Zástupná transformace

To umožňuje uživateli označit, že jedna nebo více hodnot zadaných pro zástupný symbol by měla být replikována a transformována na jiných místech v textu programovatelného fragmentu. Uživatel může například zadat nadpis dokumentu v jedné části fragmentu a určit, že nadpis dokumentu by se měl opakovat na jiných místech, přičemž první instance bude velká a každá druhá instance bude malá.

Funkce programování úryvků

Pro aplikace, které podporují skriptovatelný úryvky, rozsah podporovaných funkcí programování se liší. Následuje výčet některých funkcí, které jsou běžně implementovány pro programovatelné úryvky.

Prostý text

Přestože je prostý text základní funkcí obsaženou i v aplikacích, které podporují pouze neprogramovatelné „statické“ úryvky, programovatelné úryvky se také používají pro práci s prostým textem.

Jednou z běžných komplikací však je, že prostředí, která podporují programovatelné úryvky, musí často rozlišovat mezi tím, co se počítá jako „prostý text“, a tím, co se počítá jako „programovací pokyny“. Dále komplikuje toto rozlišení skutečnost, že aplikace, které podporují programovatelné úryvky, téměř vždy obsahují podporu pro rozpoznávání více programovacích jazyků, ať už prostřednictvím základních zvýraznění syntaxe nebo provádění vložených příkazů.

Z těchto a dalších důvodů vyzařování prostého textu z programovatelných úryvků téměř vždy vyžaduje opatrnost, aby se předešlo problémům s syntax a srážky oddělovače.

Konstanty a proměnné

Programovatelné úryvky často zahrnují schopnost navázat vazbu na existující variabilní rozsah nebo obor názvů, ze kterého si uživatel může vybrat kteroukoli z různých konstant nebo proměnných. Mohou zahrnovat hodnoty, jako je e-mailová adresa aktuálně přihlášeného uživatele na daném počítači, aktuální systémový čas a datum nebo výstupní hodnota funkce.

Skriptovatelné úryvky jsou často spojeny s jedním nebo více aktuálně aktivními soubory. V důsledku toho mohou proměnné také zahrnovat proměnné prostředí a argumenty určující název souboru, pozici kurzoru a nadřazený adresář mimo jiné statistiky týkající se souborů v aktuální relaci úprav.

Interpretovaný kód

Skriptovatelné úryvky mohou umožnit spuštění kódu v jednom nebo více programovací jazyky. To může zahrnovat jeden nebo více samostatných jazyků nebo jazyk, který je specifický pro aplikaci, ve které je jazyk hostován.

Alternativy

Nejzákladnější alternativou k fragmentům kódu je podprogramy. Subrutiny mohou být začleněny do opakovaně použitelných softwarová knihovna a sdílené mezi více programovacích projektů.

Designové vzory v objektově orientovaném programování a Funkcionální programování, jsou obě techniky, které mohou programátorům umožnit vyhnout se nebo omezit praxi opakovaného vkládání úryvků do různých částí kódu s mírnými variacemi pokaždé. V jazycích v C rodina, preprocesory se pro tento účel někdy používají.

Viz také

Reference

  1. ^ A b „Gedit / Pluginy / Fragmenty“. Archivovány od originál dne 2012-08-25. Citováno 2010-01-09. Příklad funkce v editoru Gedit.
  2. ^ Kim, Miryung; Bergman, Lawrence; Lau, Tessa; Notkin, David (2004). „Etnografická studie postupů programování kopírování a vkládání v OOPL“ (PDF). Sborník: Mezinárodní symposium o empirickém softwarovém inženýrství z roku 2004, ISESE 2004: 19. – 20. Srpna 2004, Redondo Beach, Kalifornie. Los Alamitos, CA: IEEE. 83–92. ISBN  978-0-7695-2165-7. OCLC  326620442. U každé instance C&P jsme si také všimli vztahu mezi zkopírovaným fragmentem kódu a kódem jinde v základně kódu.

Příklady úryvků kódu