yaml
Używanie kotwic i aliasów do treści zamkniętych
Szukaj…
Tworzenie tabeli „Array of Dictionaries” z kotwicami YAML jako identyfikatorami wierszy
---
person_table:
- &person001
fname: homer
lname: simpson
role: dad
age: 33
- &person002
fname: marge
lname: simpson
role: mom
age: 34
- &person003
fname: peter
lname: griffin
role: dad
age: 34
Problem
- deweloper chce wyrazić strukturę tabeli w YAML, w której do każdego wiersza odwołuje się zwarty identyfikator wiersza
Rozwiązanie
- użyj kotwic YAML, przypisując identyfikator kotwicy do każdego wiersza w tabeli
- w YAML „identyfikatory transkluzji” wielokrotnego użytku nazywane są kotwicami i aliasami
- w YAML „identyfikatory transkluzji” wielokrotnego użytku składają się z tokenów alfanumerycznych poprzedzonych znakiem ampersand lub gwiazdką
Racjonalne uzasadnienie
- Kotwice i aliasy YAML pozwalają na większą normalizację danych
- Kotwice i aliasy YAML wymuszają
DRY(nie powtarzaj się) - w tym przykładzie można zaprojektować i zachować strukturę tabeli, która ściśle pokrywa się z bazą danych
Pułapki
- Kotwice YAML muszą zostać zadeklarowane, zanim będzie można do nich odwoływać się poprzez aliasy
- Kotwice YAML muszą być unikalne w całym dokumencie
- brak określenia unikalnych kotwic spowoduje błąd w
yaml.load() - nie wszystkie parsery YAML niezawodnie obsługują kotwice i aliasy
Zobacz też
Używanie aliasów YAML do odsyłaczy do wierszy z tabeli YAML
---
person_table:
- &person001
fname: homer
lname: simpson
role: dad
age: 33
- &person002
fname: marge
lname: simpson
role: mom
age: 34
- &person003
fname: peter
lname: griffin
role: dad
age: 34
motto_table:
- &motto001
person: *person001
motto: >
D'oh!! YAML is too complicated!
- &motto002
person: *person002
motto: >
Bart! Listen to your father!
- &motto003
person: *person003
motto: >
Hey! YAML is freakin' sweet!
Problem
- deweloper chce odsyłać wiersze z kotwicami z jednej tabeli i łączyć się z nimi za pomocą wierszy jako aliasów w innej tabeli
Rozwiązanie
- użyj aliasów YAML, które odsyłają do wstępnie zdefiniowanych kotwic z innej tabeli
- w YAML „identyfikatory transkluzji” wielokrotnego użytku nazywane są kotwicami i aliasami
- w YAML „identyfikatory transkluzji” wielokrotnego użytku składają się z tokenów alfanumerycznych poprzedzonych znakiem ampersand lub gwiazdką
Racjonalne uzasadnienie
- Kotwice i aliasy YAML pozwalają na większą normalizację danych
- Kotwice i aliasy YAML wymuszają
DRY(nie powtarzaj się) - w tym przykładzie można zaprojektować i zachować strukturę tabeli, która ściśle pokrywa się z bazą danych
- w tym przykładzie wielkość danych i wielkość plików można zmniejszyć
Pułapki
- w tym konkretnym przykładzie
yaml.load()utworzy zagnieżdżone słowniki- jest to określane jako „problem zagnieżdżonych słowników”
- pod parą nazwa-wartość osoby wartością dla osoby będzie pod-słownik
- może to być niepożądane, ponieważ narusza jednolitość struktury tabeli
- nieprawidłowe określenie aliasów spowoduje brak danych
- (literówki utworzą zepsute odsyłacze)
- YAML nie obsługuje zamiany plików przez odniesienie, więc wszystkie aliasy i kotwice muszą istnieć w tym samym pliku yaml
- nie wszystkie parsery YAML niezawodnie obsługują kotwice i aliasy
Zobacz też
Używanie kluczy scalających YAML do odsyłania wierszy z innej tabeli YAML
---
person_table:
- &person001
fname: homer
lname: simpson
role: dad
age: 33
- &person002
fname: marge
lname: simpson
role: mom
age: 34
- &person003
fname: peter
lname: griffin
role: dad
age: 34
motto_table:
- &motto001
<<: *person001
motto: >
D'oh!! YAML is too complicated!
- &motto002
<<: *person002
motto: >
Bart! Listen to your father!
- &motto003
<<: *person003
motto: >
Hey! YAML is freakin' sweet!
Problem
- deweloper chce odsyłać wiersze z kotwicami z jednej tabeli i łączyć się z nimi za pomocą wierszy jako aliasów w innej tabeli
- programista chce uniknąć tworzenia „problemu zagnieżdżonych słowników”
Rozwiązanie
- użyj aliasów YAML z kluczami scalania YAML
- w YAML „identyfikatory transkluzji” wielokrotnego użytku nazywane są kotwicami i aliasami
- w YAML „identyfikatory transkluzji” wielokrotnego użytku składają się z tokenów alfanumerycznych poprzedzonych znakiem ampersand lub gwiazdką
Racjonalne uzasadnienie
- Kotwice i aliasy YAML pozwalają na większą normalizację danych
- Kotwice i aliasy YAML wymuszają
DRY(nie powtarzaj się) - w tym przykładzie można zaprojektować i zachować strukturę tabeli, która ściśle pokrywa się z bazą danych
- w tym przykładzie wielkość danych i wielkość plików można zmniejszyć
Pułapki
- w tym konkretnym przykładzie
yaml.load()utworzy zagnieżdżone słowniki- pod parą nazwa-wartość osoby wartością dla osoby będzie pod-słownik
- może to być niepożądane, ponieważ narusza jednolitość struktury tabeli
- nieprawidłowe określenie aliasów spowoduje brak danych
- (literówki utworzą zepsute odsyłacze)
- YAML nie obsługuje zamiany plików przez odniesienie, więc wszystkie aliasy i kotwice muszą istnieć w tym samym pliku yaml
- nie wszystkie parsery YAML niezawodnie obsługują kotwice i aliasy
Zobacz też
Modified text is an extract of the original Stack Overflow Documentation
Licencjonowany na podstawie CC BY-SA 3.0
Nie związany z Stack Overflow