2010-04-22 19 views
17

Al nombrar un booleano, o una función que devuelve un booleano, es usual prefijar con 'es', p.Es o es el prefijo de los valores booleanos

  • isPointerNull
  • isShapeSquare

¿Qué pasa cuando se refiere a varios elementos, debería ser:

  • arePointersNull o isPointersNull
  • areShapesNull o isShapesNull

Puedo ver argumentos para ambos; es la coherencia de las ofertas y tal vez un poco mejor legibilidad, hace que el código se lea de una manera más natural.

Cualquier opinión?

+2

¿Debería ser una wiki de la comunidad ya que es una pregunta de opinión? –

+0

"Siempre que puedas, por favor evita los negativos inherentes" Ese es un buen punto, no lo había pensado de esa manera antes, pero lo recordaré en el futuro. ¡Aclamaciones! – briantyler

+0

No olvides los métodos booleanos que se llaman * después de * algunas acciones pueden posiblemente cambiar sus valores referidos, por ejemplo, 'wasItemNull()' (como en JDBC). –

Respuesta

30

En primer lugar, isPointersNull es feo. No hagas eso.

Suele ir con any o all, ya que are puede ser ambiguo. ¿Significa "hay punteros nulos" o "los punteros son todos nulos"? anyPointersNull y allPointersNull aclarar eso, IMO.

7

No utilice isPointersNull. La consistencia no es motivo para sacrificar la gramática y la legibilidad.

+5

+1 - Acepto arePointersNull es mejor. También podría tener PointersAreNull y una claridad de declaración If sería incluso mejor. – ChrisBD

+0

¿qué usar en su lugar? – n611x007

0

IMO - depende del contexto (uso & legibilidad) de la variable booleana.

Por ejemplo:
- si la variable se refiere a un único puntero es nulo, me gustaría utilizar: isPointerNull
- si la variable se refiere a varios punteros siendo nula, me gustaría utilizar: arePointersNull

HTH.

4

Depende del idioma. Si está utilizando Java, 'isPointersNull' se interpretará como el campo 'pointersNull', donde 'arePointersNull' no lo hará si está utilizando cualquier herramienta de procesamiento JavaBean.

Acepto que la legibilidad es primordial, pero las convenciones de beans permiten el análisis común de objetos.

+0

bien, ponle chris. aunque el nombre de un método puede no tener sentido para nosotros, muchas herramientas esperan que se apegue a las convenciones estándar como la sintaxis de JavaBean y se tropezará si se extravía ... solo para terminar conformándose al estándar al final . – tmeisenh

1

isPointersNull parece un error tipográfico. arePointersNull comunica muy bien el hecho de que más de un solo objeto está involucrado en la consideración de este booleano. Pero si quieres la consistencia que podría referirse a una matriz o colección, que sus punteros debe ser:

  • isPointerArrayNull
  • isPointerCollectionEmpty
  • etc.
+0

Si bien se comunica muy bien que estamos hablando de varios elementos, ¿significa que * más de uno es nulo * (y algunos pueden ser no nulos), o significa que * hay más de un puntero, y todos son nulos *? –

0

yo personalmente voy con isWhatever si Me refiero al método getter de una variable booleana sin importar qué tan feo sea según las reglas gramaticales. Pero si tuviera un método que hiciera algún tipo de verificación de un objeto basado en alguna regla de negocios (como si un número o números es/son primos) usaría nombres que harían felices a mis profesores de inglés.

Cuestiones relacionadas