En su talk en la marca de 54:53 minutos, Rich Hickey está hablando sobre el uso de colas como un medio para desacoplar partes de programas dependientes. ¿Me puede dar un ejemplo sobre cómo deouple el siguiente fragmento de Java-pseudo-código con el fin de mejorar su diseño y/o flexibilidad:Programas de desacoplamiento usando colas
// Warning: Java-pseudo-code ahead
class Job {
public void doRun(A a) {
saveObjectToDatabase(a);
B b = computeB(a);
saveObjectToDatabase(b);
C c = computeC(b);
logToFile(c);
}
}
saveObjectToDatabase
y saveObjectToDatabase
puede ser visto como un método con efectos secundarios , mientras que los resultados de computeB
y computeC
solo dependen de a
.
Sé que esta pregunta es bastante vaga/amplia. Me gustaría tener una idea de cómo aprovechar los mecanismos de colas sin complicar enormemente mi programa y aún así asegurarme de que haga lo correcto en el orden correcto. Cualquier indicador en la dirección correcta es apreciado.
No está muy claro. El ejemplo que muestra tiene un método independiente, que no utiliza ninguna dependencia externa. No hay nada que desacoplar ya que el Trabajo no está acoplado a nada. –
Supongo que a @Matt le gustaría obtener diferentes hilos haciendo los métodos computeB() y computeC(), usando colas para mover unidades de trabajo entre los diferentes hilos. – Rich
Consulte [Enterprise Integration Patterns] (http://www.eaipatterns.com/). – TrueWill