Mastermind


Details
We continue pursuing the "Mastermind" game. Last week we introduced the Mastermind game and talked about what makes code clean. Our initial focus was on the project structure: component vs feature organization and what it means to have a "screaming architecture". This resulted in some changes to the project structure, so grab a new copy from GitHub or pull the changes: https://github.com/cleancoderscollaborative/mastermind. What we learned was that organizing by features, what Uncle Bob calls "use cases" is a much better approach. But, you still may have some framework constraints that cannot be avoided.
Our goal is to use the project and explore using tools, techniques, and design principles and patterns to build better software. This will be our project over an indeterminate number of weeks. We could even build the game!
This is not a lecture. This is a group effort. Some folks may have more experience than others, and even those of us who have been writing code for decades are always learning something new. Those who are new to the game have new ideas and we welcome the input!
This is not introduction to computer programming. This is the next level, the tools and knowledge to build better code! As a group we will explore the requirements of the Mastermind application, prioritize what we want to work on, build some code leveraging principles and practices, and refactor it to make it better!
If you cannot make every meetup, that is OK. We expect that folks may join in the middle of the project or have to skip sessions. You will still be able to follow along, ask questions, and be involved in the discussion.
To make this loose format work all of the development that we do in each meetup will be committed to a GitHub repository at [https://github.com/cleancoderscollaborative/mastermind](https://github.com/cleancoderscollaborative/mastermind). When you visit the repository as a newcomer don't be overwhelmed! The long read-me provides detailed instructions for how to setup the software development environment on your own local Mac, Windows, or Linux machine. Or, if you prefer, a free online environment with a GitHub Codespace! If you have experience, maybe you will not need all of those instructions :)

Mastermind