Category Archives: practice

The Urge to Merge

Concurrent development of software in a team relies on being able to merge the changes from each person successfully.  Experienced developers will already know this, but there are theoretical limits on how effective merging can be.

Posted in Coding, practice | Tagged , , , , | 1 Comment

Grounding Design for the Real World

One common rabbit hole that programmers often fall into is creating designs for abstract capabilities that then prove to be useless in real life. To avoid this, we must focus on concrete real-world examples when designing capabilities.

Posted in Design, practice | Leave a comment

Don't Write Insulting Error Messages

Error messages are incredibly important in communicating to the user when something happened that the program was not designed to handle.  Programmers usually write these messages, and there are common pitfalls to avoid.

Posted in Coding, Design, practice | Tagged , , , , | Leave a comment

Extreme Precision Programming

What is “Extreme Precision Programming”?  It is a style of programming that aims to perform the intended function, while being very noisy about anything that deviates from the intended mode of behavior.  It is nothing like a complete methodology, but … Continue reading

Posted in Coding, Design, practice | Tagged , , | Leave a comment

It's OK to Ship Tests with Product

A product is a product, and testing is testing, and they should be kept separate, right?  The thinking goes that consumers would never want to test the product.  Of course they don’t, but they are not the only people in … Continue reading

Posted in Coding, Design, practice | Tagged | Leave a comment

Lots of Folders != Project more Organized

Making a development project with lots of folders does not mean that the project is more organized.  However, there is a seemingly irresistible desire to make a folder for every possible purpose, and then put the one or two files … Continue reading

Posted in Coding, practice | Tagged , , | Leave a comment

Avoid Unnecessary Conditional Nesting

Simply put: try to make your conditions as flat as possible.  This makes them generally easier for the humans to parse and understand. 

Posted in Coding, practice | Tagged , , | Leave a comment

Two Kinds of Exceptions

An exception is a message from the system to the user about something that the program can not handle. There are a couple of main categories of exceptions: environmental and program logic. They warrant quite different treatment.

Posted in Coding, Design, Poor Error Msg, practice | Tagged , , , , | Leave a comment

Brainless Getters & Setters are a Waste

Someone long ago set a pattern that all members should have a getter and setter method.  Some are persuaded that this is OO and this is encapsulation, so a lot of inexperienced programmers do this by default.  But this is … Continue reading

Posted in Coding, Example Code, practice | Tagged , , , , | Leave a comment

Don't Baby Your Builds

In a conversation this week, one developer insisted that a special build machine should be built to assure that the build is always comes out the same.  My response: if your project is building differently on different machines, then you … Continue reading

Posted in Coding, practice | Tagged , , , , | Leave a comment