SlideShare una empresa de Scribd logo
1 de 9
Capitulo 3:
Nombres que no pueden
ser malinterpretados
SANTIAGO LONDOÑO GUZMÁN
Buscar ambigüedades
Supongamos que usted tiene la siguiente función que recorta un párrafo:
# Corta el final del texto y coloca “…”
def Clip(text, length):
…
La función Clip() y el parámetro length son ambiguos, ya que pueden ser
interpretados de diferentes maneras.
Preferir “min” y “max” para límites
inclusivos
Supongamos que tenemos la siguiente función que verifica que no se compren
mas de 10 ítems en un carrito de compras:
CART_TOO_BIG_LIMIT = 10
if shopping_cart.num_items() > CART_TOO_BIG_LIMIT:
Error("Too many items in cart.")
El nombre de la variable “CART_TOO_BIG_LIMIT” es ambiguo, ya que no es
posible saber si el limite es hasta el valor de la variable o si incluye este valor.
Preferir “first” and “last” para rangos
inclusivos
La siguiente función es otro ejemplo en el que no se sabe si incluye o no el valor
print integer_range(start=2, stop=4)
# La función imprime [2,3] ó [2,3,4] ?
Aunque el parametron “start” es razonable, el parámetro “stop” se puede
interpreter de diferentes maneras.
Preferir “begin” y “end” para rangos
inclusivo/exclusivo
Es muy común usar rangos inclusivo/exclusivo, por ejemplo, si queremos saber
que eventos ocurrieron en un día especifico es mas fácil escribir:
PrintEventsInRange("OCT 16 12:00am", "OCT 17 12:00am")
En lugar de escribir:
PrintEventsInRange("OCT 16 12:00am", "OCT 16 11:59:59.9999pm")
Sin embargo la palabra “end” puede ser ambigua pero es la más usada y la que
mejor se adapta a estas situaciones.
Nombrando booleanos
Hay que asegurarse de que haya claridad en que significa el valor “true” y “false”
en la variable, por ejemplo:
bool read_password = true;
En este caso, el valor true de variable pueden significar diferentes cosas.
Nombrando booleanos
En general, se pueden hacer los booleanos mas claros al añadir palabras como:
es, tiene, puede o debe.
Por ejemplo:
Si tenemos una función que se llama EspacioIzquierda(), se podría suponer que
la función retorna cualquier tipo de valor. Para asegurarse de que la función
retorna un booleano, podemos añadir a la función TieneEspacioIzquierda().
Nombrando booleanos
Finalmente, es mejor evitar términos negados al nombrar una variable. Por
ejemplo:
bool inhabilitar_ssl = false;
Seria mas fácil de leer si escribimos:
bool usar_ssl = false;
Las expectativas de los usuarios
Algunos nombres son engañosos porque el usuario tiene una idea preconcebida
de lo que el nombre significa, a pesar de que quiere decir algo más. En estos
casos, lo mejor es simplemente "ceder" y cambiar el nombre para que no sea
engañoso. Por ejemplo:
•get*()
•size()

Más contenido relacionado

Destacado (7)

Presentacion aesthetics
Presentacion aestheticsPresentacion aesthetics
Presentacion aesthetics
 
the art of readable code
the art of readable codethe art of readable code
the art of readable code
 
Capítulo 8 breaking down giant expressions
Capítulo 8  breaking down giant expressionsCapítulo 8  breaking down giant expressions
Capítulo 8 breaking down giant expressions
 
taorc
taorctaorc
taorc
 
Entrega standlan
Entrega standlanEntrega standlan
Entrega standlan
 
Haciendo estructuras de control fáciles de leer
Haciendo estructuras de control fáciles de leerHaciendo estructuras de control fáciles de leer
Haciendo estructuras de control fáciles de leer
 
Standlan presentación 1
Standlan presentación 1Standlan presentación 1
Standlan presentación 1
 

Similar a Nombres_claros_funciones_variables_boleanos_40

Similar a Nombres_claros_funciones_variables_boleanos_40 (11)

