cours n°2 · Découverte

Les Formats

MD pour les humains, YAML pour la config, JSON pour la machine. Structure, jamais le fond.

~11 min7 stations
▶ vidéo🧩 exercices📄 cheat sheet

42 secondes · sous-titres Français inclus · 8.1 Mo

Les 7 trucs que tu vas savoir faire

Leçon 2 : les Formats

Regarde la leçon (42 s) : trois formats, une seule règle — c'est du texte STRUCTURÉ pour quelqu'un.

Écris pour un humain

Crée `readme` : une vraie chaîne Markdown avec un titre qui commence par « # » et du gras entre doubles astérisques.

Écris pour la config

Complète `config` (YAML) pour que `niveau` vaille l'ENTIER 1 — puis laisse le parseur vérifier : YAML.safe_load(config).

La pente savonneuse

Indentation ! Complète `config` avec un objet imbriqué : `base.host` doit valoir « localhost » (2 espaces sous `base:`).

Écris pour la machine

Complète `api` (JSON) : guillemets sur les clés, virgules partout, `niveau` = 1. JSON.parse(api) doit passer.

Même donnée, trois costumes

Complète `donnee` en JSON pour que les trois formats disent la même chose : langue = ruby (le Markdown et le YAML sont déjà faits).

Leçon 2 : OK

Sans aide : écris `payload` — un JSON avec une clé « tags » qui contient un tableau d'AU MOINS 2 chaînes — et parse-le.

Partage la leçon

← tous les cours

📄 La feuille de chute

imprime-la, colle-la à ton écran, fais semblant que c'est ton idée

📄 Cheat sheet — Les Formats (MD · YAML · JSON)

Trois formats, une seule règle : du texte structuré pour quelqu'un.

Le choix, une fois pour toutes

Tu écris pour… Tu utilises Exemple
un humain (README, doc) Markdown # Titre · **gras**
une config (toi, demain) YAML langue: ruby
une machine (API, fichier) JSON {"langue": "ruby"}

Markdown — pour être lu

# Mon projet
Du **gras**, du *italique*, et une [liste](https://example.com)

Zéro exécution, zéro dépendance. Ton README parle, c'est tout.

YAML — pour être configé

langue: ruby
niveau: 1          # sans guillemets → YAML devine l'ENTIER

base:
  host: localhost  # 2 espaces = imbriqué. Pas de tab. Pas 0.

Piège n°1 : "1" (guillemets) reste une String. 1 est un Integer. Ton niveau == 1 en dépend. Piège n°2 : l'indentation est la structure. Une indentation de travers = tout part en vrille.

JSON — pour être parsé

{
  "langue": "ruby",
  "niveau": 1
}

Clés entre guillemets, virgules entre les paires (jamais après la dernière), accolades équilibrées. Piège n°1 : la virgule oubliée à 3 h du matin. C'est elle. Toujours elle.

La phrase qui débloque tout

Tu changes la forme, jamais le fond. Les trois disent la même chose — c'est juste qui qui la lit qui change.

Le réflexe Ruby

require "yaml"
YAML.safe_load(config)["langue"]   # => "ruby"  (et ça lève si c'est cassé)

require "json"
JSON.parse(payload)["tags"]        # => ["ruby", "formats"]

Un parseur, ça existe : ne devine jamais la structure, fais-la vérifier.


SlopCourse Microduck — du slop au code propre.