viernes, 1 de mayo de 2026

Keep Code Left (KCL): El arte de escribir código limpio y lineal


 

En el 2015, mientras trabajaba en Software Andina, tuve el privilegio de asistir a una sesión que cambió por completo mi forma de ver un archivo de código fuente. En aquel entonces, recibíamos frecuentemente a desarrolladores de Estados Unidos que venían a compartir su experiencia.

Uno de esos visitantes fue Mick Andrew, Director de Desarrollo en Sage. Mick, amigo cercano de mi jefe de entonces, John Rutherfurd, nos trajo una presentación titulada: "Keep Code Left" (Mantén el código a la izquierda).

El título parecía simple, pero la filosofía detrás era profunda. Como desarrolladores, solemos enfocarnos en que el código funcione, olvidando que el código se lee muchas más veces de las que se escribe. Mick nos enseñó que, con unas pocas reglas de "libro de cocina", podíamos transformar una lógica enredada y profundamente anidada en algo limpio, lineal y extraordinariamente fácil de mantener.

¿Qué es Keep Code Left?

En esencia, Keep Code Left (KCL) es un estilo de programación diseñado para maximizar la legibilidad. El nombre se refiere a la estructura visual: cuanta más sangría (identación) tiene tu lógica, más se empuja el código hacia la derecha, y más difícil le resulta al cerebro humano rastrear el "estado" y el flujo del programa.

Los objetivos de KCL son claros:

  • Simplificar la lógica: Crear un flujo lineal en lugar de ramificado.

  • Mejorar la legibilidad: Permitir que cualquier desarrollador entienda el objetivo de un método de un solo vistazo.

  • Reducir errores de mantenimiento: El código simple es más difícil de romper.

  • Agilizar las revisiones de código: Proporciona un estándar visual que se verifica rápidamente.

Desde aquel día en 2015, he aplicado estos principios en casi todos mis proyectos. Hoy quiero compartir contigo cómo aplicarlo y por qué tu "yo del futuro" te lo agradecerá.

El Problema de la Anidación

Cuando el código se anida profundamente, surgen problemas inmediatos:

  • Es difícil de leer línea por línea.

  • La lógica principal queda "enterrada" en el centro del archivo.

  • Aumenta la carga cognitiva (tienes que recordar qué condición abrió cada llave).

El Principio Maestro

Evita la anidación innecesaria. Prefiere salidas tempranas (early returns) y un flujo lineal.

En lugar de envolver la lógica principal en múltiples bloques if, manejamos los casos de error o excepciones primero y salimos de la función inmediatamente.

Ejemplo 1: Código Anidado (Incómodo)

public void ProcessOrder(Order order)
{
    if (order != null)
    {
        if (order.IsValid())
        {
            if (order.Items.Count > 0)
            {
                // La lógica principal está aquí, escondida
                Save(order);
            }
        }
    }
} 

Ejemplo 1: Aplicando Keep Code Left (Mejor) 

 

public void ProcessOrder(Order order)
{
    if (order == null) return;
    if (!order.IsValid()) return;
    if (order.Items.Count == 0) return;

    // La lógica principal está "a la izquierda" y es visible
    Save(order);
}

Técnicas Clave de KCL

  1. Salidas Tempranas (Early Returns): Si no se cumplen las condiciones necesarias para continuar, sal de la función de inmediato.

  2. Cláusulas de Guarda (Guard Clauses): Protege tu lógica principal de datos nulos o inválidos al inicio del método.

  3. Reducción de Identación: Cada nivel de if o loop añade complejidad. Intenta mantener tu código con el menor número de "escalones" hacia la derecha posible.

  4. Enfócate en el "Happy Path": El camino feliz (donde todo sale bien) debe ser el eje central y más visible del método.

    Beneficios en el Mundo Real

    Aplicar KCL no es solo un capricho estético; tiene impactos reales en el equipo:

  5. Revisiones de código más veloces: Los patrones son fáciles de detectar sin necesidad de conocer todo el contexto del negocio.

  6. Menos bugs: Al reducir la complejidad visual, los errores lógicos saltan a la vista.

  7. Onboarding rápido: Un desarrollador nuevo puede entender qué hace una función en segundos.

Un consejo para trabajar con IA

Hoy en día, cuando usamos herramientas como  Claude o Copilot, notarás que a menudo generan código muy anidado por defecto. Es extremadamente útil pedirles explícitamente: "Escribe este código siguiendo los principios de Keep Code Left" o "Usa cláusulas de guarda para evitar la anidación". Esto te ahorrará mucho tiempo de refactorización posterior.

