3 ms·
>>Monoliths assume that every single developer that will ever touch that codebase will do the right thing. << This is just false, there are pull requests, revi
by xxs 9y ago
>>Monoliths assume that every single developer that will ever touch that codebase will do the right thing. <<
This is just false, there are pull requests, reviews and all. Morealso there are modules and just because you can deploy the 'monolith' as a single process and use shared memory doesn't mean you can't add/remove parts or have to compile all at once.
Analogy with microservices - your login service is borked. The rest of your site is kind of useless even if perfectly operational.
- threeseed 9y agoPull requests are a relatively new concept to software development. So if you're working on an existing project then chances are the model that was used was "as long as the unit/style tests pass it's fine". And of course there's the very common "we have a fixed deadline so let's just cut this corner and we'll fix it up later". And in the Java world at least modules aren't real. They are purely logical constructs that developers can work around by importing from packages in other modules. And creating the spaghetti code problem again.
- pferde 9y agoIt's not really that new, it's just the term "pull request" that's new. I've worked in several projects where prior to committing code change, it was shared out to the team in form of a patch, feedback gathered, and only when everybody was happy with it, it got committed. Or, a bit dirtier solution - a commit was made with an explicit request for a closer review from the rest of the team.
- xxs 9y agoI'd say the microservices fad is newer than the distributed source repositories but disregarding something because deemed 'new' doesn't make a good argument. And in the Java world at least modules aren't real. The statement shows lack of understanding how modules should be utilized (it has very little to do with packages). Interfaces (can) do exactly the same what protocols in microservices do. Enforcing that might be harder but facades/proxies ensure there would be no (feasible) way to bypass. There is no substitute for good data models/responsibility.