Имею почти 6-летний опыт разработки приложений с использованием технологий .net. На протяжении многих лет я улучшался как лучший программист OO, но когда я вижу код, написанный другими ребятами (особенно Джеффри Рихтером, Питером Голде, Айенде Рахиеном, Джереми Миллером и т.д.), Я чувствую, что между моим и их конструкций. Я обычно разрабатываю свои классы "на лету" с некоторой помощью таких инструментов, как ReSharper для рефакторинга и организации кода.
Итак, мой вопрос: "Что нужно, чтобы стать лучшим программистом OO". Это
a) Опыт
b) Книги (обратитесь пожалуйста)
c) Процесс (tdd или uml)
d) шаблоны
e) что-нибудь еще?
И как следует утверждать, что дизайн хорош, прост в понимании и обслуживании. Поскольку в промышленности так много ключевых слов, как инъекция зависимостей, IoC, MVC, MVP и т.д., Где нужно сконцентрироваться больше на дизайне. Я чувствую, что абстракция - это ключ. Что еще?