Верные суждения — результат опыта, а опыт — результат неверных суждений. Фред Брукс (Fred Brooks) П



Скачать 64.36 Kb.
Pdf просмотр
Дата18.12.2016
Размер64.36 Kb.
Просмотров265
Скачиваний0

Введение
Верные суждения — результат опыта,
а опыт — результат неверных суждений.
Фред Брукс (Fred Brooks)
П
о нашему мнению, эта цитата точно выражает сущность архитектуры программ- ного обеспечения и роль архитекторов. Для правильного выбора архитектуры программного обеспечения необходимо выносить суждения, потому что не все сце- нарии одинаковые. Для того чтобы выносить правильные суждения, необходим опыт, но в нашем несовершенном мире опыт является результатом ошибок и неправильных решений, т.е. неверных суждений.
В то же время мир, в котором мы живем, часто не дает возможности (и даже вре- мени) для формирования собственных суждений, основанных на опыте, благодаря которым можно прийти к правильным решениям. Как правило, руководители хотят, чтобы архитекторы моментально находили правильные архитектурные решения.
Мы написали эту книгу прежде всего для того, чтобы дать читателям надежные, допускающие повторное использование и легкодоступные базовые знания об архи- тектуре программного обеспечения. За последние годы мы закончили несколько про- ектов, используя такие технологии, как Microsoft Windows DNA, Distributed COM, многоярусный CRUD, SOA, DDD, CQRS и генерирование событий. Мы использовали языки программирования Microsoft Visual Basic 6, а также C#, C ++, Java и JavaScript и видели, что технические решения часто изменяются, а перспективы этих подходов эволюционируют.
В итоге мы пришли к тому же самому заключению, что и Фред Брукс (Fred Brooks).
Мы не врачи, не носим белые халаты и не выписываем рецепты. Наша цель — собрать разные решения, снабдить их своими аннотациями и комментариями и сделать чест- ные выводы на основе фактов и перспектив.
В то время как разработчиков и архитекторов просят принимать решения правиль- но и сразу, мы предлагаем снимок знаний — готовый дайджест выводов архитекто- ров программного обеспечения, который можно использовать в качестве отправной точки для дальнейшего исследования и формирования собственных суждений. Если бы архитектура программного обеспечения была теоремой, эта книга (мы надеемся) содержала бы коллекцию необходимых аннотаций.
01_ch00.indd 13 04.12.2015 14:06:41

Введение
14
Структура книги
У архитектуры программного обеспечения есть предусловия (принципы разра- ботки) и одно постусловие (реализованная система, которая приводит к ожидаемым результатам). Часть I, “Основы”, посвящена основам архитектуры программного обе- спечения. В ней рассматриваются роль архитектора, внутренняя механика проектов программного обеспечения и основные аспекты — управляемость и понятность, — которые превращают обычное программное обеспечение в программное обеспечение высшего качества.
Часть II, “Разработка архитектуры”, посвящена самым верхним уровням, форми- рующим типичную систему предприятия: уровень представления и уровень бизнес- логики. Третий уровень — канонический уровень доступа к данным — мы отложили на будущее. Мы предлагаем относительно новый подход к проектированию системы под названием UX-first (User eXperience first — ориентация на опыт взаимодействия).
Это ориентированная на задачи методология, которая приводит к командам и собы- тиям предметной области, начиная с согласования макетов и экранов. В проектирова- нии, ориентированном на задачи, модель предметной области не играет главной роли, а уровень доступа к данным представляет собой просто часть инфраструктуры и не обязательно основан на канонических реляционных таблицах. Однако самая большая глава второй части, которую необходимо прочитать всем, — это глава 5, “Выявле- ние архитектуры предметной области”. Коротко говоря, в этой главе утверждается, что только глубокое понимание предметной области может привести к выявлению соответствующей архитектуры. И возможно, что еще более важно, получающаяся архитектура не должна быть единственной архитектурой верхнего уровня для все- го приложения. По мере выявления подобластей вы можете моделировать частичные приложения и разрабатывать для каждого из них наиболее эффективную архитектуру.
Как ни странно, это — основной урок предметно-ориентированного проектирования
(Domain-Driven Design — DDD).
Часть III, “Вспомогательные архитектуры”, охватывает три вспомогательные ар- хитектуры, с помощью которых можно описывать разные выявленные подобласти.
Каждой архитектуре посвящены две главы — введение и реализация. Первая вспомо- гательная архитектура —
Модель ПредМетной области (Domain moDel). За ней следуют архитектура
CQRS (сommand-Query responsibility Se gRegation — разделение ответственности коМанд и заПросов) и источники событий
(
event sourcing).
Заключительная часть IV, “Инфраструктура,” содержит единственную главу, по- священную уровню инфраструктуры и хранения. Это не просто глава о языке SQL, платформе Entity Framework и реляционных таблицах. В ней описываются многова- риантное хранение, хранилища данных NoSQL и службы, позволяющие скрыть дета- ли механизма хранения.
01_ch00.indd 14 04.12.2015 14:06:41

