2010-04-22 14 views
17

Quando si nomina un valore booleano o una funzione che restituisce un valore booleano, è solito prefisso con "è", ad es.Is o Are per il prefisso valori booleani

  • isPointerNull
  • isShapeSquare

Che dire quando riferendosi a più elementi, dovrebbe essere:

  • arePointersNull o isPointersNull
  • areShapesNull o isShapesNull

Posso vedere gli argomenti per entrambi; offre coerenza e forse una leggibilità leggermente migliore, fa leggere il codice in modo più naturale.

Qualche opinione?

+2

Dovrebbe essere una wiki della comunità poiché si tratta di una domanda di opinione? –

+0

"Ogni volta che puoi, per favore evita i negativi inerenti" Questo è davvero un buon punto, non ci avevo davvero pensato prima, ma lo ricorderò in futuro. Saluti! – briantyler

+0

Non dimenticare i metodi booleani che vengono richiamati * dopo * alcune azioni potrebbero eventualmente modificare i loro valori di riferimento, ad esempio 'wasItemNull()' (come in JDBC). –

risposta

30

In primo luogo, isPointersNull è semplicemente brutto. Non farlo.

In genere vado con any o all, come are può essere ambiguo. Significa "ci sono dei puntatori nulli" o "i puntatori sono tutti nulli"? anyPointersNull e allPointersNull cancellarlo, IMO.

7

Si prega di non utilizzare isPointersNull. La coerenza non è un motivo per sacrificare la grammatica e la leggibilità.

+5

+1 - Sono d'accordo arePointNull è meglio. Potresti anche avere PointersAreNull e poi una dichiarazione If se la chiarezza sarebbe ancora migliore. – ChrisBD

+0

cosa usare invece? – n611x007

0

IMO: dipende dal contesto (utilizzo della lettura &) della variabile booleana.

Ad esempio:
- se la variabile si riferisce ad un unico puntatore essendo nullo, userei: isPointerNull
- se la variabile si riferisce più puntatori essere nullo, userei: arePointersNull

HTH.

4

Dipende dalla lingua. Se stai usando Java, 'isPointersNull' verrà interpretato come il campo 'pointersNull' in cui 'arePointersNull' non funzionerà se stai usando uno strumento di elaborazione JavaBean.

Concordo sul fatto che la leggibilità è fondamentale, ma le convenzioni del bean consentono l'analisi comune degli oggetti.

+0

ben messo chris. anche se un nome di metodo può non avere senso per noi molti strumenti si aspettano che tu rispetti le convenzioni standard come la sintassi JavaBean e ti sveglierai se ti allontani .... solo per finire di conformarti allo standard alla fine . – tmeisenh

1

isPointersNull sembra un errore di battitura. arePointersNull comunica bene il fatto che più di un singolo oggetto è coinvolto nella considerazione di questo booleano. Ma se si vuole coerenza si potrebbe fare riferimento a un array o di raccolta, che i puntatori dovrebbe essere:

  • isPointerArrayNull
  • isPointerCollectionEmpty
  • ecc
+0

Mentre comunica bene che stiamo parlando di più elementi, vuol dire che * più di uno è nullo * (e alcuni potrebbero non essere nulli), o significa che * c'è più di un puntatore, e sono tutti nulli *? –

0

io personalmente vado con isWhatever se io sto facendo riferimento al metodo getter di una variabile booleana, non importa quanto sia brutto secondo le regole grammaticali. Ma se avessi un metodo che ha fatto una sorta di controllo di un oggetto basato su qualche regola professionale (come se un numero o numeri fosse/sono primi) userei nomi che renderebbero felici i miei insegnanti di inglese.

Problemi correlati