Přejít k navigační liště

Zdroják » Webdesign » YAML: Serializační formát pro ukládání dat

YAML: Serializační formát pro ukládání dat

Články Webdesign

Aplikace často potřebují ukládat a načítat různé údaje – nastavení, nejrůznější seznamy, data ke zpracování či další informace. Nejjednodušší je prostý zápis do datového souboru. Otázkou však zůstává: Jaký formát zvolit? Představíme si jeden z méně známých, ale přesto poměrně dobře standardizovaných formátů.

YAML (YAML Ain’t Markup Language – neplést s CSS frameworkem se stejným jménem) je formát pro serializaci dat textových souborů. Pokud potřebujeme v aplikaci načíst nebo uložit některá strukturovaná data, máme na výběr širokou škálu možností. Na jedné straně můžeme zvolit záznam interní reprezentace dat (binární formát), na druhé straně můžeme použít čistě textový formát. Každé z těchto řešení má svá pro i proti: Binární formát se ukládá i načítá většinou nejrychleji a většinou zabere nejméně místa. Není však obvykle zpracovatelný mimo aplikaci bez použití speciálních editorů. Textový formát zase zabere víc místa, jeho výhodou je ale to, že jej lze zpracovat i obyčejným textovým editorem.

Textové formáty pro ukládání dat mohou být různě čitelné. Když se podíváme např. na data, serializovaná pomocí PHP funkce „serialize“, nejsou příliš srozumitelná. Editovat takový soubor obyčejným editorem je pak téměř nemožné. Na druhé straně je např. formát XML, který lze relativně snadno číst i zapisovat, a lze jej i poměrně bezpečně editovat textovým editorem. Na druhou stranu úprava XML souboru vyžaduje poměrně slušné znalosti jeho syntaxe, a jeho zpracování v aplikaci není úplně triviální. Někde uprostřed co do složitosti editace a zpracování stojí jednoduché formáty typu formátu INI souborů.

Před několika lety se zdálo, že XML bude univerzálním formátem pro ukládání dat v textové podobě. XML je však pro velkou část aplikací příliš mocné, dalo by se říct že je „kanónem na vrabce“, navíc je plné využití všech jeho vlastností poměrně náročné. Jako reakce na tento stav přišlo POX (Plain Old XML) – tedy v podstatě XML bez jmenných prostorů, šablon, DTD a dalších vymožeností, kdy se z celého mohutného aparátu používají pouze elementy a atributy.

Podobnou cestou se vydali i tvůrci formátu YAML. YAML je formát, který nabízí jednoduchost INI souboru bez složitých konstrukcí (tagy, uzavírání elementů, escapování znaků), a zároveň je schopen vyjádřit v čistém textu i složitější konstrukce (struktury, pole). Syntaxe YAML bude připadat povědomá všem, kdo se setkali se syntaxí wiki systémů či nástrojů jako Texy! a Textile.

S YAML se můžeme setkat stále častěji, důvěrně známý bude pravděpodobně vývojářům, kteří používají Ruby, ale knihovny pro zpracování YAML souborů existují téměř pro každý používaný jazyk. Pojďme si představit základní prvky, které lze v YAML zapsat.

Sekvence

Nejjednodušším YAML prvkem je prostý seznam údajů, v YAML nazývaný sekvence. Zapsat ji lze jednoduše – vezměme si jako příklad seznam knih:

- Mistrovství v PHP5
- Zpracování XML souborů v PHP
- Harry Potter a zpracování XML souborů v PHP

Pokud tento soubor načteme, můžeme si vypsat jednotlivé prvky jako prvky pole. Např. print $knihy[0] vypíše „Mistrovství v PHP5“.

Sekvence může obsahovat libovolný formát dat:

- 5 # číslo
- 5.0 # desetinné číslo
- pět # řetězec
- 31.12.2008 # datum
- !!float 26 # desetinné číslo 26.0 (implicitně přetypováno)
- !!str 26 # řetězec "26" (implicitně přetypováno)

Důležité na sekvenci je to, že zachovává pořadí, v němž jsou data zapsána.

