In previous chapters, we emphasized the importance of separating functionality, structure, and style. Another important separation that we haven’t touched upon is the separation of code and configuration. Once the project’s configuration becomes a separate component, new questions start to arise, such as what file format to use, what should be treated as configuration vs. what should be hard-coded, how to temporarily override the configuration, and more.
Being mindful about how the project’s configuration is handled is an essential step toward making the project robust, resilient to ...