This is where it all comes together, finally! In this section, we’ll build a command-line TODO application. Let’s first define some requirements. Besides making this TODO app at least slightly useful, we obviously have another goal here: we want to learn how to think about, write, and structure an actual program.
The following requirements describe what our program should be able to do, without specifying how it goes about doing that. Here’s a little nugget of wisdom: you’ll often notice users asking for specific implementations instead of asking for functionality. Always try to get to the core of what a user wants to achieve. In other words, try to find the what and the why, even when that user is trying to explain the how.
Here are the what’s and why’s of our TODO app:
From these requirements, we can deduct some of the language features that we need:
Obviously, this program is incredibly simple. I could think of multiple ways to improve it, using all kinds of fancy libraries. And perhaps we will do so in a follow-up course. But for now, this will be pretty challenging already, and apply much of what we’ve learned so far.