The Dark Side of Convention over Configuration

I see a lot of development advice that assumes the developer is working on a green field application. Many of the tools that “make a developer’s life easier” are also designed mostly for use in creating new applications. Most of my experience as a professional developer (or whichever title you prefer) has been improving and… Read More »

Aphorism Driven Development (ADD)

Over the years I have noticed a habit among some developers that I’ve come to call Aphorism Driven Development. Many best practices are taught and remembered through the use pithy statements. Although these statements are easy to remember, they can’t capture the full context and connotations of the practice in question. If someone never learns… Read More »

Optional Values in Rust

Let’s say we are writing some code to retrieve data from a database. If the data we are looking for is there, we can obviously return it. If there is no data that matches our search, we need to signal that we did not find it. In many languages, we use a nil, null, or… Read More »

Rust Error Handling, Part Two

In the previous post, I covered a quick overview of error handling approaches in different languages. Then, I introduced Rust’s error handling using the Result<T, E> enum. This time we’ll look at how Rust’s approach improves on other techniques. Compared to Error Returns Returning a Result<T, E> from a function is very much like the… Read More »

Rust Error Handling, Part One

For the last couple of years, I’ve been learning Rust in my free time (ha!) by working on side projects. Since I don’t really have a deadline, I can focus on seeing how Rust changes the way I think about programming. A language that doesn’t affect the way you think about programming is not worth… Read More »

“Real” Programming

A recent article ‘Real’ Programming Is an Elitist Myth hit a couple of points that I have been explaining to people for years. Although the author makes a few interesting points, he misses several more. The author describes a system written using a “database as a service” system with little to no code, that solves… Read More »

Git Feature Branches

Git makes working with branches extremely easy. Especially compared to many of the version control systems that came before it. This has resulted in a standard workflow involving feature branches. The idea is to branch from master when you begin developing a new feature. You do all of your development on that branch. When the… Read More »