Читаем 97 этюдов для архитекторов программных систем полностью

Идея книги «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»

Не ставьте свое резюме выше интересов клиента

Нитин Борванкар

Мы, технари, подчас выбираем для использования те или иные технологии, методологии и подходы к решению задач не потому, что они обеспечивают оптимальное решение, а лишь потому, что в глубине души нам хочется упомянуть их в своем резюме. Такой выбор очень редко приводит к положительному результату.

Самым мощным катализатором вашей карьеры будут благодарные заказчики, выстроившиеся в длинную очередь, чтобы порекомендовать вас другим — ведь вы так хорошо для них потрудились. Благосклонность клиентов послужит вам на порядок лучше, чем любой новомодный объект новомодного языка и любая свежеизобретенная парадигма. Хотя для архитектора очень важно (и даже жизненно необходимо) быть в курсе новейших тенденций и технологий, никогда не пытайтесь расширять свой кругозор за счет клиента. Помните, что вам как архитектору доверено благополучие вашей организации; соответственно от вас ожидают, что вы будете честно и грамотно действовать в интересах заказчика, избегая любых конфликтов интересов и сохраняя полную лояльность своей организации. Если предложенный проект недостаточно актуален или перспективен для ваших текущих карьерных целей, найдите другой проект.

А что, если это невозможно, и вы все же вынуждены участвовать в таком проекте? И вам самому, и всем остальным будет лучше, если вы будете выбирать технологию в интересах клиента, а не своего резюме. Подчас трудно устоять перед искушением применить новое модное решение, даже если оно плохо подходит к текущей ситуации.

При правильно выбранном решении вы получаете довольную команду и удовлетворенного клиента, а общая напряженность работы над проектом заметно снижается. Часто это позволяет вам глубже изучить уже знакомую технологию или заняться освоением новинки в свободное время. А может быть, у вас даже высвободится время для посещения курсов живописи, о которых вы всегда мечтали. Ваши близкие это тоже оценят — они заметят разницу в вашем состоянии, когда вы приходите домой после работы.

Всегда ставьте долгосрочные потребности клиента над своими собственными краткосрочными потребностями, — и вы не ошибетесь.


Перейти на страницу:

Все книги серии 97 этюдов

97 этюдов для архитекторов программных систем
97 этюдов для архитекторов программных систем

Успешная карьера архитектора программного обеспечения требует хорошего владения как технической, так и деловой сторонами вопросов, связанных с проектированием архитектуры. В этой необычной книге ведущие архитекторы ПО со всего света обсуждают важные принципы разработки, выходящие далеко за пределы чисто технических вопросов.?Архитектор ПО выполняет роль посредника между командой разработчиков и бизнес-руководством компании, поэтому чтобы добиться успеха в этой профессии, необходимо не только овладеть различными технологиями, но и обеспечить работу над проектом в соответствии с бизнес-целями. В книге более 50 архитекторов рассказывают о том, что считают самым важным в своей работе, дают советы, как организовать общение с другими участниками проекта, как снизить сложность архитектуры, как оказывать поддержку разработчикам. Они щедро делятся множеством полезных идей и приемов, которые вынесли из своего многолетнего опыта. Авторы надеются, что книга станет источником вдохновения и руководством к действию для многих профессиональных программистов.

Билл де Ора , Майкл Хайгард , Нил Форд

Программирование, программы, базы данных / Базы данных / Программирование / Книги по IT

Похожие книги

C++
C++

С++ – это универсальный язык программирования, задуманный так, чтобы сделать программирование более приятным для серьезного программиста. За исключением второстепенных деталей С++ является надмножеством языка программирования C. Помимо возможностей, которые дает C, С++ предоставляет гибкие и эффективные средства определения новых типов. Используя определения новых типов, точно отвечающих концепциям приложения, программист может разделять разрабатываемую программу на легко поддающиеся контролю части. Такой метод построения программ часто называют абстракцией данных. Информация о типах содержится в некоторых объектах типов, определенных пользователем. Такие объекты просты и надежны в использовании в тех ситуациях, когда их тип нельзя установить на стадии компиляции. Программирование с применением таких объектов часто называют объектно-ориентированным. При правильном использовании этот метод дает более короткие, проще понимаемые и легче контролируемые программы. Ключевым понятием С++ является класс. Класс – это тип, определяемый пользователем. Классы обеспечивают сокрытие данных, гарантированную инициализацию данных, неявное преобразование типов для типов, определенных пользователем, динамическое задание типа, контролируемое пользователем управление памятью и механизмы перегрузки операций. С++ предоставляет гораздо лучшие, чем в C, средства выражения модульности программы и проверки типов. В языке есть также усовершенствования, не связанные непосредственно с классами, включающие в себя символические константы, inline-подстановку функций, параметры функции по умолчанию, перегруженные имена функций, операции управления свободной памятью и ссылочный тип. В С++ сохранены возможности языка C по работе с основными объектами аппаратного обеспечения (биты, байты, слова, адреса и т.п.). Это позволяет весьма эффективно реализовывать типы, определяемые пользователем. С++ и его стандартные библиотеки спроектированы так, чтобы обеспечивать переносимость. Имеющаяся на текущий момент реализация языка будет идти в большинстве систем, поддерживающих C. Из С++ программ можно использовать C библиотеки, и с С++ можно использовать большую часть инструментальных средств, поддерживающих программирование на C. Эта книга предназначена главным образом для того, чтобы помочь серьезным программистам изучить язык и применять его в нетривиальных проектах. В ней дано полное описание С++, много примеров и еще больше фрагментов программ.

Бьёрн Страуструп , Бьярн Страустрап , Мюррей Хилл

Программирование, программы, базы данных / Программирование / Книги по IT
Adobe InDesign CS3
Adobe InDesign CS3

Книга посвящена верстке и макетированию в программе Adobe InDesign CS3. Помимо того что в ней описываются возможности программы, рассматриваются также принципы и традиции верстки, приводятся примеры решения типичных задач. Все это позволит читателю не только овладеть богатым инструментарием программы, но и грамотно применять его.Материал книги разделен на логические части: теоретические сведения, инструментарий программы, решение задач, – а также рассчитан на два уровня подготовки читателей – начинающих и опытных пользователей, что выгодно отличает книгу от других изданий. Это позволит применять ее как новичкам для знакомства с программой, так и пользователям со стажем для пополнения своих знаний.

Владимир Гавриилович Завгородний , Владимир Завгородний

Программирование, программы, базы данных / Программное обеспечение / Книги по IT