Esempi:
isKeyValid -> keyIsValid
hasPostThumbnail -> postHasThumbnail
Il primo caso è più facile da ricordare (convenzione). Il secondo è più facile / più naturale da leggere.
Quale dovrei usare?
Usa quale convenzione preferisci e vivi con le conseguenze. La maggior parte dei lettori del tuo codice saprà come interpretare i prefissi "è" e "ha". Per questo motivo raccomando di usare la convenzione. È utile per gli altri.
Inoltre, considera ciò che "ha senso grammaticalmente" in realtà significa in un contesto di codifica. Non confondere la grammatica della tua lingua parlata e le convenzioni di denominazione del linguaggio di codifica. "IsKeyValid" e "KeyIsValid" o addirittura "Key.IsValid" sono tutte "cose" con nomi, non frasi. Se combinati con la sintassi della lingua, saranno interpretati in frasi inglesi a seconda del contesto. Ad esempio: if (IsKeyValid) {}
verrà interpretato come "se la chiave è valida ..." e if (!Key.IsValid) {}
verrà interpretata come "se la chiave non è valida ...". Un esempio assurdo di valore anomalo potrebbe essere if (!_bool_VALIDCONST_glbKeys){}
. Tuttavia sarà interpretato allo stesso modo, ma con maggiore difficoltà e tempo. Quindi convenzioni di denominazione.
Non è necessario iniziare sempre con "è" o "ha". In alcune situazioni, altre parole potrebbero essere applicabili, ma dovrebbero comunque avere una chiara indicazione di cosa significano le risposte Vero / Falso. per esempio.
Ricorda che gli stati booleani non sono comuni nel mondo reale; le scale di grigio sono più comuni. Ad esempio, "canMarry" non contempla esclusioni legali come non essere in grado di sposare tua madre; 'wasmarried' richiede una definizione di cosa costituisce il matrimonio (include i partenariati civili legali, che sono considerati equivalenti al matrimonio per alcuni regimi pensionistici ma non tutti i sistemi pensionistici?).
Leggi altre domande sui tag coding-style programming-practices