Manual excel
Manual excelManual excel
Manual excel
 
Términos
TérminosTérminos
Términos
 
Codigo
CodigoCodigo
Codigo
 
Mod2ud1 2
Mod2ud1 2Mod2ud1 2
Mod2ud1 2
 
Constantes y variables enitmar
Constantes y variables enitmarConstantes y variables enitmar
Constantes y variables enitmar
 
Funciones de texto
Funciones de textoFunciones de texto
Funciones de texto
 
TutorialKotlin.docx
TutorialKotlin.docxTutorialKotlin.docx
TutorialKotlin.docx
 
Mod2ud2 1
Mod2ud2 1Mod2ud2 1
Mod2ud2 1
 
80 Php. Campos Y Conexiones
80 Php. Campos Y Conexiones80 Php. Campos Y Conexiones
80 Php. Campos Y Conexiones
 
Unidad 2
Unidad 2Unidad 2
Unidad 2
 
Unidad 2
Unidad 2Unidad 2
Unidad 2
 

Nombres_claros_funciones_variables_boleanos_40

  • 1. Capitulo 3: Nombres que no pueden ser malinterpretados SANTIAGO LONDOÑO GUZMÁN
  • 2. Buscar ambigüedades Supongamos que usted tiene la siguiente función que recorta un párrafo: # Corta el final del texto y coloca “…” def Clip(text, length): … La función Clip() y el parámetro length son ambiguos, ya que pueden ser interpretados de diferentes maneras.
  • 3. Preferir “min” y “max” para límites inclusivos Supongamos que tenemos la siguiente función que verifica que no se compren mas de 10 ítems en un carrito de compras: CART_TOO_BIG_LIMIT = 10 if shopping_cart.num_items() > CART_TOO_BIG_LIMIT: Error("Too many items in cart.") El nombre de la variable “CART_TOO_BIG_LIMIT” es ambiguo, ya que no es posible saber si el limite es hasta el valor de la variable o si incluye este valor.
  • 4. Preferir “first” and “last” para rangos inclusivos La siguiente función es otro ejemplo en el que no se sabe si incluye o no el valor print integer_range(start=2, stop=4) # La función imprime [2,3] ó [2,3,4] ? Aunque el parametron “start” es razonable, el parámetro “stop” se puede interpreter de diferentes maneras.
  • 5. Preferir “begin” y “end” para rangos inclusivo/exclusivo Es muy común usar rangos inclusivo/exclusivo, por ejemplo, si queremos saber que eventos ocurrieron en un día especifico es mas fácil escribir: PrintEventsInRange("OCT 16 12:00am", "OCT 17 12:00am") En lugar de escribir: PrintEventsInRange("OCT 16 12:00am", "OCT 16 11:59:59.9999pm") Sin embargo la palabra “end” puede ser ambigua pero es la más usada y la que mejor se adapta a estas situaciones.
  • 6. Nombrando booleanos Hay que asegurarse de que haya claridad en que significa el valor “true” y “false” en la variable, por ejemplo: bool read_password = true; En este caso, el valor true de variable pueden significar diferentes cosas.
  • 7. Nombrando booleanos En general, se pueden hacer los booleanos mas claros al añadir palabras como: es, tiene, puede o debe. Por ejemplo: Si tenemos una función que se llama EspacioIzquierda(), se podría suponer que la función retorna cualquier tipo de valor. Para asegurarse de que la función retorna un booleano, podemos añadir a la función TieneEspacioIzquierda().
  • 8. Nombrando booleanos Finalmente, es mejor evitar términos negados al nombrar una variable. Por ejemplo: bool inhabilitar_ssl = false; Seria mas fácil de leer si escribimos: bool usar_ssl = false;
  • 9. Las expectativas de los usuarios Algunos nombres son engañosos porque el usuario tiene una idea preconcebida de lo que el nombre significa, a pesar de que quiere decir algo más. En estos casos, lo mejor es simplemente "ceder" y cambiar el nombre para que no sea engañoso. Por ejemplo: •get*() •size()