15
Введение
Все это хорошо, но о чем же книга?
Эта книга о том, что вы должны знать и сделать, чтобы обслуживать своих кли- ентов самым лучшим образом на платформе .NET. Шаблоны, принципы и методы, которые мы описываем, в целом являются корректными и не носят специфическо- го характера. Хорошая архитектура программного обеспечения помогает управлять сложностью проекта. И управление сложностью, и обеспечение поддержки — луч- ший способ борьбы с каноническим законом Мерфи: “ничто и никогда не создается в срок и в пределах сметы”. Для того чтобы справиться с этим, есть только одно усло- вие, которым нельзя пренебречь, — глубокое понимание предметной области.
Для кого предназначена книга
Идеальной читательской аудиторией этой книги являются архитекторы программ- ного обеспечения, но она будет полезной и ведущим проектировщикам и разработчи- кам приложений .NET. Эту книгу необходимо прочитать всем, кто хочет стать архи- тектором программного обеспечения.
Предназначена ли книга только для профессионалов, работающих на платформе
.NET? Несмотря на то что почти все главы посвящены платформе .NET, основное их содержимое может быть полезно всем программистам.
Предположения
Основным требованием к читателям этой книги являются хорошие навыки объектно-ориентированного программирования. Большой опыт использования плат- формы .NET и знания некоторых методов доступа к данным также могут быть полез- ными. Мы приложили максимум усилий для того, чтобы сделать книгу понятной. Это книга не об абстрактных концепциях проектирования и не классическая книга об ар- хитектуре, наполненная перекрестными ссылками и библиографическими данными.
Возможно, эта книга не для вас
Эта книга не подходит для вас, если вы ищете справочник шаблонов. Наша цель — сделать так, чтобы вы всегда знали, что сделать и как делать. По крайней мере, вы будете знать, что два парня — Дино и Андреа — делают в аналогичных ситуациях.
Эту книгу следует прочитать от корки до корки и, возможно, несколько раз. Она не предназначена для эпизодических справок.
01_ch00.indd 15 04.12.2015 14:06:41

Введение
16
Загрузки: примеры кода
В книге представлено несколько фрагментов кода и обсуждаются примеры при- ложений, чтобы проиллюстрировать принципы и методы для читателей, желающих применить их в собственных проектах. Мы пытались научить вас ловить рыбу, но не даем удочку. Однако есть сайт CodePlex:
http://naa4e.codeplex.com/
Здесь вы найдете несколько проектов Visual Studio 2013, каждый из которых реа- лизует одну из вспомогательных архитектур, описанных в книге. Пример системы электронной коммерции — проект I-Buy-Stuff — написан с учетом архитектуры
ПредМетная область, а затем перенесен на архитектуру CQRS. Коллекцию про- ектов завершают еще два приложения: для обзора спортивных результатов в реальном времени и система мини-ERP, иллюстрирующая шаблон источник событий.
Мы рекомендуем исследовать эти проекты, потому что в будущем планируем до- бавить больше демонстрационных примеров.
Демонстрационные программы основаны на типичных технологиях, таких как
Visual Studio 2013 и SQL Server. Проекты используют платформы Entity Framework,
ASP.NET MVC, RavenDB, Bootstrap и WURFL. Каждый из них связан с проектом с помощью менеджера пакетов Nuget. Для воспроизведения демонстрационных приме- ров необходимо обновить эти пакеты. Но для этого не требуется полной инсталляции системы SQL Server, достаточно версии SQL Express.
Благодарности
Когда летом 2008 года Андреа и я работали над первым изданием книги, мир был совершенно другим. Наступал огромный экономический спад в США и Европе.
И платформы Entity Framework еще не было. Мы описали в том издании шаблоны и технологии, которые на сегодняшний день уже устарели. Мы не писали об облаках, мобильной связи и NoSQL. Впрочем, это не помешало нашей книге занимать ведущие места в рейтинге компании Amazon в течение нескольких лет после выхода в свет. Для технической книги несколько лет — это геологическая эпоха. Нас несколько раз проси- ли поработать над вторым изданием, но обстоятельства не позволяли это сделать, пока не наступила весна 2014 года. Итак, второе издание готово. Мы благодарим за это пре- красную команду в составе Дэвона Масгрейва (Devon Musgrave), Стива Сагмана (Steve
Sagman), Роджера Леблана (Roger LeBlanc) и Кэрол Диллингэм (Carol Dillingham).
Хотя может показаться, что я пристрастен, но, написав более двадцати книг, я ни- когда еще так много не работал с техническими рецензентами. Я очень многое узнал от них. Да, на сей раз все было иначе. Сезар де ла Торре Ллоренте (Cesar De la Torre
Llorente) — наш рецензент — выполнил фантастическую работу. Он сразу выявил проблемы в содержании книги, указал на допущенные нами ошибки, которые я про- сто не видел, а Андреа считал незначительными. Сезар заставил нас несколько раз
01_ch00.indd 16 04.12.2015 14:06:41