Znak dvojkřížku (#) s předcházející mezerou označuje, jak je pravděpodobně jasné, komentář.

Mapa

YAML umožňuje zapsat to, co známe z jiných jazyků jako „asociativní pole“ (či „slovník“) – tedy dvojice „klíč:hodnota“, kde klíč je unikátní údaj, který identifikuje konkrétní záznam. Například můžeme výše zmíněný seznam doplnit o autory:

Gutmans: Mistrovství v PHP5
Kosek: Zpracování XML souborů v PHP
Grudl: Harry Potter a zpracování XML souborů v PHP

Přístup k záznamům je přesně takový, jaký bychom očekávali: print $knihy['Kosek']. V terminologii YAML je takovýto typ záznamů nazývaný „mapa“. Za dvojtečkou, která odděluje klíč od hodnoty, musí být vždy mezera.

Dokumenty

Jeden YAML soubor může obsahovat víc logických celků, nazývaných „dokumenty“. Dokumenty jsou odděleny pomocí tří spojovníků (—) na samostatném řádku.

---
kniha: Mistrovství v PHP5
autor: Gutmans
cena: 500
---
kniha: XML a PHP
autor: Kosek
cena: 290

Pokud jsou data posílána komunikačním kanálem, lze pomocí tří teček (…) na samostatném řádku naznačit konec záznamu, aniž by byl otevřen nový záznam pomocí „—“ nebo zavřen komunikační kanál.

YAML soubory často začínají jakýmsi „záhlavím“ ve tvaru:

--- # Seznam knih

Složená data

Pomocí výše představených konstrukcí lze snadno zapsat i složitější datové struktury:

- datum: 10.10.2009
- čtenáři:
  WebExpo 2009: 1164
  Použijte SAX: 2316
  "YAML: Nový formát": 6942

Jde o seznam se dvěma položkami. První je asociativní pole („mapa“) s klíčem „datum“ a hodnotou 10.10.2009. Druhá položka seznamu je opět asociativní pole s klíčem „čtenáři“. Hodnotou je další pole, v němž jsou názvy článků a počty čtenářů (fiktivní, samosebou). Poslední klíč obsahuje dvojtečku, je proto uzavřen do uvozovek.

Je vidět, že struktura pro vnořená data se označuje, podobně jako v Pythonu, pomocí odsazení. print $clanky['čtenáři']['WebExpo 2009'] by mělo vypsat 1164.

Sekvence sekvencí

Představme si seznam zeleniny:

-
  - Paprika červená
  - Paprika zelená
  - Paprika žlutá
- Česnek čínský
- Cibule

První řádek je „položka sekvence bez hodnoty“ – označuje, že bude následovat odsazený vnořený seznam. Jednotlivé prvky výše zmíněného souboru vypíšeme takto:

print $zelenina[0][0];

print $zelenina[0][1];

print $zelenina[0][2];

print $zelenina[1];

print $zelenina[2];

Texty

vzkaz: >
  Vážený pane,
  váš článek mě velmi zaujal a rád bych jej vydal na Zdrojáku.
  Budu rád, pokud mi jej dodáte ve formátu HTML.
  S pozdravem 

  Martin Malý

Na výše zmíněném příkladu je dobře vidět snadnost syntaxe YAML. Jde opět o mapu, kde klíčem je „vzkaz“, a hodnotou je text. Operátor „>“ naznačuje, že následuje odsazený text, který tvoří jeden odstavec. YAML parser spojí všechny řádky, které následují po tomto operátoru a jsou odsazené, do jednoho souvislého textu (samosebou odstraní přebytečné mezery). Prázdný řádek vyhodnotí jako konec odstavce. Výše uvedený příklad bude tedy načten jako dva odstavce textu.

Místo operátoru „>“ můžeme použít operátor „|“. Rozdíl je v tom, že odsazené řádky budou pak vyhodnoceny jako oddělené odstavce – co řádek, to odstavec.

Keep a chomp

Výše popsané operátory lze zkombinovat s operátory „keep“ (+) a „chomp“ (-). Nejjednodušší na vysvětlení bude názorná ukázka:

Normální: |
  Záznam s jedním znakem NEWLINE 

Keep: |+
  Záznam se třemi znaky NEWLINE

Chomp: |-
  Záznam bez NEWLINE

...

Prostý operátor „|“ ponechá na konci textu znak „nový řádek“, ale prázdné řádky vynechá. Operátor se znakem keep (|+) ponechá všechny konce řádků tak jak jsou, až do začátku dalšího záznamu. Operátor s ořezáním (|-) odstraní poslední znak konce řádku.

Zjednodušený zápis sekvencí a map

Pro sekvence, složené z nemnoha jednoduchých dat, lze použít zjednodušený zápis. Například:

čísla:
 - 7
 - 11
 - 14
 - 21
 - 22
 - 37

 lze zapsat jako:

čísla: [7, 11, 14, 21, 22, 37]

Obdobně lze zapsat i mapy – místo hranatých závorek použijeme složené:

čísla: {první: 7, druhé: 11, třetí: 14, čtvrté: 21, páté: 22, šesté: 37}

Závěr

YAML je mnohem mocnější formát, než by se mohlo z tohoto stručného popisu zdát. Umožňuje vytvářet mnohem složitější struktury pomocí aliasů (operátory & a *), umožňuje vložit binární data (např. obrázky – v kódování BASE64), umožňuje spojovat údaje z různých dokumentů nebo nastavovat defaultní hodnoty.

Formát YAML dovoluje zapsat strukturovaná data, podobně jako XML, s menší režií a s vyšší uživatelskou přívětivostí, než má zápis v XML. Autoři jej označují jako „serializační formát“, tedy formát pro zápis strukturovaných dat v podobě textového souboru. Účel je obdobný jako např. u formátu JSON či u PHP funkcí serialize() a unserialize(). Jeho výhodou je však snazší čitelnost, větší vyjadřovací schopnosti a možnost snadné ruční editace.

Užitečné odkazy:

Komentáře

Subscribe
Upozornit na
guest
46 Komentářů
Nejstarší
Nejnovější Most Voted
Inline Feedbacks
View all comments
wayan

Používáme ve firmě konfiguráky v YAMLu a pomalu pro něj ztrácím sympatie. Většinou i mírně zanořenou strukturu si musím nejdřív napsat v Perlu a do YAMLu konvertovat přes YAML::Dump, abych se nesekl s odsazením.

U JSONu alespoň díky složeným a hranatým závorkám člověk vidí, kde mu jaká struktura začíná a končí.

Kit

Možná by nebylo špatné si v editoru zapnout autoindent.

fous

kapitola slozena data

…položka seznamu je opět asociativní pole s klíčem „články“.

opravdu clanky???

nikdo

asi spíš „čtenáři“ :)

