SOLID: No seas el programador que solo 'plancha' funciones 🛑
Source: Dev.to

¿Alguna vez has sentido ese miedo de mover una sola línea de código porque sabes que algo en la otra punta del sistema se va a romper? A mí me pasó.
Durante mucho tiempo, me limité a seguir herencias de códigos mal diseñados; simplemente “planchaba” una funcionalidad tras otra sobre lo que ya existía, sin mejorar nada, por miedo o por falta de tiempo. Pero aprendí que programar no es solo que funcione hoy, sino que sea mantenible mañana.
S: Single Responsibility (Responsabilidad Única)
Parece obvio: una clase debe tener una sola razón para existir. Solemos aceptar que una clase User no debería procesar pagos ni enviar emails masivos, ¿verdad? Pero caemos en trampas más sutiles. A veces le metemos la validación de contraseñas, la lógica del login y hasta el manejo de la sesión.
El resultado: una clase que sabe demasiado y que se vuelve imposible de testear o cambiar. Un usuario es una entidad, no un orquestador de seguridad.
El cambio en el código
En lugar de tener una clase “Navaja Suiza”, separamos los datos de la lógica de infraestructura:
// La Entidad: Solo representa qué es un usuario y sus datos esenciales
class Usuario {
public string $email;
public string $passwordHash;
}
// El Servicio: Se encarga de la lógica de autenticación
class AuthService {
private $hasher;
public function __construct(PasswordHasher $hasher) {
$this->hasher = $hasher;
}
public function login(Usuario $user, string $password) {
if ($this->hasher->verify($password, $user->passwordHash)) {
// Lógica para iniciar sesión...
}
}
}
No solo escribas código, haz ingeniería
Los invito a que dejemos de ser los que solo “siguen planchando” código sobre código. Hagamos el cambio: cuando encuentres una función mal hecha, no solo añadas la tuya encima. Refactoriza, limpia y aplica SRP (Single Responsibility Principle).
Deja el código más bello y legible de como lo encontraste. Ten por seguro que el siguiente desarrollador que lea tu trabajo dirá: “Gracias”.
¿Te ha pasado algo similar con el código legacy? ¡Te leo en los comentarios! 👇