Шаблоны проектирования (Design patterns)
Самое сложное в программировании – не набивание кода, а создание архитектуры программы. Удачные кусочки архитектур можно позаимствовать у других и применить в своих программах, такие кусочки называются “шаблонами проектирования”.