Нил Форд, Майкл Хайгард, Билл де Ора и др
97 этюдов для архитекторов программных систем
Опыт ведущих экспертов
Предисловие
Архитекторы программного обеспечения занимают особое место в мире информационных технологий. От архитектора ожидают одинаково глубокого понимания как технологий и программных платформ, используемых в его организации, так и вопросов бизнеса, которому они служат. Хороший архитектор ПО должен в совершенстве знать обе стороны архитектуры — и коммерческую, и технологическую. Эта задача не из простых — вот почему и была написана эта книга.
Перед вами сборник советов от архитекторов ПО со всего света. Их советы затрагивают широкий круг тем — от предотвращения распространенных ошибок до создания выдающихся проектных команд. В сущности, это «сборная солянка» из рекомендаций признанных архитекторов ПО для других архитекторов и тех, кто хочет стать архитектором.
Искренне надеюсь, что эта книга явится источником вдохновения и руководством к действию для многих людей, профессионально занимающихся разработкой программного обеспечения. Хочется надеяться также, что архитекторы программного обеспечения будут использовать эту книгу (а также родственный ей веб-сайт) для обмена рекомендациями и находками в своей профессиональной сфере — возможно, самой сложной на сегодняшний день в области информационных технологий.
Книга «97 этюдов для архитекторов программных систем» очень сильно отличается от всех прочих книг, которые вам доводилось читать. Она была создана совместными усилиями более чем полусотни авторов; все они щедро делились своими мыслями и советами в области проектирования архитектуры программного обеспечения без денежного вознаграждения. Можно сказать, что эта книга следует принципам продуктов с открытым исходным кодом в их истинном смысле. Каждый автор внес свой вклад, написав одну или несколько статей, которые затем были тщательно проработаны и отрецензированы. Лучшие статьи были отобраны для публикации. В этом отношении книга похожа на программный проект с открытым исходным кодом, только здесь вклад участников — не программный код, а знания и мудрость.
Разрешение на использование материалов
Использование всех материалов этой книги также осуществляется на условиях, сходных с условиями распространения ПО с открытым исходным кодом. Каждая статья находится в свободном доступе на условиях лицензии Creative Commons, Attribution 3; это означает, что вы можете использовать отдельные статьи в своей работе, если упоминаете их авторов. Попытки публикации книг в соответствии с принципами распространения продуктов с открытым исходным кодом совершались и прежде, но все они (за немногочисленными исключениями) окончились неудачей. Вероятно, это объясняется трудностями координации вкладов отдельных участников, если проект не имеет четкого модульного разделения. Именно модульность обеспечила успех этой книги. Каждая статья существует независимо от других статей и ценна как в контексте сборника в целом, так и сама по себе.
Как с нами связаться
Пожалуйста, со всеми комментариями и вопросами, касающимися этой книги, обращайтесь к издателю:
O’Reilly Media, Inc.
1005 Gravenstein Highway North
Sebastopol, CA 95472
800-998-9938 (США или Канада)
707-829-0515 (международные или местные звонки)
707 829-0104 (факс)
На сайте издательства имеется веб-страница книги со списком обнаруженных опечаток и другой дополнительной информацией. Страница доступна по адресу:
http://www.oreilly.com/catalog/9780596522698
Сопроводительный сайт книги, на котором размещены все тексты и полные биографии авторов, доступен по адресу:
http://97-things.near-time.net
С комментариями и техническими вопросами по поводу книги обращайтесь по электронной почте:
[email protected]
Дополнительную информацию о книгах, конференциях, ресурсах и O’Reilly Network вы можете найти на сайте издательства O’Reilly:
http://www.oreilly.com
Safari® Enabled
Логотип Safari® Enabled на обложке вашей любимой книги, посвященной какой-либо технологии, означает, что книга доступна через O’Reilly Network Safari Bookshelf.
Система Safari превосходит обычные электронные книги. Это целая виртуальная библиотека, позволяющая выполнять поиск по тысячам лучших технических книг, копировать примеры кода, загружать главы и быстро находить ответы, когда вам потребуется самая точная и актуальная информация. Safari можно бесплатно опробовать на сайте http://safari.oreilly.coni.
Благодарности
Идея книги «97 этюдов для архитекторов программных систем» родилась не на пустом месте. Множество людей заслуживают благодарности за идею этой книги и ее исполнение. Я хочу поблагодарить Джея Циммермана (Jay Zimmerman), предложившего мне провести презентацию «10 вещей, которые должен знать каждый архитектор программного обеспечения» на симпозиуме «No Fluff, Just Stuff»; Брюса Эккеля (Bruce Eckel) за ведение списка рассылки, на базе которого зародилась идея этой книги; Джереми Мейера (Jeremy Meyer) за предложение написать книгу по материалам простой слайдовой презентации; Нитина Борванкара (Nitin Borwankar), предложившего создать общедоступный вики-сайт, чтобы все желающие могли принять участие; участников списка рассылки Брюса, которые, не имея ничего, кроме моих обещаний, приняли решение уделить время этой идее и предложили первые статьи для книги. Хочу поблагодарить также десятки архитекторов программного обеспечения, приложивших серьезные усилия к работе над материалами, которые в результате не вошли в эту книгу. Мне было очень трудно решить, какие статьи должны стать частью книги. Я глубоко благодарен всем, кто внес свой вклад в общую работу, независимо от того, попали их материалы в книгу или нет.
Я благодарен также издательству O’Reilly, которое без предубеждения восприняло идею и поддержало этот никем прежде не опробованный метод работы над книгой. O’Reilly заслуживает благодарности и за согласие лицензировать весь материал на условиях продуктов с открытым исходным кодом (лицензия Creative Commons, Attribution 3) и предоставить свободный доступ к содержимому на веб-сайте. Среди сотрудников O’Reilly мне хотелось бы особо поблагодарить Майка Лукидеса (Mike Loukides), Майка Хендриксона (Mike Hendrickson), Лору Пейнтер (Laura Painter) и Лорел Экерман (Laurel Ackerman). Без их помощи и поддержки этот проект был бы невозможен.
В настоящее время мы (O’Reilly и я) работаем над другими проектами новой уникальной серии «97 Things», которая позволяет воспользоваться коллективным разумом экспертов в различных практических областях. Управление проектами, разработка программного обеспечения, архитектура данных — вот лишь некоторые из тем, над которыми мы сейчас трудимся.
Надеюсь, книга покажется вам интересной, а возможно, даже вдохновит вас на подготовку собственных статей для будущих проектов!
С наилучшими пожеланиями,
Ричард Монсон-Хейфел, редактор серии «97 Things»
Не ставьте свое резюме выше интересов клиента
Нитин Борванкар
Мы, технари, подчас выбираем для использования те или иные технологии, методологии и подходы к решению задач не потому, что они обеспечивают оптимальное решение, а лишь потому, что в глубине души нам хочется упомянуть их в своем резюме. Такой выбор очень редко приводит к положительному результату.
Самым