Comme quoi il n’y a pas de réponse unique.
De mon côté, je dirais que cela dépend de ta valeur par défaut. Souvent (mais c’est language-specific) un nouvel attribut d’objet, de modèle, de ce que tu veux est initialisé naturellement à null
(ou nil
, ou undefined
etc.) bref à une valeur falsy. Donc utilise un attribut pour que la valeur par défaut soit falsy.
Du coup, plutôt que de devoir gérer une valeur par défaut à la création (eg. visible=true
, status='visible'
etc.) tu peux te contenter d’ajouter le critère et de ne l’initialiser que pour les objets dont la valeur n’est pas celle par défaut.
En outre, je trouve que cela a du sens au niveau entropique : lorsque tu as une valeur par défaut (ex: hidden=false
quelque part), c’est normal que ton programme se comporte de la même manière pour :
{
id: 1,
name: 'My object',
param: {}
}
et
{
id: 1,
name: 'My object',
hidden: false,
param: {}
}
Donc si les objets sont visibles par défaut (ce que j’imagine dans ton cas), j’utiliserais hidden
, en revanche si c’est un article et qu’il n’est pas forcément prêt par défaut, j’utiliserais published
et non draft
.