Nel suo talk al minuto 54:53, Rich Hickey sta parlando dell'utilizzo delle code come mezzo per separare parti del programma dipendenti. Mi può dare un esempio su come deouple il seguente pezzo di Java-pseudo-codice al fine di migliorare il suo design e/o la flessibilità:Disaccoppiare i programmi utilizzando le code
// 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
e saveObjectToDatabase
può essere visto come un metodo con effetti collaterali , mentre l'output di computeB
e computeC
dipende solo da a
.
So che questa domanda è piuttosto vaga/ampia. Mi piacerebbe avere un'idea di come sfruttare i meccanismi di accodamento senza complicare enormemente il mio programma e assicurandomi che faccia la cosa giusta nell'ordine giusto. Tutti i puntatori nella giusta direzione sono apprezzati.
Non è molto chiaro. L'esempio che stai mostrando ha un metodo autonomo, che non usa alcuna dipendenza esterna. Non c'è nulla da disaccoppiare in quanto il lavoro non è accoppiato a nulla. –
La mia ipotesi è che @Matt vorrebbe ottenere thread diversi che eseguono i metodi computeB() e computeC(), usando le code per spostare le unità di lavoro tra i diversi thread. – Rich
Controllare [Modelli di integrazione aziendale] (http://www.eaipatterns.com/). – TrueWill