Если Вы всерьез задумались о карьере архитектора программного обеспечения или уже ступили на этот путь профессионального развития, Вам потребуется хорошее владение как технической, так и деловой сторонами вопросов, связанных с проектированием архитектуры, начиная с организации труда и заканчивая общением с бизнес-руководством и заказчиком. Иными словами, архитектору ПО требуются навыки проектировщика и практически неподъемный багаж знаний как из собственной так и из чужой практики по всему жизненному циклу продукта.
Откуда брать собственный практический опыт и так ясно, а вот с чужими профессиональными наработками можно познакомится в "97 этюдов для архитекторов программных систем". В книге несколько десятков архитекторов рассказывают о самом важном в своей работе, дают советы, как организовать общение с другими участниками проекта, как снизить сложность архитектуры, как оказывать поддержку разработчикам. Они откроют множество полезных идей и приемов, чтобы Вы учились на чужих ошибках и просчетах и поменьше совершали своих.
"97 этюдов для архитекторов программных систем" дает серьезный толчок для дальнейшего профессионального развития специалистов в сфере программирования.
Оглавление:
1. Не ставьте свое резюме выше интересов клиента - Нитин Борванкар
2. Снижайте неотъемлемую сложность, устраняйте второстепенную сложность - Нил Форд
3. Возможно, ваша главная проблема не в технологиях - Марк Рэмм
4. Общение - король, ясность и лидерство - его верные слуги - Марк Ричардс
5. Производительность приложения определяется его архитектурой - Рэнди Стаффорд
6. Ищите истинный смысл требований - Эйнар Ландре
7. Встаньте! - Уди Дахан
8. Сбои неизбежны - Майкл Найгард
9. Вы ведете переговоры чаще, чем вам кажется - Майкл Найгард
10. Используйте количественные критерии - Кейт Брайтуэйт
11. Одна строка рабочего кода стоит 500 строк спецификации - Эллисон Рэндал
12. Решений на все случаи жизни не существует - Рэнди Стаффорд
13. Думать о производительности никогда не рано - Ребекка Парсонс
14. Создание архитектуры как искусство баланса - Рэнди Стаффорд
15. Сделать наспех и сбежать - преступление - Никлас Нильссон
16. Решений может быть несколько - Кейт Брайтуэйт
17. Всем заправляет бизнес - Дэйв Мурхед
18. Простота лучше универсальности - Кевлин Хенни
19. Архитектор должен быть практиком - Джон Дэвис
20. Обеспечьте непрерывную интеграцию - Дэвид Бартлетт
21. Старайтесь не нарушать график - Норман Карновейл
22. Архитектурные компромиссы - Марк Ричардс
23. База данных как Крепость - Дэн Чак
24. Руководствуйтесь неопределенностью - Кевлин Хенни
25. Проблемы могут быть больше, чем их отражение в зеркале - Дэйв Куик
26. Повторное использование зависит не только от архитектуры - Джереми Мейер
27. "Я" в архитектуре не существует - Дэйв Куик
28. Посмотрите с высоты 300 метров - Эрик Дорненбург
29. Пробуйте, прежде чем сделать выбор - Эрик Дорненбург
30. Разберитесь в предметной области - Марк Ричардс
31. Программирование - это часть процесса проектирования - Эйнар Ландре
32. Предоставьте разработчикам независимость - Филип Нельсон
33. Время меняет все - Филип Нельсон
34. "Архитектор программного обеспечения" пишется со строчной буквы - Барри Хокинс
35. Масштаб - враг успеха - Дэйв Куик
36. Ответственное руководство важнее внешнего впечатления - Барри Хокинс
37. У программной архитектуры есть этические аспекты - Майкл Найгард
38. Небоскребы не масштабируются - Майкл Найгард
39. Неоднородность побеждает - Эдвард Гарсон
40. Не забывайте о производительности - Крейг Рассел
41. Проектирование в пустоте - Майкл Найгард
42. Изучите профессиональный жаргон - Марк Ричардс
43. Правила диктует контекст - Эдвард Гарсон
44. Гномы, эльфы, волшебники и короли - Эван Кофски
45. Учитесь у архитекторов зданий - Кейт Брайтуэйт
46. Боритесь с повторениями - Никлас Нильссон
47. Добро пожаловать в реальный мир - Грегор Хоп
48. Не контролируйте - наблюдайте - Грегор Хоп
49. Архитектор Янус - Дэвид Бартлетт
50. В центре внимания архитектора - границы и интерфейсы - Эйнар Ландре
51. Поддерживайте разработчиков - Тимоти Хай
52. Записывайте свои обоснования - Тимоти Хай
53. Сомневайтесь в допущениях - особенно в собственных - Тимоти Хай
54. Делитесь знаниями и опытом - Пол У. Хомер
55. Патология шаблонов - Чед Лавинь
56. Не увлекайтесь архитектурными метафорами - Дэвид Инг
57. Уделяйте пристальное внимание поддержке и сопровождению - Мнчедизи Каспер
58. Приготовьтесь выбрать два из трех - Билл де Ора
59. Принципы, аксиомы и аналогии важнее личных мнений и предпочтений - Майкл Хармер
60. Начните с ходячего скелета - Клинт Шенк
61. В основе всего - данные - Пол У. Хомер
62. Простое должно быть простым - Чед Лавинь
63. Архитектор - прежде всего разработчик - Майк Браун
64. Окупаемость как фактор проектирования - Джордж Маламидис
65. Ваша система станет унаследованной - учитывайте это при проектировании - Дейв Андерсон
66. Когда видите единственное решение, спросите других - Тимоти Хай
67. Осознавайте последствия изменений - Дуг Кроуфорд
68. Архитектор должен разбираться и в оборудовании - Камал Викраманаяке
69. "Срезание углов" сейчас обойдется слишком дорого потом - Скот Макфи
70. Лучшее - враг хорошего - Грег Найберг
71. Остерегайтесь "хороших идей" - Грег Найберг
72. Хороший контент порождает хорошие системы - Зубин Вадья
73. Бизнес и недовольный архитектор - Чед Лавинь
74. Проверяйте решения на прочность по ключевым характеристикам - Стивен Джонс
75. Проектируйте только то, что можете запрограммировать - Майк Браун
76. "Что значит имя?", или Как роза превращается в капусту - Сэм Гардинер
77. Четко определенные задачи решаются качественно - Сэм Гарднер
78. Необходимо усердие - Брайан Харт
79. Отвечайте за свои решения - И Чжоу
80. Не мудрствуйте - Эбен Хьюит
81. Выбирайте оружие тщательно и не спешите его менять - Чед Лавинь
82. Ваш клиент - не ваш клиент - Эбен Хьюит
83. Все будет не так, как задумано - Питер Гиллард-Мосс
84. Выбирайте инфраструктуры, хорошо сочетающиеся с другими - Эрик Готорн
85. Подготовьте убедительное экономическое обоснование - И Чжоу
86. Управляйте не только кодом, но и данными - Чед Лавинь
87. Расплатитесь по техническим кредитам - Беркхардт Хафнагел
88. Не спешите решать задачи - Эбен Хьюит
89. Стройте zuhanden-системы - Кейт Брайтуэйт
90. Найдите и удерживайте энтузиастов - Чед Лавинь
91. Программы на самом деле не существуют - Чед Лавинь
92. Освойте новый язык - Беркхардт Хафнагел
93. Не создавайте решения "на перспективу" - Ричард Монсон-Хейфел
94. Проблема пользовательского признания - Норман Карновейл
95. О важности консоме - Эбен Хьюит
96. Для пользователя интерфейс - это и есть система - Винаяк Хедж
97. Лучшие программы не строят - их выращивают - Билл де Ора
Об авторах:
Книга содержит 97 эссе, написанных 50-ю авторами. Наиболее известные из них:
Нил Форд (Neal Ford) — архитектор программного обеспечения и «мемовод» из ThoughtWorks, международного консалтингового агентства, специализирующегося на разработке и поставке комплексных решений. Он является создателем многих приложений, учебных материалов, компьютерных учебных курсов, видео/DVD-презентаций, а также автором и/или редактором пяти книг и многочисленных журнальных статей. Часто выступает на конференциях.
Майкл Найгард (Michael Nygard) написал книгу «Release It! Design and Deploy Production-Ready Software» (Выпускаем в свет! Разработка и внедрение ПО, готового к выпуску) (Pragmatic Bookshelf), получившую премию Jolt Productivity в 2008 году.
Билл де Ора (Bill de hOra) — ведущий архитектор в компании NewBay Software, где он работает над крупномасштабными веб-системами и системами для мобильных устройств. Является соредактором Atom Publishing Protocol, ранее участвовал в работе группы W3C RDF Working Group. Признанный эксперт в области REST и архитектур на основе передачи сообщений, а также проектирования протоколов.
Отзывы читателей:
«Мне кажется, что все архитекторы ПО должны помнить, что наши знания ограничены. Когда появляется новая идея, инструмент или совет, мы, перед тем как отвергнуть их, должны убедиться, что они не работают. Сам факт того, что мы якобы эксперты, не означает, что мы знаем все. Давайте признаем, если бы каждый архитектор знал все, что надо, нам не понадобилась бы эта книга".
«97 этюдов для архитекторов программных систем» — это книга о вещах очевидных, которые должен знать, помнить и применять каждый архитектор ПО. Проблема в том, что эти знания забыты, недооценены или не востребованы в ежедневной работе.
В книге 97 эссе. Каждое касается существенной проблемы, с которой часто сталкиваются архитекторы ПО. В книге полно отличных историй, особенно мне нравится «Вы ведете переговоры чаще, чем вам кажется". В ней говорится о заказчике, который хочет снизить затраты. Знакомая ситуация, не правда ли? Знаете ли вы, как поступать в таких случаях? Эта книга — совместный труд, что делает ее еще более ценной.
Каждое утро я читаю 1-3 эссе, чтобы держать в памяти хорошие примеры и ловушки менеджмента, поджидающие меня. Я верю, что эта книга поможет мне улучшить мои профессиональные данные. Это отличная и редкая возможность перенять опыт настоящих экспертов в своей области».
«Если вы ищете книгу о проблемах архитектуры ПО, которая даст вам полный обзор на 360 градусов, вы ее нашли. Я рекомендую «97 этюдов для архитекторов программных систем» руководителям проектов и архитекторам высокого уровня. Тем, кто хочет обобщить свои знания".
«Cборник эссе, составленный 50 опытными программными архитекторами. Среди них сотрудники Google, Microsoft, Sun Mycrosystems, технические писатели, свободные консультанты и пр. Каждый совет максимум на две страницы, в конце краткая биография автора. Все 97 советов основаны на реальном жизненном опыте. Важность того или иного пункта или способ достижения определенного результата иллюстрируется короткими рассказами. Есть даже история создания военного истребителя F16! С их помощью проще запомнить информацию.
Мне эта книга нравится, потому что она очень полезная. По-моему, это хорошо видно по подзаголовку: «опыт ведущих экспертов». Все советы основаны на многолетнем опыте и, мне кажется, все они очень важны. Некоторые из них довольно очевидны, но все равно полезно прочитать их еще раз. Главы очень короткие, читаются быстро. Отличное чтение в транспорте или во время перерывов.
Мои любимые советы:
«Одна строка рабочего кода стоит 500 строк спецификации»
«Сделать наспех и сбежать — преступление»
«Старайтесь не нарушать график»