軟件架構師應該知道的97件事

所属分类:軟件工程及軟件方法學  
出版时间:2010年4月   出版时间:電子工業出版社   作者:Richard Monson-Haefel 編   页数:200   译者:徐定翔,章顯洲  

前言

  97个水晶切面,折射软件架构师的实践智慧  近十数年,全球软件产业已经取得了显著的进步,软件从业人员的数量不断增加,软件项目的规模和复杂度不断攀升,软件开发组织的人员结构也因专业不断细分而日趋复杂。  因兴起时间较晚,发展的时间相对还很短,软件业从建筑业和制造业等其他成熟的工程学科中借用了许多概念和隐喻。“软件架构”和“软件架构师”,便是借用了建筑设计中的概念。从UML(统一建模语言,Unified Modeling Language)和软件模式(Pattern)相关的早期著作中,可以清晰地看到这种概念移用。  借用其他行业的概念会带来一些消极影响。比如在早期阶段,一些“软件工程”研究人员和软件项目管理人员,试图以建筑业的项目管理视角和技术来管理软件项目,制造出了“瀑布式”软件开发过程,给软件业带来了长期的不良影响。但是,经过实践验证,“软件架构”确实推动了软件开发技术的发展,为业界广为采纳并日益受到重视。  现如今,“软件架构师”已成为许多软件开发组织职位模型(Job Model)中的标准设置。“软件架构师”也已成为众多软件开发人员梦寐以求的职业巅峰目标之一。  业界许多大师和专家总结分享了他们在软件架构设计方面的技术和经验。在软件技术书籍市场上,已经可以找到许多与“软件架构”主题相关的书籍。  不过,现有的软件架构书籍从技术视角进行总结阐述的居多,如已有5卷本行世的《基于模式的软件架构 (Pattern-Oriented Software Architecture,POSA) 》,主要阐述的是软件架构的风格、解决特定问题或特定领域的软件架构设计技术与模式等。这些书籍当然都非常有益,甚至,可以说成为了软件架构师的必读书目。  但是,即使已经将这些软件架构设计的技术、模式烂熟于胸,可能还无法保证你能够成为优秀的软件架构师。  为何会这样?  正如《建筑十书》的作者、古罗马著名建筑师维特鲁威所说:“理想的建筑师应该既是文学家又是数学家,他还应通晓历史,热衷于哲学研究,精通音乐,懂得医药知识,具有法学造诣,深谙天文学及天文计算。”  优秀的软件架构师,必须多才多艺、成熟练达、经验丰富,具备极强的洞察力,能够领导和提升软件开发团队,去构建整齐有序、均衡合理、可持续发展演化的虚拟数字世界中的伟大建筑——优秀杰出的软件产品。  本书提供了分享软件架构知识的新方式,拓宽了阐述软件架构艺术的视角,总结了50多位经验丰富的软件架构师的实践经验,范围覆盖了软件架构师的职业操守、技术技能、思维模式、领导力、和客户的沟通交流、权衡利弊的平衡感等主题。  全书由97篇格言式散文构成,没有高调的说教,没有抽象的术语,而是以平实、幽默、智慧的笔触,将他们认为对成为优秀软件架构师而言至为重要的精髓和盘托出。全书犹如一块玲珑剔透的水晶,97个切面折射出来的都是出自一线软件架构师的专业智慧。  本书第1~49篇由徐定翔翻译,第50~97篇由章显洲翻译。我们在翻译的过程中得到了许多人的帮助。余晟认真审校了全书的译稿,细致地指出了我们翻译不当之处;郑兆昭老师对书稿的润色让我们受益匪浅;统稿编辑白爱萍一次又一次容忍了我们修改定稿的要求。最后要感谢家人给予我们的宽容和支持,使我们能够安心埋首于书稿中。

内容概要

  優秀的軟件架構師應該同時掌握業務知識和技術能力,做到這一點絕非易事,《軟件架構師應該知道的97件事》想要探討的就是這個主題。這是一本真正的開源圖書,我們邀請到50多位杰出的軟件架構師參與寫作。大家無償地分享了各自的工作經驗和心得,內容從規避風險的方法到組建團隊的技巧,涵蓋了架構設計的方方面面。衷心希望這97篇文章能激發您的思考,解決您工作中的困惑。

作者简介

  理查德·蒙森-哈斐尔,是独立软件开发者,曾参加编写《Enterprise JavaBeans》和《Java Message Service》(均由OReilly公司出版)。他是企业计算方面的专家,同时擅长设计和开发多点触控应用程序。

书籍目录

