Had to work with some code I wrote a few years ago where I went maximally polymorphic for the hell of it - it was just as painful as when working with badly documented and poorly tested dynamically checked code.
To try to exemplify that, the less you presume about your inputs (i.e. the more abstract your types), the less chance there is of presuming something incorrectly.
-
-
You can define the most generic, parametric method, and there can be only one possible way of implementing it (typesafely). That becomes less true the more concrete your inputs are. There becomes more chance you'll have to revisit that method. That's more technical debt.
-
Unless your specifications are complete and immutable when you write code, the odds of revisiting *any* function are high. Specs change. Unmaintainable code *can* be worse than buggy code - you can fix a bug if you understand the code, you can't maintain code that makes no sense.
End of conversation
New conversation -
Loading seems to be taking a while.
Twitter may be over capacity or experiencing a momentary hiccup. Try again or visit Twitter Status for more information.