ide supported refactoring has changed my mind

Modern IDEs can do some really crazy stuff.

For example, I just executed an automatic refactoring to extract a parameter object for a method in IntelliJ. It automatically created an inner class with the required fields, and a constructor to support them, and then found all usages of the method and converted them to create new instances of the parameter object.

The point is that I modified 3 or 4 files with one command, and I've gotten used to being able to do so safely and quickly, for a pretty good variety of transforms. I have a button on my sidecar dedicated to "rename."

The 'safely' part is amazing to me; it's a game changer in my opinion. Software engineering, and programming languages even, have evolved around the idea of localizing information as much as possible, and separating concerns as a discipline because it isolates the system from cascading changes.

But.. when my tools support safely and easily cascading changes across my project, those design concerns may become less important, and it raises the question* of what we could gain if we eased those constraints a bit.. Perhaps some conceptual clarity, conciseness, or readability?

Which reminds me, when I have all the money, I want to start or fund tiny little non-profits to write excellent free and open-source software. It's a form of philanthropy that appeals to me.

*I refuse to use the term "begs the question" because I think that phrase is simply bait for people to tell you that you're using it wrong. Kindof like I refuse to use the word "ironic."

No comments:

Post a Comment