Zuzka

Vrrr, vrrr, ještě více textových formátů! Ach, až každý bude mít alespoň pět vlastních formátů, to bude doba.

Bože bože… Kdo nic neumí, vymyslí vlastní „jazyk“.

nikdo

A kdo neumí ani to, vrrrčí v diskuzích :)

Inkvizitor

V době, kdy YAML vznikal, jsi pravděpodobně chodila ještě do školky. ;-)

Zuzka

By ses divil.

Je to směšné. Každého pseudoprogramátora jednou za čas popadne jakési zvláštní vnitřní puzení, vezme si existující formát nebo jazyk a dá se do díla. Tady jsou závorky normální, řekne si, tak tam dáme složené. Nebo dvojtečky? Jo, dvojtečy budou nejlepšejší, jsou tak půvabné. Tady jsou zas hvězdičky, tak místo nich dáme stříšky, místo uvozovek použijeme dvě nebo tři mezery, och, to bude _tak_ krásné!

A „nový“ bezvýznamný jazyk nebo formát je na světě.

Ještě se k tomu napíše spousta blábolů, že jako ty hvězdičky fakt už nejsou cool, zato stříšky, a že to zabere méně/více místa, což sice nikoho nezajímá, a že je to teď mnohem srozumitelnější (pro autora snad), je to jedinečné, autor je jedinečný, mistr světa amoleta.

Inkvizitor

Odlišná syntaxe není zase takový problém, ale někdy ty zvláštnosti opravdu vypadají, že jsou samoúčelné. Nepochopil jsem třeba, proč TCL vypadá, jak vypadá, ale ani jsem po tom nijak nepátral. Jinak jsem rád, že vznikají nové jazyky, pokud ovšem přinášejí nějaké výhody.

Ne vždy tomu tak ale je. U formátů to je menší problém, ty jsou obyčejně jednoduché a málokdy je člověk používá přímo. YAML mi přijde v některých případech velice výhodný a elegantní. Je starší než JSON a podle všeho i univerzálnější. Takže moc nechápu, proč Ti vadí zrovna tenhle formát.

pr.rybar

Zizka je iste blond a este navyse kratkozraka :)
Ona ani netusi aky je YAML skvely format a vobec netusi aky je jeho ciel a to nehovorim ze netusi ako sa lisi od XML a ze JSON je podmnozinou YAML.

Tak Zuzka, ulozit hracky a spat!

Culibrk

