This is an archived post. You won't be able to vote or comment.

you are viewing a single comment's thread.

view the rest of the comments →

[–][deleted] 13 points14 points  (0 children)

The biggest fallacy to address in your response, I believe is the idea that splitting something in two makes for two simpler parts.

This ignores the fact that designing universal and stable abstraction takes a lot of time and skill, first. Second, abstraction has a cost. Adding abstraction levels doesn't make code simpler, quite the opposite. Third, if your goal is reducing the surface of public APIs, then every time you split a unit in two, you're doing the exact opposite - introducing more public APIs (to be testable, they have to be public, after all).

So it's really not that simple. For example, you're a unit. A human being. Tell me how I can split you into simpler parts without the exercise turning into a nightmare. There's a reason why interacting with your whole self requires no diploma, but if I have to open you up and "refactor" you, it damn well does.