WTF (╯°□°)╯︵ ┻━┻
Most programmers are familiar with this iconic comic:
And anyone who has ever done code review or even just tried to read code knows how true this is.
Well, I've been doing more code reviews lately, and I found myself wishing I had an easy way to record those moments that just make me go: "WTF".
Seriously, though, it's useful to keep a log of your thoughts while doing code review for later summary. I thought it might be even better to timestamp those thoughts. That way, I could quantify exactly how much of my life had been wasted on crappy code. Inspired by the comic above, I also wanted to generate a WTF/min score as a useful (stretching that word) code review benchmark.
It's also just plain cathartic to pound out a WTF or two if ever you find yourself looking at very. bad. code.
WTF is a single, dependency-free Python file. I recommend Python 3.3 and above.
To record a WTF moment, just execute it:
By default this will write a timestamp to a file in the local directory called 'wtfs.txt'.
Want to add some detail about the sheer idiocy that's blowing your mind right now? Just use the
--message argument (
-m for short). Make sure your message is in quotes (just like
git commit -m):
./wtf.py -m "Why the hell would someone indent with tabs in this module, when all of the other modules use spaces!? ARG1!@!fk.dfaskdnfasvnowe"
You can change the location of the output file with the
./wtf.py -m "I just can't even." -o code-review-01.txt
And finally, you can get summary stats with the
-r options. Just supply the name of the file to read:
./wtf.py -r code-review-01.txt
And you'll get an output like this:
Total WTFs: 35 Duration (minutes): 20.54 WTFs/min: 1.704
./wtf.py -h to see the complete usage info:
usage: wtf.py [-h] [-m MESSAGE] [-o OUTFILE] [-r READ] Easily record WTF moments. optional arguments: -h, --help show this help message and exit -m MESSAGE, --message MESSAGE Record the thing that made you go WTF -o OUTFILE, --outfile OUTFILE Specify a filename for your WTF log. -r READ, --read READ Read a WTF log file. Outputs stats and WTFs per minute.