3 ms·
> Well, what's the culprit? A? B? C? D? E? F? Probably, the one you just changed. How often is it really going to be that hard to debug?
by andrewflnr 7y ago
> Well, what's the culprit? A? B? C? D? E? F?
Probably, the one you just changed. How often is it really going to be that hard to debug?
- thfuran 7y agoI only changed L, which is nominally unrelated to all of those. You thought this was a clean, well-modularized codebase?
- JohnBooty 7y agoYou thought this was a clean, well-modularized codebase? Well, even if it's nice and clean A, B, C, D, E are each going to have their own dependencies!
- JohnBooty 7y agoIf you change B and the A/B/C/D/E integration test breaks.... duh, it's obvious. Yes, that's easy. But A, B, C, D, E are each going to have their own dependencies. You could change X, Y, and Z and now the A/B/C/D/E integration test breaks. Which one was it? Or maybe you're super cautious and you only change Z. And now the A/B/C/D/E integration test breaks. Obviously it's Z. But how? Why? It's a four-developer team and you're only really familiar with R, S, T, U, V, W, X, Y, and Z. There's also the fact that unit tests serve as living, de facto documentation on how to actually use the classes. You can both use and iterate upon Z a lot faster and more confidently if it has its own tests.
- foobiekr 7y agoThe overuse of overly granular services can make this pretty awful unless you've put event tracing in place. I mean, the obvious answer is don't do that, but this is the world people are embracing.