No.. Netiketa nic, ze. A k zene uz vubec ne, ze. Jenze tohle, pane dospely, asi nejste schopen pripustit, ze. Povozit se na foru po nekom, kdo mi nevidi do karet (a vysledku at uz v praci nebo ve skole) je TAK jednoduche. Tak proc to neudelat, ze. :-P

Alenka

Netiketa je aj registrovat sa. Ste si isty, ze zuzka je naozaj ONA?
Zuska robi hanbu vsetkym nam zenam! Distancujeme sa od nej.

Me

řekla „Alenka (neregistrovaný)“

Mirek

Hm, byl bych docela pro všeobecný světový zákaz bílých znaků pro účely strukturování dat.

Jiří Kosek

A znáte programovací jazyk Whitespace? Je perfektní, akorát se zdrojáky po vytištění špatně čtou ;-)

nikdo

Zato šetříte toner/inkoust/jeh­ličky :)

Mirek

.. pro účely strukturování dat … nikoli vizuální podoby kódu nebo zápisu. Myslím to zkrátka tak, že bílé znaky by neměly mít žádný význam pro strojové zpracování. Jakmile někde záleží na tom, jestli je tam mezera, nebo odsazení, tak je to je pro zlost.

paranoiq

a co by na to řekli chudáci krajtisti?!

Inkvizitor

Nejenom „krajtisti“, jazyků se sémanticky významným odsazením je více. Nejde jenom o potomky Pythonu (Boo, Cobra…), ale třeba i o Haskell. U Haskellu to odsazování nedělá problémy prakticky vůbec, protože nemá třídy (v OOP slova smyslu) a funkce v něm napsané nemají tendenci lézt 5 úrovní doprava, jak mají ve zvyku nedisciplinovaní uživatelé imperativních jazyků.

AlYOSHA

Sudruhovia ktory este nemate vlastny format, prihlaste sa u sudruha Žinčicu!

Kit

Zkouším teď podobný formát HAML. Spíše než na výměnu dat se hodí na rychlé vytváření HTML, CSS a XML souborů. XSL zvládá také, i když je to trochu kostrbatější.

theninja

haml neni serializacni format. haml je template engine v ruby. Na vymenu dat se hodi asi tolik, jako hrabe na kaceni stromu. Nevim tedy v cem je podobny, nicmene je zajimavy.

Jakub D.

Clanek jsem s usmevem proletl. Vskutku, na XML to nema:

1) Syntax XML je podobna (X)HTML, ktere dnes umi kazdy. Neni treba se ucit neco noveho.
2) XML je samovysvetlujici, z nazvu elementu/atributu lze pochopit spoustu veci bez nutnosti cteni dokumentace.
3) V XML jsou chyby syntaxe snadno viditelne. Spatne ukonceny tag vam nahlasi kde jaky editor, navic jsou jasne vztahy rodic – potomek v prehledne stromove strukture.
4) XML parseru je plno pro ruzne jazyky.
5) S XML se poji uzasne technologie jako XSLT nebo XPath, ktere davaji informacim, obsazenym v XML, kridla :-))

Kit

XML je pro výměnu dat asi nejvhodnější. Vadí mi na něm však, že je trochu víc ukecaný, než by mi bylo milé.

Ohledně čitelnosti je to podle mne sporné. Pokud jsou data v kratších řetězcích než jsou názvy značek a atributů, čitelnost klesá. Proto vznikají alternativní jazyky. Pro zápis většího množství dat ve formátu YAML (a podobných) je potřeba používat outline editory.

Tvůrci alternativních jazyků by si však měli uvědomit, že bez funkčního obousměrného konvertoru do/z jazyka XML má jejich jazyk jen omezené uplatnění. Každý ať si vytváří a ukládá svá data v čem chce, ale vnější rozhraní XML bych v dnešní době bral jako dogma.

pr.rybar

1) To snad nemyslite vazne. Viete aky je rozdiel medzi XML a HTML?

2) Myslite? Tak mi prosim popiste co je ulozene v tomto XML:

<?xml version=‚1.0‘ encoding=‚UTF-8‘?>
<pl><t><c>Jim­bo</c><ttl>12-i_huvet_på_en_gr­is</ttl><l>12-i_huvet_på_en_gr­is.mp3</l></t>­</pl>

v YAML by to vyzeralo takto:

---
playlist:
   - creator: Jimbo
     title: 12-i_huvet_på_en_gris
     location: 12-i_huvet_på_en_gris.mp3

