1. Детерминированный автомат (схема перехода между состояниями).
2. MVC Модель - вид – контроллер (оптимизация отображения изменяющихся данных).
3. Клиент – сервер (только клиент посылает запросы)
4. Прокачка сообщений (Message Pump)
5. Стек
6. Рекурсия (нельзя изменять глобальное состояние)
7. Транзакция (система не изменяет состояние между началом и окончанием)
8. Функция (без состояния – повторная входимость, бывают вложенными, принимает аргументы, возвращает результат)
9. Копирование при записи (Copy on Write)
10. Маппинг Mapping (ассоциирование, идентификаторы, хэндлы, маппинг страниц)
11. Делегат (произвольное разделение, границы и пересечение областей общих данных кода и логики, четкость и понятность связей, неоднозначность разделения на элементы)
12. Обработка ошибок (перезапуск отказавшего компонента)
13. Семафор (совместный или взаимно-эксклюзивный доступ к общему элементу)
14. Хендл (идентификатор, разделение на реализацию и использование)
15. Наследование интерфейсов (полиморфизм в древовидной структуре)
16. Фабрика (унификация создания унифицированных элементов, бывает параметризированная)
17. Копирование и клонирование (Клонирование создает новую индивидуальность, дублируя содержимое вложенных объектов и воссоздавая внешние связи, а копирование только перемещает данные в памяти, дублируя только экземпляры содержащихся указателей)
18. Внедрение кода (Code Inject)
19. Пул объектов. (Pooling - ссылки на внутренности компонента, хранятся в отдельной подсистеме, и получают оттуда вызовы. Пример – оконная подсистема Windows)
20. Дерево (родители и дети, циклические связи, графы)
21. Pooling – регулярное периодическое действие, например опрос портов с интервалом 100 миллисекунд.
22. Кэширование (ускорение доступа к часто используемым данным)
23. Хеширование (ускорение сравнения)
24. Подсчёт ссылок (построение графов зависимостей, пакеты данных, структурные и смешанные элементы)
25. Граф (рёбра соединённые вершинами, дерево как частный случай, структурные шаблоны, вложенные структуры)
26. Взаимное блокирование (Cross Lock, deadlock)
27. RAID (Улучшение системы без улучшения отдельных элементов, Redundant Array of Independent Disks – Избыточный массив)
28. Поток инструкций (много поточность, совместный доступ к данным конечного автомата, нарушение фундаментального принципа, выстраивать потоки в одну очередь).
29. Виртуализация (Интерпретация, Трансляция, Подмена, Симуляция)
30. Асинхронный вызов (параллельное выполнение, способы передачи данных)
31. Отложенные вычисления (средство сокращения избыточных вычислений, средство борьбы со скрытой рекурсией, не работает для функций с внутренним состоянием)
32. Read Modify Write (транзакционность, отменяемость в случае ошибки, RISC конвеер)
33. ABA Problem
34. Priority inversion (ceiling protoco, Avoid blocking)