Предметно-ориентированное проектирование. Паттерны, принципы и методы — Писать программы легко - во всяком случае с нуля. Но изменить однажды написанный программный код, который создали другие разработчики или вы сами каких-то шесть лет тому назад, - гораздо сложнее. Программа работает, но вы не знаете точно, как именно.