Фундаментальный подход к программной архитектуре паттерны свойства проверенные методы