YAML mi umoznuje dokonca mat v jednom subore viac dokumentov, co v XML nejde. Viacero dokumentov je vyhoda, ak chcete serializovat dokumenty a tlacit ich do streamu a naopak.

3) V YAML jsou chyby syntaxe snadno viditelne. YAML nema ukoncovacie tagy, ved naco. V YAML su vztahy rodic – potomok v prehlednej stromovej strukture.

4) parser !== serializator; chapete?

5) XSLT alebo XPath nemaju kridla, asi ste s nimi nikdy nerobili (minimalne nic poriadne), ked neviete ake su pomale :(

fos4

Tvuj priklad je nesmyslny, nebot pouzivas uplne jine pojmenovani, XML by spravne vypadalo takto:

<playlist>
<node>
<creator>Jim bo</creator>
<title>12-i_huvet_på_en_gr is</title>
<location>12-i_huvet_på_en_gr is.mp3</location>
</node>
</playlist>

Ve firme pouzivame XML + XSLT a YAML. Kazde pro neco jineho, YAML pro tvoreni SQL dotazu a XML pro sablony. Neumim si predstavit ze bych v XML psal SQL dotazy stejne tak i ze bych mel pomoci YAMLU nejak tvorit sablony, kazde ma svoje plus a kazde svoje minus.

K tomu XSLT jeste, pokud mas dobre napsanou sablonu a vyuzivas klicovani, neprojizdis vse pomoci „//“ tak s rychlosti nebudes mit problem.

pr.rybar

To nic nemeni na tom, ze

---
playlist:
   - creator: Jimbo
     title: 12-i_huvet_på_en_gris
     location: 12-i_huvet_på_en_gris.mp3

je omnoho citatelnejsi ako

<playlist>
<node>
<creator>Jim bo</creator>
<title>12-i_huvet_på_en_gr is</title>
<location>12-i_huvet_på_en_gr is.mp3</location>
</node>
</playlist>

Co sa tyka velkosti:
XML: 7 riadkov 176 znakov
YAML: 5 riadkov 111 znakov

Co sa tyka pouzitia, tak to uz padlo viac krat; YAML je seerializacny format a XML ako taky nim nie je. Naucme sa vnimat detaily.

fos4

Myslim ze pocet radku a znaku je irelevatni. XML muze byt na jednom radku, YAML v zadnem pripade. Pri vetsi stromove strukture tak bude v YAMLU mnohem vice bilych znaku nez XML znacek – takze toto cele porovnani na prikladu s jednou mptrojkou je zbytecne.

A co se tyka prehlednosti radeji si otevru velke XMLko nez velky YAML – ale asi je to vec nazoru.

pr.rybar

> Myslim ze pocet radku a znaku je irelevatni.

Nie, pokial bude XML formatovane.

To co v tejto diskusii nevedia ludia pochopit (zasa to zopakujem) je:

1) YAML je serializacny format a XML nie.
2) YAML ma podporu pre viacero dokumentov, co mu dava silu pri streamovom spracovani a XML nie.
3) YAML je human readable, zatial co XML sa teda moc dobre necita (hoci sa tiez povazuje za human readable)

Co neviem pochopit je, co sa vlastne ludom na YAML nepaci. Tie biele znaky? Keby som mal data zapisat rukou na papier, asi sa to bude podobat YAMLu a nie XML (a taky format povazujem navyse aj za human writable).

fos4

Nechapu proc tu resite velikost XML – YAML. Pokud napisu do YAMLU 100 novych radku bude vysledek stejny, stejne tak pokud bude XML na jednom radku.

Z vasich reakci usuzuji ze mate odpor proti XML.

pr.rybar

Bingo!

Cize ako sam vravite velkost je o tom istom, akurat YAML ma v par veciach navrch.
Ano, nepovazujem XML za serializacny format, lebo nim nie je. A neuznavam programovamie v XML.
Nemam odpor k XML. Mam odpor k „IT odbornikom“, ktori honoruju XML na nieco, cim vobec nie je.

fos4

Rikate ze YAML ma v par vecech navrch (tim asi myslite vice dokumentu v jednom souboru a human-rw) ale uz jen princip srovnavat XML a YAML je spatny (mimo jine XML ma namespace, validaci a dalsi veci ktere u YAMLu nejsou mozne). YAML je serializovany object, XML nikoli (nikdo tu netvrdil opak). Proto srovnavat a tvrdit ze jedno je lepsi nez druhe je nesmyslne.

