TDD and refactoring to patterns in C#: how to write a cron parser - Part 1

Starting today, we are commencing a series of articles on designing a very simple C# application, employing the best practices of software engineering, including test-driven development and refactoring.

Designing software is challenging, and designing good software is even more so. That's why best practices and guidelines have been established to avoid complexities and pitfalls. In this series of articles, we will delve into techniques such as test-driven development and progressive refactoring to create scalable software. The example we will use for illustration is a cron parser: given a string pattern representing an occurrence, we will display the next execution time.

Three authoritative textbooks (and bestsellers) on this topic merit consultation. They are widely recognized as standard references and are universally employed in courses.

Without further ado and as usual, let's begin with a few prerequisites to correctly understand the underlying concepts. Continue here.