Smelly Tic Tac Toe
We created a very smelly implementation of TicTacToe. There are quite a few code smells in the implementation:
- Primitive obsession
- Feature envy
- Data class
- Message chain
- Long method
- Comments
- Long parameter list
- Shotgun surgery
- Duplicated code
- Large class
- Divergent change
- Data clump
- Lazy class
- Dead code
Start by identifying the smells and then slowly refactor the code. Remember to keep the tests passing at all times during the refactor. It's ok to revert back to a previous working state at any moment.