From 3ad6af5d17a1b3f768a4ab1b09da7fa57a957091 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Gr=C3=A9goire=20Paris?= <postmaster@greg0ire.fr>
Date: Sat, 24 Mar 2018 22:20:23 +0100
Subject: [PATCH] Add slides about UUIDs

---
 index.md | 19 +++++++++++++------
 1 file changed, 13 insertions(+), 6 deletions(-)

diff --git a/index.md b/index.md
index a1fc942..90bf3fd 100644
--- a/index.md
+++ b/index.md
@@ -154,6 +154,19 @@ Note:
   Doctrine, Doctrine utilise de la réflection ou de la désérialisation pour
 hydrater les entités.
 
+---
+## Les UUID
+
+- Universally unique
+- Indevinables
+- Ne nécessitent pas de base de données
+- `ramsey/uuid` à la rescousse
+
+Notes:
+- Idéalement, prendre une clé naturelle.
+- Doctrine a un type `guid` qui correspond au type `uuid` dans Postgres,
+  jetez-y un oeil.
+
 ---
 ## Les value objects
 
@@ -241,12 +254,6 @@ Note:
   l'hydratation. Si ça crashe, c'est qu'il manque des migrations.
 - La méthode `getName()` fait doublon avec le nom utilisé lors de
   l'enregistrement du type dans le registre de type, et disparaître dès Doctrine 3
-> - `ArticleId` devrait être une clé naturelle ou un UUID, le principal c'est de
->   pas avoir besoin de demander à la DB de le calculer, ça évite des attaques
-> pour cause d'ID devinables, et ça évite d'exposer le nombre d'entités présentes
-> dans une table. Ça évite aussi des collisions lorsque vous migrez des données
-> d'une base vers une autre, et que la nouvelle base peut elle aussi être
-> alimentée directement.
 
 ---
 ## Les embeddables
-- 
GitLab