Over the past two weeks, I've come across several useful articles, blog posts, and cheatsheets worth revisiting, either because they provide good reference information or talk about concepts that will take some time for me to fully digest. So I've decided to do a (semiregular?) roundup of links so I can spare my browser the neverending tab spawn.
The Transformation Priority Premise: My mentor sent me this blog post to read last week. It is an attempt to systematize, in a way, how one chooses to implement code that makes a unit test pass. What I find particularly intriguing is the idea that there could be generalizable principles that underlie the TDD process. TDD itself to me seems like a generalizable approach to software development, as Uncle Bob himself suggests towards the end of this post:
The sequence of tests, transformations, and refactorings may just be a formal proof of correctness.
(Beck also alludes to this possibility at the end of Test-Driven Development by Example when he mentions the behavior of complex systems. On my own end, I can see several parallels to the process of biological evolution; maybe that can be a topic for a future blog post.) Anyway, maybe if you can systematize the "transformations" during TDD, maybe you can also build software that can write software. (I guess that is already being done, to a certain extent, with machine learning, but I don't think they incorporate TDD. I should read up on this subject more; it's so satisfyingly recursive.)
TDD Patterns: Humble Object: I think I stumbled across this link while reading Stack Overflow. I suspect it will become especially useful when I start trying to build the actual I/O part of my current project (building a command-line tic-tac-toe in Java). I also appreciate the API example because I've been wondering how you do TDD on web development projects, and this post illustrates that pretty well.
How to Write Unmaintainable Code: Really hilarious but also describes a number of bad habits that I would like to remember to avoid.
Web Design in 4 Minutes: Not directly related to anything I'm doing at work right now but I have two side projects involving building web sites, and I'm pretty weak on the front-end part.
How I Slack: All the Slack keyboard shortcuts one could ever need.
Vim Cheat Sheet: I've been using
vim for almost six
years now as my text editor of choice, but I definitely do not use it to full
Tmux Cheat Sheet: Recently switched from using
tmux, so I'm still in the process of trying to memorize the