14.3 Managing arguments and configuration in composite applications
When we have a complex suite (or system) of individual applications, they may share common features. The coordination of common features among many applications can become awkward. As a concrete example, imagine defining the various one-letter abbreviated options for command-line arguments. We might want all of our applications to use the -v option for verbose output. Ensuring that there are no conflicts among all the applications might require keeping some kind of master list of all options.
This kind of common configuration should be kept in only one place. Ideally, it would be in a common module, used throughout a family of applications.
Additionally, we often want to divorce the modules that perform useful work from the CLI. This lets us refactor the internal software design without changing the user’s understanding of how to use the application.
In this recipe, we’...