Excepciones vs Valores de Error: C贸mo Elegir una Estrategia

Abre un archivo que no existe en Python y open() lanza un FileNotFoundError que sube por la pila de llamadas hasta salir de tu funci贸n. Haz lo mismo en Go y os.ReadFile te devuelve un valor error junto a un slice de bytes nil. El mismo fallo, dos formas de c贸digo completamente distintas a su alrededor. La diferencia no es cosm茅tica: decide si quien llama puede ignorar el fallo por accidente, y si el compilador se da cuenta cuando lo hace. ...

26 de octubre de 2026 路 8 min 路 1680 palabras 路 SpaghettiCoder

Principios SOLID Explicados con Ejemplos en Python

Una clase que guarda un usuario en la base de datos, le manda un correo de bienvenida y da formato a un recibo: basta un cambio para romper dos funcionalidades que no tienen nada que ver entre s铆. Tocas la plantilla del correo y arriesgas la escritura en la base de datos. Tocas el dise帽o del recibo y arriesgas el correo. SOLID son cinco reglas que atacan ese tipo de enredo desde 谩ngulos distintos, y comparten una idea: una clase debe cambiar por un solo motivo, y el resto del c贸digo debe depender de lo que algo promete hacer, no de c贸mo lo hace. ...

10 de octubre de 2026 路 10 min 路 1982 palabras 路 SpaghettiCoder

Qu茅 Es la Dependency Injection (con Ejemplos)

Aqu铆 tienes una clase que no puedes probar con un unit test sin una base de datos real y un servidor SMTP funcionando: 1 2 3 4 5 6 7 8 9 10 11 public class OrderService { private readonly SqlOrderRepository _repository = new SqlOrderRepository("Server=prod-db;Database=Orders;..."); private readonly SmtpEmailSender _emailSender = new SmtpEmailSender("smtp.company.com"); public void PlaceOrder(Order order) { _repository.Save(order); _emailSender.Send(order.CustomerEmail, "Order confirmed"); } } OrderService construye su propio SqlOrderRepository y SmtpEmailSender con new, con la connection string incluida. Cada test que toca PlaceOrder necesita una base de datos Orders real y un servidor de correo real, o falla antes de que se ejecute tu assertion. La l贸gica que quieres probar son dos l铆neas: guardar el pedido, enviar la confirmaci贸n. Est谩 soldada a dos clases concretas que no puedes cambiar. ...

1 de octubre de 2026 路 8 min 路 1615 palabras 路 SpaghettiCoder

Qu茅 Es el Spaghetti Code y C贸mo Refactorizarlo

Abres una funci贸n para arreglar un bug de una l铆nea y cuarenta minutos despu茅s sigues rastreando qu茅 rama asigna qu茅 variable. Tres tareas que no tienen nada que ver entre s铆 est谩n soldadas en un solo bloque, y ninguna tiene nombre. Tiras de un hilo y no puedes saber cu谩les otros se mueven. Eso es spaghetti code, y el nombre no tiene nada que ver con la indentaci贸n ni el estilo de nombres. Describe el flujo de control: la ejecuci贸n salta entre condiciones como un fideo que cruza todos los dem谩s en el plato, y seguir un solo camino hasta el final significa tener cuatro niveles de if en la cabeza a la vez. ...

25 de septiembre de 2026 路 10 min 路 2069 palabras 路 SpaghettiCoder