Ricerca…


Creazione di una tabella "Array of Dizionari" con ancore YAML come identificatori di riga

    ---
    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

Problema

  • lo sviluppatore desidera esprimere una struttura di tabella in YAML, dove ogni riga è referenziata da un identificatore di riga compatto

Soluzione

  • utilizzare gli ancoraggi YAML, assegnando un identificatore di ancoraggio a ciascuna riga nella tabella
  • in YAML, gli "identificatori di transclusione" riutilizzabili sono chiamati ancore e alias
  • in YAML, gli "identificatori di transclusione" riutilizzabili sono costituiti da token alfanumerici preceduti da una e commerciale o da un asterisco

Fondamento logico

  • Ancoraggi e alias YAML consentono una maggiore normalizzazione dei dati
  • Ancoraggi e alias YAML impongono DRY (Non ripeterti)
  • in questo esempio, è possibile progettare e conservare una struttura di tabelle che coincide strettamente con un database

insidie

  • Gli ancoraggi YAML devono essere dichiarati prima di poter essere referenziati tramite alias
  • Le ancore YAML devono essere uniche in tutto il documento
  • la mancata specificazione di ancoraggi unici causerà un errore su yaml.load()
  • non tutti i parser YAML supportano in modo affidabile ancore e alias

Guarda anche

Stackoverflow YAML

Utilizzo di alias YAML per il riferimento incrociato di righe da una tabella 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!

Problema

  • lo sviluppatore desidera fare il riferimento incrociato di righe-con-ancore da una tabella e collegarsi a esse con alias di righe in un'altra tabella

Soluzione

  • usa gli alias YAML, che fissano le ancore predefinite da un'altra tabella
  • in YAML, gli "identificatori di transclusione" riutilizzabili sono chiamati ancore e alias
  • in YAML, gli "identificatori di transclusione" riutilizzabili sono costituiti da token alfanumerici preceduti da una e commerciale o da un asterisco

Fondamento logico

  • Ancoraggi e alias YAML consentono una maggiore normalizzazione dei dati
  • Ancoraggi e alias YAML impongono DRY (Non ripeterti)
  • in questo esempio, è possibile progettare e conservare una struttura di tabelle che coincide strettamente con un database
  • in questo esempio, è possibile ridurre l'immissione dei dati e le dimensioni dei file

insidie

  • in questo specifico esempio, yaml.load() produrrà dizionari nidificati
    • questo è indicato come "problema dei dizionari nidificati"
    • sotto la coppia nome-valore persona, il valore per persona sarà un sottotagine
    • questo può essere indesiderabile, perché rompe l'uniformità della struttura del tavolo
  • l'errore di specificare correttamente gli alias comporterà la mancanza di dati
    • (gli errori di battitura creeranno dei rimandi incrociati)
  • YAML non supporta la transclusione dei file per riferimento, quindi tutti gli alias e gli ancoraggi devono esistere nello stesso file yaml
  • non tutti i parser YAML supportano in modo affidabile ancore e alias

Guarda anche

Stackoverflow YAML

Utilizzando le chiavi di unione YAML per fare riferimenti incrociati alle righe di un'altra tabella 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!

Problema

  • lo sviluppatore desidera fare il riferimento incrociato di righe-con-ancore da una tabella e collegarsi a esse con alias di righe in un'altra tabella
  • sviluppatore desidera evitare di creare il "problema dei dizionari nidificati"

Soluzione

  • usa gli alias YAML, con le chiavi di fusione YAML
  • in YAML, gli "identificatori di transclusione" riutilizzabili sono chiamati ancore e alias
  • in YAML, gli "identificatori di transclusione" riutilizzabili sono costituiti da token alfanumerici preceduti da una e commerciale o da un asterisco

Fondamento logico

  • Ancoraggi e alias YAML consentono una maggiore normalizzazione dei dati
  • Ancoraggi e alias YAML impongono DRY (Non ripeterti)
  • in questo esempio, è possibile progettare e conservare una struttura di tabelle che coincide strettamente con un database
  • in questo esempio, è possibile ridurre l'immissione dei dati e le dimensioni dei file

insidie

  • in questo specifico esempio, yaml.load() produrrà dizionari nidificati
    • sotto la coppia nome-valore persona, il valore per persona sarà un sottotagine
    • questo può essere indesiderabile, perché rompe l'uniformità della struttura del tavolo
  • l'errore di specificare correttamente gli alias comporterà la mancanza di dati
    • (gli errori di battitura creeranno dei rimandi incrociati)
  • YAML non supporta la transclusione dei file per riferimento, quindi tutti gli alias e gli ancoraggi devono esistere nello stesso file yaml
  • non tutti i parser YAML supportano in modo affidabile ancore e alias

Guarda anche



Modified text is an extract of the original Stack Overflow Documentation
Autorizzato sotto CC BY-SA 3.0
Non affiliato con Stack Overflow