I find myself often pasting websites and resources I have collected over the years into Discord chats. I thought I'd start putting them into articles here so I can just link to them as needed.
- Design Patterns: Elements of Reusable Object-Oriented Software - The classic C++ OOP book.
- Design Patterns | Object Oriented Design - This is a good website that has examples of general OOP Design Patterns, including example code in Java. The principles can be applied to any programming language:
- Patterns of Enterprise Application Architecture - Enterprise Application Patterns. This should be the go to reference for anyone designing Enterprise Applications. There's also much general architecture wisdom in the book, so worth a read whatever you are doing. A summary of the patterns is available at Catalog of Patterns of Enterprise Application Architecture
- Head First Design Patterns (2nd ed.) - A more modern book looking at Design Patterns. The examples are in Java, but it can be applied to many programming languages.
- SOLID Principles - A Wikipedia page explaining the SOLID principles for OO Design.
Game Specific OOP
- The Entity-Component-System - An awesome game-design pattern in C++ (Part 1) - A Game Developer Magazine article on the Entity Component System Design Pattern, which is commonly used in game engines. I believe it can also be applied to Big Data systems.
- Game Programming Patterns - A book on Patterns for game programming. Reccomended by my friends, I haven't yet read it myself.
- Game Engine Architecture - A book on Game Engine Architecture. Detailed and high level.
- 3D Game Engine Architecture - It seem like this book has become hard to find. A guided walk-through of the architecture of a 3D game engine.