miércoles, septiembre 13, 2006

Comentario: Offensive Coding

El autor de este blog es un grande, es quien escribió "Working Effectively with Legacy Code", es muy interesante como explica el concepto. Comparto su opinión, y sobre todo cada vez que leo sobre DBC, me gusta más...

Que opinan?

Este es el link: http://www.artima.com/weblogs/viewpost.jsp?thread=168511

Resumen: Tempted to code defensively? Maybe it's because you're dealing with offensive code.

2 comentarios:

Adrian Alonso dijo...

Me parece que esta buena la idea de que el método solo contenga la lógica para la cual fue concebido y solo eso. En mi opinión, las validaciones (o precondiciones) tanto como las resultados (o postcondiciones evitando el offensive code que menciona en el art) deberían ser tratadas como expone este muchacho en su art o bien como en otro lenguajes que tienen de forma nativa un mecanismo orientado a contratos (donde se especifica la condiciones que se deben cumplir antes y después de la ejecución) o por ejemplo con AOP en el cual se pueden interceptar las llamadas un conjunto de llamadas a métodos para verificar el valor de sus parámetros y tomar alguna acción (como por ejemplo, cortar el flujo de ejecución).

Gustavo Andrés Brey dijo...

Buen punto Adrian (Alonso no?) AOP podria ser una manera, el tema es ver en que momento se detecta ese tipo de problema:
- development/test time
- integration time (continous integration)
- build time
- run time
Creo que el ultimo es un poco riesgoso y complicado ya que hay que manejar la excepción ocasionada. El otro día vi que se re abrió un proyecto para DbC, http://icontract2.org/

Saludos