Recentemente stavo parlando con il mio capo di servizi di composizione da altri servizi (in un'architettura orientata ai servizi, se non l'hai già indovinato). Siamo in disaccordo su alcuni principi architettonici e mi piacerebbe trovare alcuni articoli da leggere sull'argomento per aiutare la discussione.
La mia tesi è che l'iniezione di servizi in altri servizi va bene. Ad esempio, non ho problemi con quanto segue:
class SomeService {
protected $anotherService;
public function __construct(AnotherService $anotherService)
{
$this->anotherService = $anotherService;
}
public function doSomething()
{
...
$this->anotherService->getWhatever();
...
return $someObject;
}
}
Alcuni colleghi (e il mio capo) sembrano pensare che questa non è una buona pratica . La loro dura regola è che un servizio non può dipendere da un altro servizio, solo un repository (o qualcosa nel livello architettonico sottostante). Le implicazioni per questo sono che abbiamo un sacco di codice duplicato, ma affermano che qualcosa non è chiaro sulla composizione di servizi da altri servizi.
Ci sono articoli, libri, ecc. che potrebbero essere utili da considerare?