Популярные фреймворки написаны весьма неплохо, их следует изучить (что-то можно почерпнуть из Zend'а, что-то из Yii и т.д.).
Из книг, которые просто не могут не помочь: "Совершенный код" (Макконнелл), "Рефакторинг. Улучшение существующего кода", "Архитектура корпоративных программных приложений" (обе — Фаулер).