Some general useful programming techniques.
Contents[show] |
[edit]
Data structures
- Algorithm and Data Structures primer (incomplete)
- Arrays
- Binary heaps
- Hash tables
- Linked lists
- Queues
- Stacks
- Trees
- Balanced binary trees
- BSP trees
- Octrees and quadtrees
[edit]
Design patterns
[edit]
Programming patterns
[edit]
Behavioral patterns
- 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".
[edit]
Creational patterns
- 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.
[edit]
Structural patterns
- Composite Combining several objects into an object that has the same behavior as its parts
[edit]
Usability patterns
- 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
[edit]
Error handling
[edit]
I/O
[edit]
Math Gems
- Color Operations
- Endian Operations
- Vector Operations
- Fast 4x4 Matrix Inversion
- Height of a Point in a Triangle
[edit]
Miscellaneous
[edit]