前言客戶需求重于個人簡歷簡化根本復雜性,消除偶發復雜性關鍵問題可能不是出在技術上以溝通為中心,堅持簡明清晰的表達方式和開明的領導風格架構決定性能分析客戶需求背後的意義起立發言故障終究會發生我們常常忽略了自己在談判量化需求一行代碼比五百行架構說明更有價值不存在放之四海皆準的解決方案提前關注性能問題架構設計要平衡兼顧多方需求草率提交任務是不負責任的行為不要在一棵樹上吊死業務目標至上先確保解決方案簡單可用,再考慮通用性和復用性架構師應該親力親為持續集成避免進度調整失誤取舍的藝術打造數據庫堡壘重視不確定性不要輕易放過不起眼的問題讓大家學會復用架構里沒有大寫的“I”使用“一千英尺高”的視圖先嘗試後決策掌握業務領域知識程序設計是一種設計讓開發人員自己做主時間改變一切設立軟件架構專業為時尚早控制項目規模架構師不是演員,是管家軟件架構的道德責任摩天大廈不可伸縮混合開發的時代已經來臨性能至上留意架構圖里的空白區域學習軟件專業的行話具體情境決定一切侏儒、精靈、巫師和國王向建築師學習避免重復歡迎來到現實世界仔細觀察,別試圖控制一切架構師好比兩面神架構師當聚焦于邊界和接口助力開發團隊記錄決策理由挑戰假設尤其是你自己的分享知識和經驗模式病不要濫用架構隱喻關注應用程序的支持和維護有舍才有得先考慮原則、公理和類比再考慮個人意見和口味從“可行走骨架”開始開發應用數據是核心確保簡單問題有簡單的解架構師首先是開發人員根據投資回報率(ROI)進行決策一切軟件系統都是遺留系統起碼要有兩個可選的解決方案理解變化的影響你不能不了解硬件現在走捷徑,將來付利息不要追求“完美”,“足夠好”就行小心“好主意”內容為王對商業方,架構師要避免憤世嫉俗拉伸關鍵維度,發現設計中的不足架構師要以自己的編程能力為依托命名要恰如其分穩定的問題才能產生高質量的解決方案天道酬勤對決策負責棄聰明,求質樸精心選擇有效技術,絕不輕易拋棄客戶的客戶才是你的客戶!事物發展總會出人意料選擇彼此間可協調工作的框架著重強調項目的商業價值不僅僅只控制代碼,也要控制數據償還技術債務不要急于求解打造上手(Zuhanden)的系統找到並留住富有激情的問題解決者軟件並非真實的存在學習新語言沒有永不過時的解決方案用戶接受度問題清湯的重要啟示對最終用戶而言,界面就是系統優秀軟件不是構建出來的,而是培育起來的索引

章节摘录

  客戶需求重于個人簡歷  作為工程師,我們常常要向客戶推薦技術、手段,甚至方法論來解決問題。但有時我們心里不是想尋求解決問題的最佳方案,而是希望借此豐富自己的簡歷。這樣做很可能得不償失。  積累一批滿意的客戶,選擇切合實際的技術解決他們的難題,讓他們樂于推薦你,才是最好的履歷。信譽遠勝過時髦的編程技巧和流行的範式。掌握最新的技術趨勢,與時俱進固然重要,但不能讓客戶為此買單。作為架構師,職業操守絕不能忘。公司托付重任給你,是期望你恪盡職守,不受利益誘惑。如果你覺得項目不夠尖端,挑戰性不足,無法滿足職業發展的需要,大可另棲高枝,另謀高就。  萬一你別無選擇,必須參與這樣的項目,不要為簡歷所累。忍痛割愛放棄時髦光鮮的方案確實不容易(哪怕它們並不適合當前的項目),但只有腳踏實地替客戶著想,最後才能皆大歡喜。  選擇正確的解決方案可以降低項目的壓力,團隊工作起來更開心,客戶也更滿意。你會有更充裕的時間,既可以鑽研現有技術,也可以利用空閑時間學習新知識,甚至重拾向往已久的業余愛好。家人察覺你的變化後,也會感到欣慰。  把客戶的長遠需求擺在自己的短期利益之上,才能立于不敗之地。

编辑推荐

  《软件架构师应该知道的97件事》是本与众不同的技术图书。五十多位作者中不乏像尼尔·福特(Neal Ford)、迈克尔·尼加德(Michael Nygard)、比尔·德·霍拉(Bill de h6ra)这样杰出的软件架构师,大家分享了多年积累的开发经验和工作准则.内容不限于单纯的技术范畴.还涉及如何与各方沟通、如何降低项目的复杂度、怎样强化开发团队等。有代表性的  主题包括:  客户需求重于个人简历 尼廷·博万卡(NitiN Borwa Borlkar)。  关键问题可能不是出在技术上一马克·兰姆(Mark Ra Ramm)。  以沟通为中心,坚持简明清晰的表达方式和开明的领导风格一一马克·理查兹(Mark Rictlards)。  先确保解决方案简单可用,再考虑通用性和复用性  凯佛林·亨尼(Kevlin Henney)。  对最终用户而言,界面就是系统 维纳亚克·赫格德(Vinayak Hegde)。  提前关注性能问题一丽贝卡·帕森斯(Rebecca Parsorls)。  成为出色的软件架构师要既掌握业务知识又具备技术能力。顶尖的软件架构师看重什么7他们如何完成项目7怎样提高自己的工作水平7推荐您阅读《软件架构师应该知道的97件事》。

图书封面




    軟件架構師應該知道的97件事下載



用户评论 (总计4条)

 
 

  •     軟件架構師應該知道的97件事
  •     咋說  
  •     同事說是好書
  •     很不錯,真的是很喜歡
 

計算機與互聯網 PDF免费下载,軟件工程及軟件方法學PDF免费下载。 计算机教程网 

计算机教程网 @ 2017