Some general useful programming techniques.
- Algorithm and Data Structures primer (incomplete)
- Binary heaps
- Hash tables
- Linked lists
- Balanced binary trees binary trees
- BSP trees
- Octrees and quadtrees
- Observer When an object changes state, other objects are notified
- State Changing object behavior depending on the state of an object
- Strategy Supplying different interchangeable variants of an algorithm in a class
- Template method Supplying an algorithm in which sub-classes can redefine certain steps without changing the overall algorithm
- Visitor Separating operations on an object from the object itself in an extendable way. The basis for "double dispatch".
- Singleton Implementing a class that has exactly one instance and a global point of access
- Abstract Factory Provide an interface for creating families of related or dependent objects without specifying their concrete classes.
- Builder Implementing a class that builds parts of a complex object.
- Composite Combining several objects into an object that has the same behavior as its parts
- Magnetism Making it easier and less frustrating to do precise targeting
- Shield Preventing that a critical action is performed by accident
- Context A single user command will perform the action appropriate to the context in which the command was issued
- Color Operations
- Endian Operations
- Vector Operations
- Fast 4x4 Matrix Inversion
- Height of a Point in a Triangle
- Event Driven Programming
- Self Defense in Game Development
- Global Variables
- C/C++ Header File Convention
- Double Dispatch
- Unit Testing
Here's an aggregation of criticism and appraisement in programming. To provide a broader perspective; if you are aware of anything you'd like to add, please contribute to this section!