Entry tags:
Okay, that may qualify as too clever
There I was, coding along, and realized that this clause -- to unsubscribe from someone's presence when they change their IM handle -- also needs to be over there, for the case where they simply delete their IM handle. I copy the code from place A to B, think about it a minute, slap myself mentally, and decide that I should be extracting a method instead.
So I go to code A, invoke Eclipse's "Extract Method", and *poof*, I have a new method. I go over to B, to replace my copied code with a method call...
... and it's already been done for me.
On the one hand, that's exactly what I wanted. OTOH, it's kind of spooky. It hadn't even occurred to me that Extract Method would go looking for duplicate code and refactor that as well. It's probably usually correct, but managed to hit a button I wasn't even aware of -- the "Waitaminnit, that's *my* code! Don't screw with it!" response was quite visceral...
So I go to code A, invoke Eclipse's "Extract Method", and *poof*, I have a new method. I go over to B, to replace my copied code with a method call...
... and it's already been done for me.
On the one hand, that's exactly what I wanted. OTOH, it's kind of spooky. It hadn't even occurred to me that Extract Method would go looking for duplicate code and refactor that as well. It's probably usually correct, but managed to hit a button I wasn't even aware of -- the "Waitaminnit, that's *my* code! Don't screw with it!" response was quite visceral...
no subject
I would say it needs (at least) a dialog box saying what it did.
no subject
no subject
I do remember that back when I was using Idea for Java, it had little optional helpers that would point out when two pieces of code seemed to be doing the same thing, and suggest that you let it extract the method. What surprised me in particular was that it would generally work even if the two chunks of code operated on different variables; it would just turn them into method arguments.
no subject
I wonder if it really searched all your code, or if it maintains some memory of recent actions and tries to be clever. (Hey, he just copied this and now he's saying extract method... let's fix it for him.)
no subject
no subject
But that's me. I'd rather attack my code with a penknife than run it through a nanoassembler. If I need more complicated changes, I'll script them myself. (It helps to stick to high-level languages where small text changes can have large effects. The strategy is less useful in languages like Java, which lack metaprogramming and first-order functions.)
no subject
Maybe it's like taking your shirt off for the shower and finding your pants have come off suddenly too.