
Введение в объектно-ориентированный дизайн с Java
Описание
Эта книга предназначена для опытных Java-разработчиков, стремящихся расширить свои знания в области объектно-ориентированного анализа и проектирования программного обеспечения. Вы изучите ключевые принципы и паттерны объектно-ориентированного дизайна, применяемые при создании программных систем на Java. Научитесь моделировать системы с помощью UML-диаграмм, освоите основные понятия и принципы объектно-ориентированного подхода, изучите порождающие, структурные и поведенческие шаблоны проектирования. Книга поможет вам создавать модульное, гибкое и многоразовое программное обеспечение, используя принципы и паттерны объектно-ориентированного дизайна.
Что такое дизайн и архитектура программного обеспечения?
И как это может улучшить программные продукты?
Давайте рассмотрим сценарий.
Предположим, вы присоединяетесь к проекту, который находится уже в разработке некоторое время.
Вы смотрите на код проекта, и вы не можете понять, для чего предназначены эти куски кода, так как он плохо организован, и проектной документации не существует.
Вы даже не знаете, с чего начать.
Это все признаки того, что проект не был хорошо разработан с самого начала.
Или, допустим, вы сейчас работаете над персональным проектом.
Когда вы начинали, вы не были уверены, какая конкретно функциональность должна быть реализована, но тем не менее вы начали кодирование.
Для вас не имело значения, что код будет неорганизованным, потому что вы были единственным, кто работал над проектом.
И предположим, вы придумали замечательную новую функцию для своего продукта, но при ее реализации вы нарушили программу в других местах. И теперь вы должны все исправлять во многих местах своего кода.
Чего не произошло бы, если бы вы правильно и хорошо с самого начала спроектировали бы свой продукт.
И такие сценарии довольно часто встречаются в индустрии программного обеспечения, что показывает, почему дизайн и архитектура программного обеспечения так полезны.
В этом разделе вы узнаете, как применять принципы и паттерны дизайна и архитектуры для создания многоразовых и гибких программных систем. Вы узнаете, как задокументировать дизайн и архитектуру программного продукта визуально.
Итак, в чем разница между дизайном программного обеспечения и архитектурой программного обеспечения?
Роль дизайнера программного обеспечения или архитектора программного обеспечения может сильно отличаться от компании к компании.
На это влияют такие характеристики, как размер компании, объем проекта, опыт команды разработчиков, организационная структура и возраст компании.
В некоторых компаниях могут работать отдельные дизайнеры или архитекторы.
В других компаниях эта работа может выполняться членом или членами команды разработчиков.
И как правило, дизайнер программного обеспечения отвечает за определение программного решения для конкретной проблемы путем проектирования деталей отдельных компонентов и их обязанностей.
Дизайнер программного обеспечения отвечает за просмотр всей системы и выбор подходящих фреймворков, систем хранения данных, за решения и определения взаимодействий компонентов друг с другом.
И это подводит нас к основному различию между дизайном программного обеспечения и архитектором программного обеспечения.
Дизайнер программного обеспечения смотрит на аспекты системы более низкого уровня, тогда как архитектор программного обеспечения работает с более крупной картиной – с более высокими аспектами системы.
Подумайте об этом, как о проектировании здания.
Архитектор сосредотачивается на основных структурах и службах, в то время как дизайнер интерьера фокусируется на меньших пространствах внутри здания.
Дизайн программного обеспечения – это процесс превращения пожеланий и требований заказчика в рабочий код, который является стабильным и поддерживаемым в долгосрочной перспективе, и может быть развит и стать частью более крупной системы.
Архитектура программного обеспечения в первую очередь начинается с понимания того, в чем состоит бизнес-задача, которую должен решить клиент.
И основная задача заключается в том, чтобы выяснить, чего хочет клиент, тогда можно двигаться дальше.
Потому что, если вы понимаете задачу, вы можете начать думать о возможных решениях, а затем вы начинаете понимать, как будет выглядеть общее решение.
И архитектура важна, потому что, если вы ошибетесь, ваш проект не удастся.
Все просто.
Мы знаем это в области строительства, и мы это знаем в области программного обеспечения.
Архитектура – это понимание взаимосвязи между требованиями пользователя и способностью создавать систему, которая будет обеспечивать эти требования.
При этом самая большая проблема, с которой мы сталкиваемся, – это понимание проблемы клиента.
Что он действительно хочет сделать?
И во многих случаях клиент фактически не знает, что он хочет делать. Он приходит лишь с частичным пониманием, смутным чувством, что он может сделать что-то лучше.
И одна из первых задач состоит в том, чтобы помочь ему лучше понять его проблему.
Задача архитекторов программного обеспечения – это взаимодействие между продуктом, клиентом и инженерными командами.
Архитектор программного обеспечения похож на архитектора здания. И он отвечает за общую концептуальную целостность проекта.
Возможно, вы слышали термин «объектно-ориентированное моделирование».
Что это?
При решении задачи, объектно-ориентированное моделирование включает в себя практику представления ключевых понятий через объекты в вашем программном обеспечении.
И в зависимости от задачи многие концепции становятся отдельными объектами в программном обеспечении.
Подумайте об объектах.
Вокруг нас все объекты.
Похожие книги