17
Введение переделывать содержание книги и привести ее к тому виду, в котором она должна была предстать перед читателями.
В заключение я хотел бы сказать несколько слов людям, делившимся с нами свои- ми ценными идеями. Я благодарю Хади Харири (Hadi Hariri) за то, что он делился с нами своими мыслями о постоянно изменяющемся мире информационных техноло- гий, Джона Смита (Jon Smith) за то, что он указал нам на многие особенности роли архитекторов, Джорджио Гарсиа-Агреда (Giorgio Garcia-Agreda) за мысли о решении некоторых проблем (особенно в напряженных ситуациях). И наконец, я благодарен
Роберто Рашетти (Roberto Raschetti). Он может задаться вопросом, почему он заслу- живает этой почести, но, без сомнения, именно он указал мне правильный путь, когда я был еще студентом.
В заключение я хочу сказать: “Мама, папа! Вот еще одна книга на вашу полку! Не нужна ли вам книга потолще?”
PS: Нас можно найти в сетях Facebook (
facebook.com/naa4e) и Twitter (
#naa4e).
Дино
Эта книга не появилась бы, если бы не Дино. Именно он втянул меня в это дело и стал оказывать на меня сильно давление.
Ты клялся: “Больше никогда”
1
.
Дино несколько раз спрашивал меня о том, как я отношусь к работе над вторым изданием, терпеливо выслушивал отказы, а затем начинал меня уговаривать. Когда он сломил мое сопротивление, стало очевидно, что книгу надо писать параллельно, по- тому что мне требовалось много времени на то, чтобы написать текст, который Дино элегантно и легко мог написать всего за несколько часов.
Я не только медлительный, но и довольно придирчивый писатель. Дино очень поддер- живал меня в моем стремлении сделать второе издание не менее качественным, чем первое.
Я выезжаю на прогулку с лучшим другом
2
.
Поскольку я придирчивый человек, то был очень доволен, что нашим рецензентом стал Сезар де ла Торре Ллоренте, потому что он не только проверил содержание, но и дал ценные советы, как его переделать. Спасибо, Сезар. Мы тебе очень обязаны.
Он знает сам, куда меня везти, туда, куда мне надо
3
.
1
Never again is what you swore the time before. — Policy of Thruth (Depeche Mode). — При-
меч. ред.
2
I’m taking a ride with my best friend. — Never Let Me Down Again (Depeche Mode). — При-
меч. ред.
3
He knows where’s he’s taking me, taking me where I want to be. — Never Let Me Down Again
(Depeche Mode). — Примеч. ред.
01_ch00.indd 17 04.12.2015 14:06:42

Введение
18
Однако, для того чтобы книга получилась хорошей, нам требовалась поддержка сильной команды, и Дэвон Масгрейв (Devon Musgrave), Стив Сагман (Steve Sagman),
Роджер Леблан (Roger LeBlanc) и Кэрол Диллингэм (Carol Dillingham) пришли нам на помощь. Спасибо, ребята!
Это действительно круто, да, круто
4
.
Писать книгу и одновременно работать консультантом на полную ставку значит проводить много времени перед экраном персонального компьютера, вместо того, чтобы проводить время с любимыми людьми. Это может стать проблемой для обеих сторон. Тем не менее Лаура и мама понимали, насколько важна эта книга для меня, и дарили мне огромную поддержку и любовь.
Ты словно ангел даришь мне свою любовь, но мне все мало
5
.
В заключение я хотел бы поблагодарить всех сотрудников компании Managed
Designs. Без опыта, накопленного вами, эта книга и вполовину не стала бы такой хорошей.
Мой тайный сад не тайна больше!
6

И наконец, я благодарю Хелен и Марушку за помощь в редактировании. Спасибо вам от всего сердца, миледи.
Добро пожаловать в мой мир, смелей входи
7
.
PS: Нас можно найти в сетях Facebook (
facebook.com/naa4e) и Twitter (
#naa4e).
Андреа
Ошибки, обновления и сопровождение книги
Мы сделали все возможное, чтобы в книге не было ошибок. Но если вы все же найдете какие-то ошибки, напишите по адресу mspinput@microsoft.com. Кроме того, вы можете обратиться в службу Microsoft Press Book Support. Пожалуйста, об- ратите внимание на то, что этот сайт не предназначен для поддержки программного и аппаратного обеспечения компании Microsoft. Если вам потребуется такая поддержка, обращайтесь по адресу http://support.microsoft.com.
4
This is real fun, this is fun. — Now, this is fun (Depeche Mode). — Примеч. ред.
5
Yor’re like an angel and you give me your love, and I just can’y seem to get enough of. — Just
Can’t Get Enough (Depeche Mode). — Примеч. ред.
6
My secret garden’s not so secret anymore. — My Secret Garden (Depeche Mode). — Примеч.
ред.
7
Welcome to my worls, step right through the door. — Welcome to My World (Depeche Mode). —
Примеч. ред.
01_ch00.indd 18 04.12.2015 14:06:42

19
Введение
Бесплатные электронные книги
издательства Microsoft Press
Подробную техническую информацию по специальным темам можно найти в бес- платных электронных книгах издательства Microsoft Press, доступных в форматах
PDF, EPUB и Mobi для электронных устройств Kindle по адресу:
http://aka.ms/mspressfree
Почаще заходите на этот сайт, чтобы не пропустить новинки!
Обратная связь
Основным приоритетом издательства Microsoft Press является удовлетворенность читателей, поэтому издательство высоко ценит их мнение. Пожалуйста, пишите, что вы думаете о книге, по адресу http://aka.ms/tellpress
Мы знаем, что вы заняты, поэтому анкета содержит всего несколько вопросов.
Ваши ответы будут направлены непосредственно редакторам издательства Microsoft
Press. (Персональную информацию указывать не обязательно.) Заранее благодарим вас за ваши ответы!
Пишите
Держите контакт с нами! Наш адрес в сети Twitter: http://twitter.com/mi- crosoftPress.
Авторы также поддерживают страницу в сети Facebook по адресу facebook.com/
naa4e.
Пожалуйста, присылайте ваши комментарии, посты и твиты, посвященные книге, с тематической ссылкой
#naa4e.
01_ch00.indd 19 04.12.2015 14:06:42

01_ch00.indd 20 04.12.2015 14:06:42

Каталог: PDF
PDF -> Семантическое пространство компьютерных игр: опыт рекон
PDF -> Влияние компьютерных игр на человека
PDF -> О состоянии и перспективах внедрения в учебный процесс инновационных технологий в нф башГУ
PDF -> Russian Federation) Психология компьютерных ролевых игр с моральным выбором и программа исследования (на примере серии «Fable») Колесников Е. В
PDF -> Развитие дизайна в сфере игровой индустрии
PDF -> История развития графической визуализации в индустрии компьютерных игр
PDF -> Анализ современного состояния потребительского рынка в россии и за рубежом


Поделитесь с Вашими друзьями:


База данных защищена авторским правом ©nethash.ru 2019
обратиться к администрации

войти | регистрация
    Главная страница


загрузить материал