Ayer, mientras estabamos introduciendo a un profano al mundo de Ruby on Rails surgió una breve pero interesante discusión, acerca del uso de métodos como delegate_method frente a su contrapartida “procedural”. Esto es:
1
|
|
frente a:
1 2 3 |
|
que viene siendo, más o menos, el código que genera dinámicamente delegate_method.
Sin entrar en temas acerca de reutilización de código, mejor gestión del cambio, etc. etc. (que me parecen bastante obvios), la discusión se centraba en que nuestro “profano” (y lo digo con todo el cariño, porque confío en que será un fervoroso converso en el futuro) consideraba que el segundo pedazo de código era más claro y sencillo. Asís, por el contrario, indicaba que la versión declarativa era mejor, más expresiva y autodocumentada, ya que, por su propia naturaleza, declara lo que se está haciendo y no cómo se está haciendo. Yo no puedo estar más de acuerdo con Asís. El segundo código “pide a gritos” un comentario para “declarar” qué hace y no obligar a un posible lector a discernirlo en función de cómo lo hace.
Quizás el ejemplo es demasiado simple para convencerse, así que propongo aquí otro código como ejercicio filosófico-mental, utilizando la librería has_finder, cuya funcionalidad va a ser introducida en el core de Rails. Echadle un ojo.
1 2 3 |
|
Lo sentimos, pero los comentarios están cerrados