14. Macros
14. Macros
Les macros sont un outil tranchant. Elles peuvent clarifier un motif répétitif, mais elles peuvent aussi masquer le code. Vitte encourage une utilisation prudente.
Un exemple simple
macro nop() {
asm("nop")
}
Quand les utiliser
Pour factoriser un motif purement syntaxique. Pour éviter une répétition qui ne porte pas de sens.
Quand les éviter
Pour cacher des effets. Pour « simplifier » une logique complexe.
Le coût cognitif
Chaque macro ajoute une couche de lecture. Utilisezâles comme des outils de scalpel, pas comme des raccourcis universels.
Erreurs courantes
Faire dĂ©pendre la logique mĂ©tier dâune macro obscure. Cacher un appel systĂšme. Utiliser une macro alors quâune fonction claire suffit.
Ă retenir
Une macro doit rendre le code plus lisible, jamais lâinverse.
Exemple guidé : macro vs fonction
Implémentez un motif avec une macro, puis avec une fonction. Gardez la version la plus lisible. Les macros sont rares par défaut.
Checklist macros
La macro simplifie la lecture. Les effets sont visibles. La macro est documentée.
Exercice : éliminer une macro
Prenez une macro existante et réécrivezâla en fonction. Si la lisibilitĂ© augmente, gardez la fonction.
Code complet (API actuelle)
macro assert(cond) {
if !(cond) { builtin.trap("assert failed") }
}
API idéale (future)
Une macro dâassertion avec message, fichier, et ligne rĂ©duirait le coĂ»t de dĂ©bogage.