viernes, 10 de noviembre de 2023

Cómo Crear una Extensión de Google Chrome para Abrir WhatsApp Web con un Solo Clic



 ¿Te gustaría tener la capacidad de abrir WhatsApp Web con un solo clic desde tu navegador? ¡Buenas noticias! Puedes lograrlo fácilmente creando tu propia extensión personalizada para Google Chrome. En esta guía paso a paso, te mostraré cómo hacerlo. Puedes visitar nuestro articulo sobre como crear una extension en chrome

Paso 1: Configuración Inicial

Antes de comenzar, asegúrate de tener un directorio para tu proyecto. En este ejemplo, llamaremos al directorio "WhatsAppWebLauncher".

Paso 2: Archivo manifest.json

Crea un archivo llamado manifest.json en tu directorio y agrega el siguiente contenido:

{
    "name": "WhatsApp Web Launcher",
    "description": "Open WhatsApp Web for a given phone number.",
    "version": "0.1.0",
    "manifest_version": 3,
    "icons": {
        "16": "/images/icon16.png",
        "32": "/images/icon32.png",
        "48": "/images/icon48.png",
        "128": "/images/icon128.png"
    },
    "action": {
        "default_popup": "popup.html",
        "default_icon": {
            "16": "/images/icon16.png",
            "32": "/images/icon32.png",
            "48": "/images/icon48.png",
            "128": "/images/icon128.png"
        }
    },
    "permissions": [
        "storage",
        "activeTab",
        "scripting",
        "tabs"
    ],
    "content_security_policy": {
        "extension_pages": "script-src 'self'; object-src 'self';"
    }
}

Asegúrate de reemplazar "WhatsApp Web Launcher" con el nombre que desees para tu extensión.

Paso 3: Archivo popup.html

Crea un archivo llamado popup.html y agrega el siguiente contenido:

<!DOCTYPE html>
<html>
<head>
  <title>WhatsApp Web Launcher</title>
</head>
<body>
  <h3>Phone number:</h3>
  <input type="text" id="phoneNumber" placeholder="Ej. +51-1234567" value="">
  <button id="openButton">Open in WhatsApp Web</button>
  <script src="popup.js"></script>
</body>
</html>

Paso 4: Archivo popup.js

Crea un archivo llamado popup.js y agrega el siguiente contenido:

document.addEventListener('DOMContentLoaded', function () {
  var phoneNumberInput = document.getElementById('phoneNumber');

  phoneNumberInput.focus();
  document.getElementById('openButton').addEventListener('click', function() {
    openWhatsApp();
  });
  function openWhatsApp() {
    var phoneNumber = phoneNumberInput.value;
    if (phoneNumber) {
      phoneNumber = phoneNumber.replace(/[^\d]/g, '');
      var whatsappWebUrl = 'https://web.whatsapp.com/send?phone=' + phoneNumber;
      chrome.tabs.create({ url: whatsappWebUrl });
    } else {
      alert('Por favor, ingresa un número de teléfono.');
    }
  }
});

Paso 5: Cargar la Extensión

  1. Abre Google Chrome y ve a chrome://extensions/.
  2. Habilita "Modo de desarrollador" en la esquina superior derecha.
  3. Haz clic en "Cargar descomprimida" y selecciona la carpeta de tu proyecto.

¡Listo! Ahora deberías ver el ícono de tu extensión en la barra de herramientas de Chrome.

Beneficios de Crear Extensiones Personalizadas

Crear tus propias extensiones de navegador personalizadas no solo es divertido, sino que también puede mejorar tu productividad. Puedes adaptar tu navegador exactamente a tus necesidades y automatizar tareas comunes.

Contribuye y Mejora

Este proyecto está en GitHub. Si encuentras problemas o tienes sugerencias de mejora, ¡contribuye al desarrollo! https://github.com/davdomin/chrome_whatsapp

¡Espero que encuentres útil esta extensión personalizada! ¡Háganos saber si tienes alguna pregunta o sugerencia!


jueves, 9 de noviembre de 2023

Descubre las Novedades en Quasar v2.13.1: Más Potencia, Menos Errores

 ¡La espera ha terminado! Quasar Framework acaba de lanzar su versión v2.13.1, cargada de emocionantes características y correcciones que mejorarán significativamente tu experiencia de desarrollo. A continuación, exploraremos algunas de las principales actualizaciones que esta versión trae consigo:



Características Destacadas:

1. Atributo "tag" para QField

  • Ahora, en QField, puedes aprovechar el nuevo atributo "tag" para personalizar aún más la renderización del componente. ¡Más flexibilidad para adaptarse a tus necesidades específicas!

