Naming Things Is Hard

When making software, you have to name a lot of things. There are functions, classes, numbers, data models, etc., and they all need meaningful names to ensure better communication within a team.

Over the past few months, I’ve noticed a few things that make naming things hard in a software project. These difficulties may be stressful, but they also highlight the benefits of good naming conventions.
Read more on Naming Things Is Hard…

Intro to Mocking with Moq

It’s easy to overlook the importance of unit testing. Writing tests can be tedious. They must be updated constantly as code is refactored, and when you have a large code base, you may have to write many tests to even come close to testing all cases. Despite this, unit testing is a necessary part of creating clean, working code. One way to make the testing process easier is through the use of mocks. Read more on Intro to Mocking with Moq…

An Immutable Asynchronous State Holder in C#

Managing state in a clean way is probably one of the most challenging aspects of many software projects. When using asynchronous programming technologies such as .NET’s async/await functionality or the Reactive Observable pattern, the problem of state management is exacerbated and often becomes a source of errors.

In several projects that I have worked on over the last few years, we instituted a StateHolder class that eases the burden of managing state. Read more on An Immutable Asynchronous State Holder in C#…

Code Reviews as a Tool to Boost Productivity

Code reviews are an important part of the development process for many teams. One of the big reasons teams use them is to give reviewers the chance to identify mistakes in code before it is merged into the rest of the codebase, but they’re also a great way to share knowledge about the application with the team and boost productivity.

Read more on Code Reviews as a Tool to Boost Productivity…

Three Strategies for Maintaining an App on Two Platforms

If you want mobile apps for both Android and iOS, the cross-platform framework approach sounds pretty great, promising that you only have to develop the app once to run on multiple target platforms. Developing two separate apps sounds as if it will require fully twice as much work. Read more on Three Strategies for Maintaining an App on Two Platforms…

Keep Your Temporary Hacks Temporary with a Shame.cs

In every codebase of a certain age, there are dark corners. Unloved, poorly-lit classes that smell vaguely of moldering wood and mothballs. Methods that creak when a lonely dev walks by. Small trees poking out of reactive pipelines, drawing sustenance from thick, loamy beds of commented-out code. We’ve all wandered through those codebases. Lately, I’ve been tidying up a few cobwebby windowsills in mine with a trick that I picked up from Harry over at CSS Wizardry. Read more on Keep Your Temporary Hacks Temporary with a Shame.cs…

How to Read Code (Eight Things to Remember)

“I hate reading other people’s code” is a common refrain among software developers of all experience levels. However, it’s a necessary skill, especially for developers rolling onto existing codebases, and if you approach it with the right perspective and the right tools, it can be an enjoyable and enlightening experience. Read more on How to Read Code (Eight Things to Remember)…

How We Used a Week of Spikes to Map Out a Feature

For those uninitiated to agile software development, “a spike solution is a very simple program to explore potential solutions” to a particularly challenging problem. This term and definition comes from XP Explained by Kent Beck, and it is still as relevant today as it ever was.
Read more on How We Used a Week of Spikes to Map Out a Feature…

Why (and How) Developers Should Care about Design [Video]

Design is essential to software product development, and developers have a crucial role to play in good software design.

Atomic’s path to understanding what design does (and all the various activities covered by that seemingly simple word) began when our company was a few years old. We were turning out great code, and we were predictble with time and budget, but we’d started to notice that:

Read more on Why (and How) Developers Should Care about Design [Video]…