pr.rybar

Suhlasim, ale clanok je o serializacii, tak vysvetlite diskutujucim, ze XML tu nema co hladat.
Teda z hladiska serializacie dat stale plati ze YAML ma navrch.

omo

cca posledni rok pouzivam format YAML kde se da, jak pro konfiguracni soubory, tak pro serializaci dat.

Pri letmem pohledu na priklad YAMLu okamzite intuitivne vim, co se jak a proc pouziva, konstrukce tohoto formatu jsou krasne logicke a de facto samopopisne.

Casto s nadsazkou pouzivam takovy bonmot: yaml je format, ktery jsem pouzival jiz davno pred objevenim jeho specifikace, napr. pri sepisovani seznamu na nakup ;)

pravdokop

… JSON, případně LUA-script.

Kit

Na JSONu mi chybí převodník do XML – alespoň jsem nic vhodného nenašel. Také čitelnost YAMLu se mi zdá o něco lepší.

pravdokop

To je zajímavé. Řekl bych, že prográmek na převod z XML do JSON a naopak by měl být triviální úlohou pro začínajícího studenta informatiky. Zatím jsem jej ale nepotřeboval, v nehorším si jej napíši :-).
Na JSONu se mi hlavně líbí nativnost použití v JavaScriptu, kde využívám „odonož“ zvanou JSONP (JSON with padding).

wayan

Jak YAML, tak JSON jsou určeny pro serializaci obecných „nativních“ dat, t.j. polí a hashů (záznamů, či jak tomu kdo říká). Serializační a deserializační funkce (JSON::encode, YAML::Dump, …) jsou přímo součástí příslušných knihoven – bez nich by to nemělo smysl.

U XML nic takového (alespoň já) nemám. Abych strukturu složenou z polí a hashů serializoval do XML, potřebuju k tomu další jazyk – nějakou normu, která mi řekne jak se bude jmenovat element do kterého se serializuje pole, jak element do kterého se serializuje hash…

Zná někdo takovou obecně přijímanou normu?

pr.rybar

Konecne nazor niekoho, kto rozumie teme. Presne to iste som chcel napisat. Pani, ktori sa tu zapajaju do diskusie, nemaju ani len ponatia o rozdiele medzi XML a YAML/JSON.

Mam taky pocit ze Zdrojak spravili pre looserov, ktori sa na root.cz citili menejcenni koli neschopnosti uvazovat.
Asi prestanem Zdrojak navstevovat. Nemam rad bulvar. :(

pravdokop

Faktický přínos Vašeho příspěvku: Nula čili nic. Jen jsme se dozvěděli, že tu nikdo nemá ponětí o tématu.

Jak XML tak YAML tak i JSON a také třeba LUA a jiné formáty se dají využít jak pro přenos tak pro uložení strukturovaných dat. V tomto smyslu jsou plně záměnné. Vybrat nejvhodnější formát je otázkou širšího kontextu, ve kterém se data budou využívat (včetně srozumitelnosti pro lidi). O tom je zdejší debata, pokud jste to nepochopil.

pr.rybar

Presne o Vas som pisal. Trafena hus zagagala. :)
wayan to napisal presne, staci to pochopit.

http://en.wikipedia.org/wiki/XML
XML (Extensible Markup Language) is a set of rules for encoding documents electronically.

http://en.wikipedia.org/wiki/YAML
YAML (pronounced /ˈjæməl/, rhymes with camel) is a human-readable data serialization format that takes concepts from programming languages such as C, Perl, and Python, and ideas from XML and the data format of electronic mail (RFC 2822)

Dokazete pochopit ten rozdiel?
„set of rules for encoding documents“ versus „data serialization format“

stej

Ano, díky (bez ironie). O YAML jsem ještě nikdy neslyšel, tedy jsem se rád dozvěděl něco nového.

ld

diky.
ps: opravte si to „implicitne“ na „explicitne“ a bude to dokonaly.

Me

proč je u paprik vnořené pole s pomlčkami, a u čtenářů s mezerami? :-O

peter

papriky su vnoreny zoznam/list a čtenáři je vnoreny slovnik/dictionary

Enum a statická analýza kódu

Mám jednu univerzální radu pro začínající programátorty. V učení sice neexistují rychlé zkratky, ovšem tuhle radu můžete snadno začít používat a zrychlit tak tempo učení. Tou tajemnou ingrediencí je statická analýza kódu. Ukážeme si to na příkladu enum.