At the surface, concurrency is a fairly straightforward concept: it is a process that describes two or more tasks…
“Hope is not a design method.”
Previously, I wrote a short blog post on the overarching problems in building software. This post is a bit more promising, more specific, and outlines Michael T. Nygard’s suggestions for making your code better handle…
In its most simplest definition, a factory is an object that creates other objects. The purpose is to create…
Good design strives for loosely-coupled designs between objects that interact. The rule of thumb is that they should be…
I get a funny feeling about mocking objects and stubbing methods when testing. Take my current project, wherein I’m not permitted to use any mocking framework. Instead, I create mock classes that have the same method signature as the real class. The only…
Alas, I’ve built my Java HTTP server and it is working!
And passing Cob Spec acceptance tests!
Beyond this initial excitement of “oh, it’s working!”, it is very important to assess the quality of the code — to ensure that…
I find solace in the fact that software development is not a matter of life and death.
“We will prepare for the armies of illogical users who do crazy, unpredictable things.”
— Michael T. Nygard
[Insert relevant political commentary here].
The other day, I did a lot of refactoring. Namely, regretting the original names of interfaces and methods and variables sprinkled throughout my code. So, I’ve been using git grep a lot lately for simply searching through my (relatively) extensive codebase. But how do I edit and replace all usages…
git grep