1С: Управление небольшой фирмой 8.2 с нуля. 100 уроков для начинающих
Эта книга – ваш полный гид по работе с программой 1С:Управление небольшой фирмой 8.2. Вы научитесь автоматизировать управленческий учет основных операций, а также процессы маркетинга и кадрового планирования. Подробные уроки охватывают все аспекты деятельности современного предприятия, от ввода данных до формирования отчетов. Практические примеры и рекомендации основаны на реальных ситуациях, гарантируя эффективное применение полученных знаний. Изучите все возможности программы 1С:Управление небольшой фирмой 8.2 с нуля, шаг за шагом.

Искусство программирования для Unix
Эта книга не просто руководство по Unix, а исследование его философии и культуры. Она не ориентирована на технические подробности, а на понимание "почему это следует сделать", а не "как". Автор, Эрик Стивен Реймонд, обращается к опыту ведущих разработчиков Unix, чтобы показать, как коллективная культура и традиции влияют на создание эффективных и устойчивых программ. Книга разделена на четыре части: Контекст, Проектирование, Реализация и Сообщество. Каждый раздел раскрывает различные аспекты Unix-культуры, от истории и философии до практических рекомендаций для программистов. Книга подходит для тех, кто хочет понять не только "как", но и "почему" Unix-программирование так эффективно. Понимание принципов проектирования, заложенных в Unix, поможет вам создавать более качественные и гибкие программы.

Основы объектно-ориентированного программирования
Этот фундаментальный учебник посвящен основам объектно-ориентированного программирования и программной инженерии. В нем излагаются ключевые понятия объектной технологии: классы, объекты, управление памятью, типизация, наследование и универсализация. Особое внимание уделяется проектированию по контракту и обработке исключений, как важным механизмам для обеспечения корректности и устойчивости программных систем. Книга основана на работах Б. Мейера и предлагает глубокое понимание объектно-ориентированного программирования.

Искусство вторжения
Эта книга, написанная Кевином Митником и Вильямом Саймоном, представляет собой увлекательный сборник историй о хакерских вторжениях. Авторы, являющиеся экспертами в области кибербезопасности, рассказывают о реальных историях взломов, подчеркивая не только технические аспекты, но и мотивы, риски и последствия таких действий. Книга предоставляет уникальный взгляд на мир хакеров, позволяя читателям понять сложную динамику киберпреступности и кибербезопасности. Она не только повествует о хакерских приключениях, но и служит ценным руководством для профессионалов в области информационных технологий, позволяя им повысить уровень безопасности своих систем. Книга также будет интересна широкому кругу читателей, интересующихся криминальными историями и приключениями.
