Ответ 1
Лучшей книгой, которую я когда-либо читал о OO, является Бертран Мейер Объектно-ориентированное программное обеспечение.
Его огромный, но это было очень полезно для меня. Он охватывает каждый отдельный аспект OO-дизайна IMVHO.
Я нахожусь в поиске хорошего OO-разработчика. OO интригует меня, потому что я понимаю шаблоны, знаю, почему композиция дает вам больше гибкости, чем наследование, и больше такой мудрости. Однако я пришел к выводу, что я знаю, как реализовать factory одноэлементного, , но я не знаю, как создать надежный дизайн OO.
У меня есть куча книг
Они могут быть очень хорошими книгами, но они не учат вас создавать приложение. Меня часто парализуют некоторые очень основополагающие решения (example). Я ищу книгу, которая учит, когда и почему. Есть много книг о молотках и гвоздях, но мне еще предстоит найти книгу, в которой вам рассказывается кое-что об их практических отношениях.
Какая книга была наиболее полезной для создания уверенного OO-архитектора/дизайнера?
Лучшей книгой, которую я когда-либо читал о OO, является Бертран Мейер Объектно-ориентированное программное обеспечение.
Его огромный, но это было очень полезно для меня. Он охватывает каждый отдельный аспект OO-дизайна IMVHO.
Большинство фундаментальных работ по объектной ориентации когда-либо публикуются. Это абсолютно необходимо иметь книгу для каждого "объектно-ориентированного" программиста.
2. " Объектно-ориентированный анализ и дизайн с приложениями" от Grady Booch и др.
Не так формально, как книга Мейера, но эта книга может открыть вам глаза на многие вопросы в объектно-ориентированном мире и в разработке программного обеспечения вообще
3. " Шаблоны проектирования: элементы многоразового объектно-ориентированного программного обеспечения" Эриха Гамма и др.
Это знаменитая книга "Банда четырех" о шаблонах дизайна
4. " Рефакторинг: улучшение дизайна существующего кода" Мартина Фаулера и др.
Это еще одна классическая книга. Первая часть прекрасно описывает многие проблемы, с которыми может столкнуться современный разработчик программного обеспечения во время своей работы: запахи кода, читаемость и производительность, преждевременные недостатки оптимизации и многие другие темы.
5. " Мышление в Java" от Брюса Эккеля
Эта книга может помочь многим новичкам не только на языке Java, но и в объектно-ориентированном мышлении.
6. " Touch of Class: обучение программированию с объектами и контрактами" Бертран Мейер
Отличный учебник известного автора.
Я полностью понимаю вашу ситуацию. Также есть три из этих книг;) Я бы предложил Head First edition. Объектно-ориентированный анализ и дизайн. Это поможет вам на правильном пути. Книга GoF великолепна, но бесполезна, пока вы не освоите основы в своей голове, и книга Head First позаботится об этом. Приветствия:)
На самом деле программирование - это большая помощь, чем чтение о программировании.
парализованный некоторыми очень фундаментальными решениями, является симптомом более глубокой проблемы - чрезмерной инженерии. Пока вы не строите много вещей, вы действительно не знаете, какие решения имеют значение, и которые не имеют значения.
Лучший способ получить необходимый опыт - построить много вещей.
Код Kata очень, очень важен. http://slott-softwarearchitect.blogspot.com/search/label/code-kata
Кроме того, я собрал кучу кода ката, который я использовал в одном большом проекте. http://homepage.mac.com/s_lott/books/oodesign.html
Роберт К. Мартин "Разработка гибких программных продуктов: принципы, шаблоны и практика", которые объясняют вам принципы OO
Эрик Эванс: "Domain Driven Design" занимается тем, как создать хороший дизайн, соответствующий вашей бизнес-проблеме.
Мартин Фаулер: "Шаблоны архитектуры корпоративных приложений" для основных принципов архитектуры предприятия
Старики, но лакомства.
Единственный способ узнать, является ли дизайн надежным, - это реализовать его. Существует не одна книга, которая научит вас, как создавать реалистичные проекты, это сводится к опыту и таланту. Тем не менее, я делаю второе голосование за книгу Бертрана Мейера - просто имейте в виду, что это не превратит вас в бога дизайна OO.
Крейг Ларман Применение UML и паттернов подробно рассказал о том, что я узнал из опыта. Что мне нравится в этом, так это то, что он затрагивает все аспекты разработки программного обеспечения, который включает в себя такие вещи, как итеративный дизайн и разработка. Не смотрите слишком сильно на использование UML: описания дизайна - это средство для достижения цели, и я нашел подход Лармана довольно прагматичным. Вы не можете просто кодировать: вы должны сообщить свои намерения (и понять, что нужно). UML и продуманный, хорошо прокомментированный код - вот некоторые из средств для достижения этой цели.
И, конечно, как говорят другие: ни одна книга не сделает вас хорошим разработчиком или дизайнером. Но это может ускорить процесс.
Для стартера я предлагаю Head First Объектно-ориентированный анализ и дизайн. Он поможет вам создать приложение OO простым интуитивным пошаговым способом.
Несмотря на то, что мы склоняемся к Rational UP, я нашел, что эти два предлагают много понимания дизайна OO.