2. Mejoras en el Manejo de Errores

  • Correcciones de errores importantes, como el uso incorrecto de etiquetas <label> en QField, que garantizan un rendimiento más suave y consistente.

Soluciones a Problemas Heredados:

1. Problemas de Herencia de v1 Abordados

  • Se han abordado problemas heredados de la versión 1, como el informe de errores en la consola de desarrollo, asegurando una transición sin problemas a la última versión.

Cómo Actualizar:

Si ya eres un usuario de Quasar, actualizar a la última versión es sencillo. Solo sigue estos pasos:

    1. Instalación de la Nueva Versión:

      npm install -g quasar@2.13.1

    2. Actualización de Proyectos Existentes:

      quasar upgrade

    ¡Y eso es todo! Tu proyecto estará listo para aprovechar al máximo las nuevas funcionalidades y correcciones.

    Comunidad y Colaboración:

    Quasar Framework es posible gracias a la increíble comunidad de desarrolladores. Si encuentras problemas o tienes sugerencias, ¡no dudes en contribuir y ser parte de la evolución de Quasar!

    Este lanzamiento marca otro paso hacia adelante en la misión de Quasar de proporcionar un marco de trabajo poderoso y flexible para el desarrollo web. ¡Esperamos que disfrutes de todas las nuevas mejoras!

    Para obtener más detalles sobre esta versión, consulta aquí.

    ¡Feliz codificación con Quasar v2.13.1! 🚀✨

miércoles, 8 de noviembre de 2023

17 Herramientas Esenciales para Impulsar tu Productividad 🚀🔥

Best Productivity Tools for Small Businesses in 2019 – TeamWave – CRM,  Project Management & HR Software

En el mundo acelerado de hoy, contamos con una amplia variedad de herramientas de productividad diseñadas para simplificar nuestras vidas y mejorar nuestra eficiencia.

Sin embargo, con tantas opciones disponibles, es fácil perderse en el mar de posibilidades, lo que lleva a la fatiga de decisiones e ineficiencia.

En este artículo, he seleccionado cuidadosamente una lista de 17 herramientas para abordar desafíos específicos de productividad, desde la grabación de pantalla, atajos de teclado y gestión del portapapeles hasta trabajar con Regex, terminales, entradas de bases de datos, APIs y más.

  1. FocuSee

FocuSee es una herramienta de grabación de pantalla que hace zoom automáticamente en el video, sigue el movimiento del cursor y agrega un fondo agradable, sin necesidad de edición manual.

Cinco características más útiles de FocuSee:

Zoom automático: FocuSee hace zoom automáticamente en la parte más importante de la pantalla, facilitando el seguimiento para los espectadores. Seguimiento del movimiento del cursor: FocuSee sigue el movimiento de tu cursor y lo mantiene enfocado, incluso si te estás moviendo rápidamente o de manera errática. Fondo agradable: FocuSee agrega un fondo agradable y borroso a tus videos, haciéndote lucir más profesional y pulido. No se requiere edición manual: FocuSee pulirá automáticamente tus videos, para que puedas pasar menos tiempo editando y más tiempo creando. Fácil de usar: FocuSee es muy fácil de usar, incluso para principiantes. Simplemente haz clic en el botón de grabar y comienza a grabar tu pantalla. FocuSee hará el resto.

  1. Keypirinha

Un potente lanzador de teclado que te permite acceder rápidamente a aplicaciones y archivos escribiendo. Es altamente personalizable y puede aumentar tu productividad.


  1. Ditto

Un gestor de portapapeles que amplía la funcionalidad de tu portapapeles, facilitando la gestión y reutilización de elementos copiados. Ahorra tiempo y mejora tu flujo de trabajo.


  1. Fancy Zones

Una herramienta de gestión de ventanas de Windows creada por Microsoft que te ayuda a organizar y gestionar las ventanas abiertas en tu escritorio para una mejor multitarea.


  1. Typora

Un editor de markdown que ofrece una experiencia de escritura libre de distracciones y vista previa en tiempo real. Simplifica el proceso de creación de documentos markdown.


  1. Ray.so

Una herramienta para crear hermosos fragmentos de código en poco tiempo con capacidades de intercambio instantáneo. Facilita compartir fragmentos de código.


  1. GradientHunt

Una colección seleccionada que te permite acceder y utilizar fácilmente hermosos degradados, mejorando tus proyectos de diseño y desarrollo.


  1. Hyper

