4 ms·
It's only anecdotal, but I feel the opposite.
by denim_chicken 11y ago
It's only anecdotal, but I feel the opposite.
- chriswarbo 11y agoReally? I'd genuinely love to see some examples. I've joined several projects in their maintenance phase which had no tests, and introduced some as I went about debugging, adding features, etc. Since the code was often untestable, I'd make a few refactorings over and over again to allow testing, and these just-so-happen to tease apart the pure computation from the effects; in essence making the code more functional. An obvious example is to turn implicit state into explicit parameters, eg. // BEFORE function foo(x, y) { b = x + y + a; } // AFTER function foo(x, y) { b = foo_pure(x, y, a); } function foo_pure(x, y, z) { return x + y + z; } This doesn't make `foo` more functional or easier to test; but testing `foo_pure` is trivial. In particular this makes debugging logic errors much easier; since there's no need for elaborate/brittle test setup (eg. setting all the right globals, creating and cleaning up files, etc.).