I've read in Robert Martin's "Clean Code" that in the 80's Emacs was already capable of recording and playing back your coding session.
I just realised how much I'd learn from that practice, I'd love to profile myself!
However I really don't think it'd be very effective to record the screen (as in video) especially because Visual Studio is already unbearably slow and besides it'd be boring to seek the video in a player.
Instead, it would be really awesome to have some plugin that could record what I've coded (so not the debugging and visual designer, etc) and could play it back for me to see how much I suck and where.
Is this possible?
Edit: just a quote from the book to show how amusing this could be:
Bob enters the module.
He scrolls down to the function needing change.
He pauses, considering his options.
Oh, he’s scrolling up to the top of the module to check the initialization of a variable.
Now he scrolls back down and begins to type.
Ooops, he’s erasing what he typed!
He types it again.
He erases it again!
He types half of something else but then erases that!
He scrolls down to another function that calls the function he’s changing to see how it is called.
He scrolls back up and types the same code he just erased.
He pauses.
He erases that code again!
He pops up another window and looks at a subclass. Is that function overridden?
. . .
'
valid in the english language?) - even though I like to call them O'RLYs - but editing that to avoid misunderstanding and honor the author. – SunGetItDone();
it's more mantainable thanImReady(true, "I agree"); GetItDone(DateTime.Now); CleanUp(And.EmptyRecycleBinWhileYoureAtIt);
. A practical example of "done wrong" would be how the .NET BCL'sBitmap
class offers no encapsulation for fastSetPixel
withLockBits
. – Sundiff
as in "changelog". That's a good measure, actually. :) But I didn't understand what you mean by defining a domain-specific language. Do you mean mixing languages as you code? E.g. C# and F# in the same project? – Sun