4 ms·
Visited a customer recently who had inherited a monorepo. All their CI and release problems traced back to it. At the risk of sounding like an old git, packag
by EngineerBetter 8y ago
Visited a customer recently who had inherited a monorepo.
All their CI and release problems traced back to it.
At the risk of sounding like an old git, package coupling and package cohesion principles were defined for a reason.
I do feel like a lot of patterns in contemporary development are kneejerk reactions to how last generation's programmers did things.
Exceptions? Nah, multiple returns!
Dependency management? Who needs it... Oh, wait.
Many small, single-responsibility repos? Wang it all in one, and then invent your own tooling to cope with it!
- rauhl 8y ago> Wang it all in one, and then invent your own tooling to cope with it! Why don’t you believe that additional tooling is required to manage software whose sources are composed from multiple repositories?
- EngineerBetter 8y agoThing is, that's been solved problem in open source at least since Ivy.
- fnord123 8y ago>Exceptions? Nah, multiple returns! Dependency management? Who needs it... Oh, wait. I thought consensus was that exceptions, like OOP, is an antipattern. I guess there's room for different opinions. :-/
- EngineerBetter 8y agoConsensus could be a synonym here for 'current trends'. I see no advantage of returning error types over checked exceptions. I'm happy to be informed, though.
- jenscow 8y agoYou obviously haven't written any win32 applications :) Where a function may return zero, non-zero, not-ERROR_SUCCESS, INVALID_HANDLE, NULL, (there's more), to indicate an error. You then need to call GetLastError which gives you a number that you input into google to get a generic error message. You "should" also wrap every api call in this error checking so you know where the failure began.
- jen20 8y agoI would not assume there is _any_ consensus at all that object orientation (as defined by Kay, not by C++) is an anti-pattern.
- marcosdumay 8y agoThere is a largely held opinion (that I share) that exceptions are a dated pattern that is better replaced by the more modern alternatives. They are still much better than the older patterns they were created to replace, like multiple return.
- fnord123 8y agoGo uses multiple returns. Rust uses Result<T, E>