Tag Archives: buenas practicas

Principio de “Tell, Don’t ask” en Programación Orientada a Objetos

tell dont ask

El “Tell, Don’t ask” es un principio que nos indica que no tenemos que usar los objetos para pedirles cosas y según la información que nos devuelven tomar decisiones, sino que debemos decirles a los objetos que hagan cosas y estos objetos internamente tomaran sus propias decisiones según su estado.

Este principio casa perfectamente con la idea de que un objeto se define por su comportamiento; y además es fundamental para sacar partido al polimorfismo y la inversión de control. Es decir si nos dedicamos a preguntar y tomar nosotros las decisiones estaremos acoplándonos, será prácticamente imposible hacer cambios al objeto, estaremos incumpliendo el principio Open/Close, nuestro sistema será más difícil de mantener, y por lo tanto más caro.

Al exponer el estado de una clase a las demás para que pueda ser manipulada estamos violando su encapsulamiento y asumiendo riesgos, ademas de que estamos moviendo responsabilidades a las clases de mayor nivel.

El principio fundamental de la programación orientada a objetos es la unificación de métodos y datos, por lo que lo correcto es que cuando una clase requiere conocer el estado de otra, es importante evaluar que uso se le darán a esos datos, y realizar el procesamiento de esa información en la clase expuesta, evitando la dispersión y propagación de estado.

Para mas información pueden consultar los artículos de Carles Climent o Alejandro Pérez García

El mejor comentario es un buen nombre para tus métodos

Code comments best practices

Los comentarios son usualmente creados con la mejor intención, cuando el programador realiza esto es debido a que su código no es obvio o intuitivo. En tales casos, los comentarios son como un desodorante enmascarando el olor de un pescado.

La mejor forma de comentar tu código es elegir buenos nombres para tus métodos o clases.

Si sientes que un fragmento de código no puede ser entendido sin comentarios, entonces intenta cambiar la estructura del código de manera que los comentarios no sean necesarios.

Fuente: https://refactoring.guru