⚙️Nombres Funciones

🎯 Principio Fundamental

  • Claridad en la Acción: Una función debe realizar la acción que su nombre indica, sin ambigüedades.

Ejemplo Mal estructurado :

function sendEmail(to: string, from: string, subject: string, body: string, apiKey: string): boolean {
    // Lógica para enviar el email...
    console.log(`Enviando correo de ${from} a ${to}...`);
    // Supongamos que el email se envió correctamente
    return true;
}

✨ Ejemplo Ilustrativo

  • sendEmail(toWhom: string): boolean

    • Propósito Claro: Envía un correo electrónico al destinatario especificado.

    • Retorno Booleano: true si el envío es exitoso, false en caso contrario.

🚩 Señales de Alerta en las Funciones

  • Una función llamada sendEmail pero que realiza acciones no relacionadas (como verificar si un usuario existe o crear un usuario en la base de datos) es un indicativo de que la función tiene demasiadas responsabilidades o su nombre no refleja su verdadera función.

📏 Regla de los Parámetros

  • Limita a Tres: Se recomienda que las funciones no tengan más de tres parámetros para mantener la legibilidad y facilidad de uso.

🔄 Argumentos vs. Parámetros

  • Definición: Los parámetros son las variables listadas como parte de la definición de la función. Los argumentos son los valores reales pasados a la función cuando se invoca.

  • Ejemplo: En sendEmail(toWhom: string), toWhom es un parámetro; el valor que se pasa al llamar a la función es un argumento.

🤔 Manejo de Múltiples Argumentos

  • Objetos para Argumentos Múltiples: Cuando una función necesita más de tres argumentos, considera pasar un objeto que contenga todas las opciones necesarias. Esto mejora la legibilidad y hace más fácil el manejo de los datos.

🧩 Desestructuración de Objetos

  • Ejemplo Mejorado:

    • En lugar de pasar múltiples argumentos directamente, pasar un solo objeto permite una mejor organización y comprensión del propósito de cada valor.

    • La desestructuración en la definición de la función facilita el acceso a cada propiedad del objeto argumento.

📚 TypeScript y la Claridad

  • Interfaces para Opciones de Funciones:

    • Utilizar interfaces (en TypeScript) para definir el tipo de un objeto de argumentos mejora la verificación de tipo y la documentación del código.

🔤 Orden Alfabético en Propiedades

  • Recomendación Adicional: Ordenar las propiedades de los objetos pasados como argumento en orden alfabético puede mejorar aún más la legibilidad

Ejemplo Inicial Arreglado :

interface SendEmailOptions {
    to: string;
    from: string;
    subject: string;
    body: string;
    apiKey: string;
}

function sendEmail({ to, from, subject, body, apiKey }: SendEmailOptions): boolean {
    // Lógica para enviar el email...
    console.log(`Enviando correo de ${from} a ${to}...`);
    // Supongamos que el email se envió correctamente
    return true;
}

Última actualización