Un terminal multiplataforma construido sobre Electron. Es altamente personalizable y extensible, con una amplia gama de temas y complementos disponibles.


  1. Sourcetrail

Una herramienta de visualización de código que ayuda en la exploración de bases de código, facilitando la comprensión de proyectos complejos.


  1. RegExr

Una herramienta en línea para expresiones regulares, que ayuda a los desarrolladores a crear, probar y depurar expresiones regulares.

 

  1. Beekeeper

Un editor SQL con una interfaz limpia, que hace que la gestión de bases de datos y la escritura de consultas SQL sean más eficientes.


  1. Lucidchart

Una herramienta de creación de wireframes para diseño de interfaz de usuario (UI/UX). Simplifica la creación de diagramas y prototipos.


  1. MindMup

Una herramienta en línea de mapas mentales que ayuda en la lluvia de ideas y la planificación, ayudándote a organizar tus pensamientos e ideas.


  1. Swagger

Una herramienta para la documentación de API, que facilita la creación y el mantenimiento de documentación para tus APIs.


  1. Insomnia

Una herramienta de prueba de API que agiliza la prueba de APIs REST y GraphQL. Simplifica el proceso de depuración.


  1. f.lux

Un ajustador de luz de pantalla que reduce la luz azul de tu pantalla, ayudando a reducir la fatiga ocular y mejorar la calidad del sueño.


  1. Bitwarden

Un gestor de contraseñas que almacena de forma segura tus contraseñas y facilita la gestión de credenciales de inicio de sesión. Mejora la seguridad y la conveniencia.


Conéctame en Twitter, LinkedIn y GitHub!

Alerta de hackeo masivo en LinkedIn


 

LinkedIn, el popular sitio de redes profesionales, ha sido objeto de una campaña de hacking generalizada, y varios usuarios han informado de que sus cuentas han sido secuestradas y bloqueadas. Los piratas informáticos supuestamente están atacando las cuentas a través de ataques de fuerza bruta y credenciales expuestas. En algunos casos, también están reemplazando los correos electrónicos asociados a las cuentas y activando la autenticación de dos factores antes de solicitar rescates o eliminar la cuenta secuestrada.

Esta es una grave preocupación de seguridad para los usuarios de LinkedIn, y es importante tomar medidas para proteger su cuenta. Aquí hay algunas cosas que puede hacer:

  • Utilice una contraseña fuerte y única para su cuenta de LinkedIn.
  • Habilite la autenticación de dos factores.
  • Tenga cuidado al hacer clic en enlaces o abrir archivos adjuntos de remitentes desconocidos.
  • Revise regularmente su actividad de la cuenta en busca de actividad sospechosa.

Si cree que su cuenta ha sido comprometida, debe cambiar inmediatamente su contraseña y ponerse en contacto con el soporte de LinkedIn.

Aquí hay algunos detalles adicionales sobre el hackeo:

  • Los piratas informáticos supuestamente están utilizando una variedad de métodos para acceder a las cuentas, entre ellos ataques de fuerza bruta, relleno de credenciales y phishing.
  • Una vez que tienen acceso a una cuenta, supuestamente están cambiando la dirección de correo electrónico asociada a la cuenta, activando la autenticación de dos factores y luego solicitando rescates o eliminando la cuenta.
  • LinkedIn supuestamente está investigando el incidente y trabajando para solucionar las vulnerabilidades de seguridad que se explotaron.

Mientras tanto, aquí hay algunos consejos adicionales para protegerse de los hackeos:

  • Tenga cuidado con la información que comparte en línea.
  • Use contraseñas diferentes para todas sus cuentas en línea.
  • Instale un administrador de contraseñas para ayudar a mantener un registro de sus contraseñas.
  • Mantenga su software actualizado.
  • Tenga sospechas de cualquier correo electrónico o mensaje no solicitado.
  • No haga clic en enlaces ni abra archivos adjuntos de remitentes desconocidos.

Siguiendo estos consejos, podrá ayudar a protegerse de los hackeos y otras amenazas en línea.

¿Ha sido hackeada su cuenta de LinkedIn?

Si cree que su cuenta de LinkedIn ha sido hackeada, debe cambiar inmediatamente su contraseña y ponerse en contacto con el soporte de LinkedIn. También puede denunciar el incidente al Centro de Quejas de Delitos Cibernéticos del FBI.

¡Manténgase a salvo en línea!

Keep Code Left (KCL): El arte de escribir código limpio y lineal

  En el 2015, mientras trabajaba en Software Andina , tuve el privilegio de asistir a una sesión que cambió por completo mi forma de ver un ...