Category Archives: Design

Translatable Error Messages

This is the first of a series of posts, I want to go over some of the groundwork of what it takes to make exceptions localizable into other languages. Nothing new here, but just want to explain clearly the requirements … Continue reading

Posted in Coding, Design, Uncategorized | Tagged , , | 3 Comments

Context Error Reporting

One of the biggest mistakes I see programmers make when writing an error message is to forget to include details about the context into the message.  The message effectively “assumes” that the reader knows the context, but that assumption is … Continue reading

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

Caching for Chrome

One of the biggest questions I see posted on internet discussion boards is “Why didn’t Chrome get the recent file?”  By default, Chrome is more aggressive on it’s caching than either Mozilla or IE.  Here are some answers to these … Continue reading

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

Excessive Branch Use Causes Technical Debt and Increases Risk of Bugs

Agile practitioners already know that technical debt is that accumulation of unfinished work can cause projects to be late late late.  Building up a lot of technical debt is a problem because the debt needs to be payed before you … Continue reading

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

Abstraction and Encapsulation

Abstraction and encapsulation are opposite sides of the same coin, and essential to good object oriented software design.  Why the, is there a tendency of some programmers to go in exactly the opposite direction?  This trend and its implication is … Continue reading

Posted in Coding, Design | Tagged , , | Leave a 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

When are "best practices" less than best?

A “best practice” is a heuristic which is used to guide early stages of a project, in order to set some patterns.  When should you use them?  More important: when are you justified in ignoring a best practice?

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