4 ms·
The big win is easy swappable port implementations. Which makes unit testing super fast. It's a better separation of concerns. The ports or often implemented as
by TeeWEE 9y ago
The big win is easy swappable port implementations. Which makes unit testing super fast. It's a better separation of concerns. The ports or often implemented as interfaces.
- Spearchucker 9y agoI question the utility. In my 27 years in this business I've never come across a database migration, for example. And the only reason you'd put all that effort into a port for data access is to hedge against a future switch to another database vendor/technology. It feels like ports and adapters are intended to indulge a desire for "the best" architecture, where "a successful" architecture would do.
- beagle3 9y agoYou should be old enough to remember arsDigita was tightly coupled to Oracle, and the move to pgsql (iirc) in openars took forever. The main issues I faced in this respect are EOLing (specifically, by license change, or incompatible technical change - e.g. A 16 bit lib unavailable for 32 bit or a 32 bit lib unavailable for 64)
- icebraining 9y agoI question the utility. In my 27 years in this business I've never come across a database migration, for example. How much would you have come across if most applications implemented this pattern, though? There's some selection bias at play. Or to look at it from the other side: how many times have you come across a switch when this pattern was implicitly implemented in the application by virtue of using a standard protocol, like SMTP?