Firmas de funciones en programación

From Wiki de Flat Estrategia Digital
Jump to: navigation, search

Las firmas de las funciones son muy importantes, dan una guía al programador para que sepa lo que debe desarrollar y también explican a quien use la función lo que esta hace; de esta forma hacen predecible el desarrollo y el uso.

Estructura de una firma de función

(Para los ejemplos se usa PHP)

La firma de una función tiene que definir lo siguiente:

  • Qué hace la función. Debe hacer una acción clara, idealmente una sola acción aunque puede tener pequeñas variaciones
    Ejemplo: La función devuelve un numero aleatorio adentro de un rango configurable.
  • El nombre tiene que ser lo más explícito posible.
    Siguiendo el ejemplo: 'obtenerNumeroAleatorioEntreRango'.
  • Los parámetros necesarios y opcionales. Se deben definir qué parámetros requiere la función y cuales son opcionales (si el lenguaje lo permite). Además para cada parámetro se debe especificar que representa y el tipo esperado.
    Siguiendo el ejemplo: la función requiere un parámetro $inicioRango y opcionalmente puede recibir un parámetro $finRango, ambos son números enteros.
  • El retorno tiene que ser claro. Tiene que estar definido qué se devuelve y su formato, también tiene que estar definido si hay variaciones en el retorno de acuerdo a las parámetros de la función.
    Siguiendo el ejemplo: la función retorna un número aleatorio entero entre los rangos especificados. Como $finRango es opcional si no se especifica, el rango empieza en $inicioRango y termina en el número entero más grande que soporte el sistema.

En el caso de PHP en clases (como en otros lenguajes), hay información adicional que se puede especificar para una función como si es estática o no, y los permisos de acceso (private, public, protected).

A continuación un ejemplo de cómo se debe la firma de una función en PHP.

Ejemplo para explicar como debe ser estructurada la firma de una función, basado en PHP para una función adentro de una clase.

Mismo ejemplo anterior copiable inserto en una clase.

/**
 * Clase hecha para manejar información de fechas
 */
class nombreClase {

	/**
	 * Esta función es un ejemplo con parámetros definidos, dos obligatorios y uno opcional.
	 * Retorna un booleano dependiendo de si se cumple la condición X o Y.
	 *
	 * @param int		$parametro1			Define el valor de A.
	 * @param string	$parametro2			Define el valor de B.
	 * @param boolean	$parametro3			(opcional) Por defecto es true, si se setea pasa C.
	 *
	 * @return boolean					Se devuelve true en caso X y false en caso Y.
	 */
	public static function nombreFuncion($parametro1, $parametro2, $parametro3 = true) {
		/*
		 * Código irrelevante para la firma.
		 * Al momento que se implementa debe cumplir con aquello definido en la firma.
		 */
	}

}

Facebook Comments