架構之美

架構之美

《架構之美》是機械工業出版社2009年11月出版的圖書,作者是Till Adam。本書圍繞5個主題領域來組織本書的內容:概述、企業套用、系統、最終用戶套用和程式語言。

基本介紹

  • 書名:架構之美
  • 又名:Beautiful Archiecture
  • 作者:Till Adam
  • 譯者:王海鵬,蔡黃輝
  • ISBN: 9787111283560
  • 定價:75元
  • 出版社:機械工業出版社
  • 出版時間: 2009 年11月
內容簡介,作者簡介,譯者簡介,推薦,編輯推薦,媒體推薦,作品目錄,序言,

內容簡介

本書讓最優秀的設計師和架構師來描述他們選擇的軟體架構,剝開架構的各層,展示他們如何讓軟體做到實現功能、可靠、易用、高效率、可維護、可移植和優雅。

作者簡介

Till Adam在年輕時學習了哲學、比較文學、美國研究和音樂學,職業是音樂人。由於沒有發財和出名,他轉而攻讀科學碩士,學習了數學、計算機科學和商業。多年對自由軟體的貢獻(特別是對KDE的貢獻)教會了他編程,也為他帶來了在Klarälvdalens Datakonsult AB工作的機會,他在該公司負責協調KDE的開發和其他與自由軟體相關的活動。他和他的妻子、女兒住在德國柏林。
Jim Blandy在1990年至1993年間為自由軟體基金會維護GNU Emacs,和Richard Stallman一起發布了Emacs的第19個版本。他是Subversion版本控制系統的最初設計者之一。他也是CVS版本控制系統、GNU調試器(GDB)、Guile擴展語言庫和一個編輯基因序列的Emacs程式的貢獻者。他為Mozilla公司工作,工作內容是SpiderMonkey,即Mozilla的Javascript程式語言的實現。Jim和他的妻子、兩個女兒住在俄勒崗的波特蘭。
Mirko Boehm從1997開始就是KDE的開發者,在1996年至2006年間是KDE e.V.委員會的成員。他畢業於德國漢堡Helmut Schmidt大學的商業專業。在他的私人生活中,他閱讀紙版書籍、與家人在一起,試圖遠離計算機。他在德國柏林為Klarälvdalens Datakonsult AB工作,負責跨平台軟體和嵌入式軟體開發。
Christopher Dennis自2005年JCP項目開始時,就是項目的主開發者。Chris在牛津大學讀博士時開始採用Java。此前,他使用過各種程式語言,從16進制小鍵盤上編寫的Z80機器碼到PHP和JavaScript。他對特殊情況、編碼技巧和偶爾有點醜陋的臨時編碼很有興趣,喜歡用各種語言編寫緊湊的、優雅的代碼。
Dave Fetterman是Facebook的工程經理,他在那裡創建了Facebook平台項目。在2006年加入Facebook之前,他是一名軟體工程師,參加Microsoft開發者部門的項目,包括.NET的通用語言運行環境(CLR)。他喜歡為其他開發者創建軟體,也喜歡對願意聽的人發表長篇大論。他擁有套用數學的學士學位,並在2003年獲得了哈佛大學的計算機科學碩士學位。
Keir Fraser是XenSource的創始人之一,XenSource是Citrix Systems公司的一部分。他也是Xen系統管理程式的首席架構師。Keir在2002實現了Xen的第一個版本,作為他在劍橋計算機實驗室攻讀博士學位時的一項娛樂。在該項目成為大規模的社群合作的過程中,他繼續作為主要的開發者。他因在無鎖並發控制方面的工作,於2004年獲得了博士學位,並在同年成為一名教師。
Peter Goodliffe是一名程式設計師、專欄作家、演說家和作家,從來不在同一軟體領域做過多的停留。Pete的熱門書籍“Code Craft (No Starch Press)”是對整個編程追求的實際而有趣的調查——大約600頁,真是了不起!他對製革很有熱情,而且不穿鞋。
Georgios Gousios是一名職業研究者,接受的教育和軟體工程有關,熱衷於軟體開發。他正在希臘的雅典經濟學與商業大學完成他的博士論文。他的研究興趣包括軟體工程、軟體品質、虛擬機和作業系統,他擁有英國曼徹斯特大學的科學碩士學位。Gousios為多個開源軟體項目貢獻過代碼,並參與了各種學術項目和商業項目的研究與開發。他是SQO-OSS項目的項目經理、設計權威和主要開發成員,為評估軟體品質探索一些創新的方法。在他的學術生涯中,Gousios在會議和雜誌上發表了10篇技術論文。Gousios是ACM、IEEE、Usenix Association和Technical Chamber of Greece的成員。
Dave Grove是IBM的T.J. Watson研究中心動態最佳化組的一名研究員。他的主要研究興趣包括分析和最佳化面向對象語言、虛擬機設計和實現、JIT編譯、線上反饋導向的最佳化和垃圾收集。他在1998年參加了Jalapeño項目,是這個最佳化編譯器和適應式最佳化系統首個實現的主要貢獻者。自Jalapeño在2001年作為Jikes RVM開放源碼以來,他一直是Jikes RVM核心團隊和指導委員會的活躍成員。
John Klein是軟體工程研究所(SEI)的高級技術人員,他的研究方向是“眾系統之系統”的架構方法,並幫助個人、團隊和組織機構改進他們的軟體架構能力。在加入SEI之前,John是Avaya公司的首席架構師。在Avaya,他負責開發多模式的代理、通信分析的架構,以及為各種客戶互動產品創建並改進架構。在此之前,John是Quintus的一名軟體架構師,在那裡他設計了第一款獲得商業成功的多渠道集成聯繫中心產品,並導致了Quintus兼併了另外兩家公司,實現了產品組合的技術集成。在加入Quintus之前,John曾為多家視頻會議和視頻網路業的公司服務。他的職業生涯開始於Raytheon,在那裡他為雷達信號處理、多光譜圖像處理、並行處理架構和算法提供硬體和軟體解決方案。John擁有Stevens技術學院的學士學位和Northeastern大學的碩士學位。他是ACM和IEEE計算機學會的成員。
Greg Lehey的漫長職業生涯在德國和澳大利業度過,他曾為德國空間研究所工作,也曾為Univac、Tandem、Siemens-Nixdorf和IBM等計算機製造商工作,也曾作為一些沒名氣的軟體公司的大客戶,還曾做過獨立的諮詢顧問。他的活動範圍很廣,包括從核心開發到產品管理,從系統編程到系統管理,從處理衛星數據到為油泵編程,從生產CD-ROM到把自由軟體移植到DSP指令集上。他是FreeBSD核心團隊的成員,也是澳大利業Unix用戶協會的主席。他是FreeBSD和NetBSD項目的開發者,也是“Porting Unix Software and The Complete FreeBSD, Fourth Edition (both O'Reilly)”一書的作者。他還以編寫商業套用軟體而聞名。Greg在2007年退休,將多出來的時間用於尋找生活。他的休閒活動占據了他的大多數時間,但這還不夠,他還聽古典木紋唱片、烹飪、釀啤酒(他開發了一個計算機控制的發酵系統)、做園藝、騎馬和攝影。他也對一些歷史題材感興趣,包括古代的難解的歐洲語言。
Panagiotis Louridas在上世紀八十年代通過一台 Sinclair ZX Spectrum開始涉足計算機。從那時起,他就開始用機器語言進行編程,而且非常喜歡。他在雅典大學信息系獲得了計算機科學學士學位,在曼徹斯特大學獲得了計算機碩士和博士學位。這些年來,他一直為私人部門開發軟體,他在希臘研究和教育網路(GRNET)工作。他也是雅典經濟學和商業大學(AUEB)軟體工程和安全(SENSE)研究組的成員。他發表的文章範圍很廣,從人類學到加密,從儀表展示到軟體工程。他特別喜歡尋找計算機世界和其他領域的聯繫。
Stephen J. Mellor在為軟體開發創建有效的工程方法方面,是國際公認的先行者。在1985年,他出版了廣為閱讀的Ward-Mellor三卷本“Structured Development for Real-Time Systems (Prentice Hall)”;在1998年,他的書首次定義了面向對象分析。Stephen還在2002年出版了“Executable UML: A Foundation for Model-Driven Architecture (Addison-Wesley Professional) ”。他最近的一本書“MDA Distilled: Principles of Model-Driven Architecture (Addison-Wesley Professional)”在2004年出版。他在對象管理集團(OMG)中活動積極,是為UML添加可執行動作的協會的主席,他完成了可執行UML的標準。他是敏捷宣言的簽名者之一。他是OMG架構委員會的兩任成員,IEEE軟體顧問委員會的主席,他成為了Mentor Graphics的嵌入式軟體部門的首席科學家。
Bertrand Meyer是ETH Zurich的軟體工程教授,也是Eiffel軟體的首席架構師,他領導並設計了EiffelStudio環境和大量的庫。他是一些暢銷書的作者,其中包括獲得Jolt大獎的“Object-Oriented Software Construction (Prentice Hall)”。他也因為在對象技術和Eiffel方面的工作獲得了ACM軟體系統大獎和Dahl-Nygaard大獎,並獲得了St. Petersburg州立技術大學的榮譽博士學位。他的研究興趣涉及面向對象技術、程式語言、軟體驗證(包括測試、並發和規範方法)。他也是一名活躍的顧問和講師。
Mitchell是MIT架構和媒體藝術與科學系的Alexander Dreyfoos教授,他領導著MIT媒體實驗室和MIT設計實驗室的Smart Cities團隊。他以前曾擔任MIT架構和計畫學院的院長。他最近的新書是“World's Greatest Architect”和“Imagining MIT”(都由MIT出版社出版)。
Derek Murray是劍橋大學計算機實驗室的博士生。他在2006年加入Xen項目,主要工作是通過重新設計控制棧來改進Xen的安全性。他的研究主要是改進大規模分散式系統的容錯性,但他還是偶爾會涉及系統核心。Derek在2006年從愛丁堡大學獲得了高性能計算專業的碩士學位,2005年獲得了Glasgow大學的計算機學士學位。
Rhy Newman在十多年前於牛津大學完成博士學位時,就開始使用Java,那時Java還只有幾年歷史。在他早期的研究中,他利用純Java環境展示了高性能實時場景處理的實現方法,即使當時還是使用早期JIT化的JVM。從那時起,他同時在學界和業界工作,一次次證明Java平台實際上有多靈活、多高效、多快。在超過20年的軟體工程生涯中,他獲得了多個業界傑出技術獎項,他回到了牛津,承擔了格線計算領域的突破性研究。JPC是最新研究工作的一部分。
Michael Nygard致力於在全國幫助開發者提高水平和減少痛苦。他和他遇到的每一個人分享他對改進的熱情和活力,有時甚至沒有得到對方的同意。Michael花了20年中的大部分時間學習對專業程式設計師有意義的事,他關心藝術、品質和技藝。他總是願意在那些全職的、真心投入工作的開發者(那些“覺醒的”開發者)身上花時間。在另一方面,他不能容忍缺乏興趣或浪費潛力。Michael在近20年來一直是專業的程式設計師和架構師。在這段時間裡,他為美國政府、軍方、銀行、金融業、農業和零售業交付了運營系統。通常,Michael都要面對他自己開發的系統。這種實際運營的經歷改變了他對軟體架構和開發的看法。他參與了一個Tier 1零售網站的初期開發,並且常常作為其他線上業務的“流動解決問題專家”。這些經驗讓他對在相當不友好的環境下構建高性能、高可靠性的軟體有了獨特的看法。Michael編寫了“Release It! Design and Deploy Production-Ready Software (Pragmatic Programmers)”,該書獲得了2008年的Jolt生產力大獎。
Ian Rogers是曼徹斯特大學高級處理器技術研究組的研究員。他的博士研究工作是關於Dynamite二進制翻譯器的,該技術實現了商用,許多二進制翻譯器產品的一部分,包括Apple的Rosetta。他最近的學術研究工作一直是程式語言設計、運行時環境和虛擬機環境,特別是如何自動創建它們並有效地使用並行技術。他是Jikes研究虛擬機的主要貢獻者,是開發團隊的核心成員。
Brian Sletten是自由的、受過藝術教育的軟體工程師,關注forward-learning技術。他曾擔任過系統架構師、開發者、現場指導者和培訓師。他在世界各地的會議上發表演講,並為一些線上出版物編寫關於面向Web技術的文章。他的經驗涉及國防、金融和商業領域。他曾設計並建造了網路矩陣式交換控制系統、線上遊戲、3D仿真/可視化環境、網際網路分散式計算平台、P2P和基於Web的語義系統。他擁有William and Mary大學的計算機科學學士學位,居住在維吉尼亞的Fairfax。他是Bosatsu諮詢公司的總裁,該公司為Web架構、面向資源的計算、語義Web、高級用戶界面、可伸縮系統、安全和其他20世紀末21世紀初的技術提供專業的諮詢服務。
Diomidis Spinellis是希臘雅典經濟學和商業大學管理科學與技術系統的副教授。他的研究興趣包括軟體工程、計算機安全和程式語言。他也編寫了兩本“開放源碼方面”的書,由Addison-Wesley出版:“Code Reading(獲得了2004年的軟體開發生產力大獎)”和“Code Quality(獲得了2007年軟體開發生產力大獎)”。他也寫了幾十篇科學論文。他是IEEE Software編輯委員會的成員,負責定期的“Tools of the Trade”欄目。Diomidis是FreeBSD的提交者,也是UMLGraph和其他天源軟體包、庫和工具的開發者。他擁有軟體工程的碩士學位和計算機科學博士學位,都是在Imperial College London獲得的。Diomidis是ACM的高級成員,也是IEEE和Usenix Association的成員。
Jim Waldo是Sun微系統實驗室的傑出工程師,負責研究下一代大規模分散式系統。他是Project Darkstar的技術負責人,該系統是針對大規模多人線上遊戲和虛擬世界而設計的多執行緒、分散式基礎設施。在此之,他曾是Jini的首席架構師,Jini是基於Java的分散式編程系統。Jim編寫了“The Evolution of C++: Language Design in the Marketplace of Ideas(MIT出版社)”,也是“The Jini Specification (Addison-Wesley)”的合著者之一。他曾是美國國家學術委員會的共同主席,編輯並出版了“Engaging Privacy and Information Technology in a Digital Age”一書。Jim也是哈佛大學的輔助教師,在計算機科學系教授分散式計算和策略與技術相關的內容。Jim擁有麻薩諸塞大學(Amherst)的哲學博士學位。
David Weiss擁有Union College的計算機科學學士學位,並擁有馬里蘭大學的計算機科學碩士和博士學位。他是Avaya實驗室的軟體技術研究部的領導,他關注軟體開發效率改進的普遍問題和Avaya軟體開發過程改進的特殊問題。在第二個問題上,他領導了Avaya軟體技術研究中心。以前,他曾是朗迅技術貝爾實驗室軟體生產研究部的主任,該部門負責研究如何改進軟體開發的效率。在加入貝爾實驗室之前,他是軟體生產力協會(SPC)復用和度量部門的主任,該協會由14個大型的美國航空公司組成。在加入SPC之前,Weiss博士在技術評估辦公室度過了一年的時間,在那裡他與同事共同完成了Strategic Defense Initiative的技術評估。在1985-1986學年,他是Wang Institute的訪問學者,在許多年裡,他一直是華盛頓特區Naval研究實驗室(NRL)計算機科學和系統部門的研究員。他也是一名程式設計師和數學家。Dave的主要研究興趣是軟體工程領域,特別是軟體開發過程和方法學、軟體設計和軟體測量。他最為人知的是發明了軟體測量的“目標-問題-測量指標”方法,軟體系統模組化結構的工作,以及軟體生產線工程的工作。他是Synthesis過程和繼承者FAST過程的共同發明人。他與別人共同編著了兩本書:“Software Product-Line Engineering”和“Software Fundamentals: Collected Papers of David L. Parnas ”(都由Addison-Wesley出版)

譯者簡介

王海鵬 1994年畢業於華東師範大學。擁有理學士(物理)和文學士(英國語言文學)學位。獨立的諮詢顧問、培訓講師、譯者和軟體開發者。已翻譯十餘本軟體開發書籍,主題涵蓋敏捷方法學、需求工程、UML建模和測試。擁有15年軟體開發經驗,主要的研究領域是軟體架構和方法學,致力於提高軟體開發的品質和效率。
蔡黃輝 江蘇啟東人。1999年畢業於上海交通大學,畢業後一直從事軟體開發工作,主要使用Java做Web方面的底層開發。現居住在上海。
徐鋒 中國系統分析員顧問團(CSAI)軟體工程首席顧問,中國軟體技術大會傑出貢獻專家,資深諮詢顧問。主要研究領域為需求工程、系統分析與設計、軟體估算,致力於推動軟體工程方法論的落地套用。曾在《程式設計師》等媒體發表了《實戰OO》、《項目管理三步曲》、《大話Design》等多個專欄文章,著有《軟體需求最佳實踐》、《UML面向對象建模基礎》等多本書籍,翻譯了《UML 2.0實戰》、《AOSD中文版》、《Cloud to Code中文版》等多本相關技術書籍。

推薦

推薦序一
如何看到一滴水的美麗
支付寶(中國)公司業務架構師
《大道至簡》作者周愛民(aimingoo)
【一】
架構是一個過程,而非一個結果。
【二】
在大多數人的談論中,架構是一個目標產物,而作為架構師的責任就是去生產它。所以無論如何,架構是可以“做”出來的,而且也應該有一些“做”的方法、技術、技巧。
有人問過我:架構的最主要產出是什麼?我的答案是:圖。這裡面有兩層含義:一層含義是如同建築師描繪的藍圖一樣,用於引導實施者;另一層含義是架構師頭腦中清晰的目標系統。如果架構師頭腦中沒有系統清晰的圖像,他是沒有辦法把它畫出來的。
【三】
畫家畫的無非是物我。畫物的畫家,最終畫的還是我見。所以,畫家的筆最終描繪的是他自己心裡的映像。
【四】
藝術是不可能被“生產”出來的,生產出來的,叫“藝術品”。
【五】
架構這個過程,是架構師洞見系統內在結構、規律、原則和邏輯的過程。真正的架構師是可以將自己放在系統中去的(例如作為系統中的任何一個角色),只有清晰地理解系統,才能簡潔地描述它。而當架構師拿出了他所描述的“作品”的時候,架構這一過程就已經結束了。
【六】
一滴水滴落的過程中,有多少個形態的變化?
推薦序二
架構的架構
北京無限訊奇信息技術有限公司產品技術高級總監
黃冬
感謝譯者和出版者為我們帶來這樣一本傳奇的架構故事書。
推薦序三
美麗架構之道
《構建高性能Web站點》作者
Web架構實踐者
郭欣
我無法給架構下一個簡單的定義,因為任何定義都會束縛你對架構的無限想像。不可否認,架構師早已出現在人類幾千年前的各項生產活動中,比如建築、音樂。而在計算機軟體及Web領域,架構的設計直接影響著系統的生產,比如開發過程和效率、代碼和組件復用性等,同時也影響著系統的可用性、可伸縮性、性能、容量可預測性等。
在本書中,我們更加關注架構之美。美麗的架構同樣無法定義,可它卻一定是自然的、簡單的、可復用的、人文的,甚至是外行人也可以細細品味其思想的。當我看到超市的多個收銀台排滿長隊時,便想到伺服器並發處理性能和容量;當我看到十字路口的車輛等待轉彎時,便想到它通過快取思想來提高交通吞吐率。
那么如何設計出美麗的架構呢?從代碼邏輯到物理網路,從單機到分散式,無數的技術可供架構師選擇,如分層、組件化、服務化、標準化、快取、分離、佇列、複製、冗餘、代理等,不過它們仍然只是“術”的範疇,而何時何處如何恰到好處地使用它們才是“道”的範疇,比如頓悟變化的道理,在博弈中尋找平衡,以系統化的角度來分析問題,尋找相對與絕對的奧秘、開放的心態……
然而,這個領域實在是太年輕了,我們需要更多的例子和經驗,本書將讓你大開眼界!

編輯推薦

《架構之美》榮獲2009年度引進版優秀圖書獎!
健壯、優雅、靈活和易維護的軟體架構是怎樣煉成的?《架構之美》通過一系列優秀的文章回答了這個問題,這些文章來自於十幾位當今一流的軟體設計師和架構師。在每篇文章中,作者都向們展示了一個著名的軟體架構,並分析了什麼讓其具有創新性,讓其極其符合設計目標。
《架構之美》Facebook的架構如何建立在以數據為中心的套用生態系統之上。Xen的創新架構對作業系統未來的影響。KDE項目的社區過程如何讓軟體的架構從粗略的草圖演進為漂亮的系統。不斷滋長的特徵如何讓GNUEmacs獲得從未預料到的功能。JikesRVM自最佳化、自足執行的運行時環境背後的魔法。
獲獎證書(見右圖):
架構之美

媒體推薦

“本書的作者們在介紹軟體架構的基本實踐和最佳實踐方面幹得很漂亮,他們也同樣漂亮地介紹了各式各樣的現代系統。我特別喜歡他們談及的架構的廣泛性,從Emacs到Facebook,從非常正式的系統到非常有靈氣的系統。
簡而言之,這是一本非常及時的書,對於軟體架構的藝術、科學和實踐是非常有益的貢獻。”
——GradyBooch,IBM院士

作品目錄

前言 5
第一部分 論架構
第1章 架構概述  13
1.1 簡介  13
1.2 創建軟體架構  19
1.3 架構結構  23
1.4 好的架構  27
1.5 美麗的架構  28
致謝  30
參考文獻  31
第2章 兩個系統的故事:現代軟體神話  33
2.1 混亂大都市  34
2.2 設計之城  40
2.3 說明什麼問題  47
2.4 輪到你了  48
參考文獻  48
第二部分 企業級套用架構
第3章 伸縮性架構設計  51
3.1 簡介  51
3.2 背景  52
3.3 架構  56
3.4 關於架構的思考  61
第4章 記憶留存  67
4.1 功能和約束  68
4.2 工作流 69
4.3 架構關注點  70
4.4 用戶反應  90
4.5 結論  90
參考文獻  90
第5章 面向資源的架構:在Web中  91
5.1 簡介  91
5.2 傳統的Web服務  92
5.3 Web  94
5.4 面向資源的架構  99
5.5 數據驅動的套用  102
5.6 套用面向資源的架構  103
5.7 結論  108
第6章 數據增長:Facebook平台的架構  109
6.1 簡介  109
6.2 創建一個社會關係Web服務  114
6.3 創建社會關係數據查詢服務  121
6.4 創建一個社會關係Web門戶:FBML  129
6.5 系統的支持功能  142
6.6 總結  147
第三部分 系統架構
第7章 Xen和虛擬化之美  151
7.1 簡介  151
7.2 Xenoservers  152
7.3 虛擬化的挑戰  154
7.4 半虛擬化  155
7.5 Xen的變換形式  158
7.6 改變的硬體,改變的Xen  163
7.7 經驗教訓  165
7.8 延伸閱讀  166
第8章 Guardian:一個容錯作業系統環境  169
8.1 Tandem/16,將來所有的計算機都會像這樣構建 170
8.2 硬體  170
8.3 物理布局  172
8.4 處理器架構  172
8.5 處理器間匯流排  178
8.6 輸入/輸出  178
8.7 進程結構  179
8.8 訊息系統  179
8.9 檔案系統  183
8.10 軼聞趣事  188
8.11 弊端  189
8.12 後繼者  190
8.13 延伸閱讀  191
第9章 JPC:一個純Java的x86 PC模擬程式  193
9.1 簡介  193
9.2 概念驗證  195
9.3 PC架構  198
9.4 Java性能技巧  199
9.5 把4GB放入4GB:這不起作用  200
9.6 保護模式的危險  203
9.7 從事一項毫無成功希望的鬥爭  206
9.8 劫持JVM  210
9.9 終極靈活性  220
9.10 終極安全性  222
9.11 第二次做會更好  223
第10章 元循環虛擬機的力量:Jikes RVM  225
10.1 背景  225
10.2 與運行時環境相關的傳言  227
10.3 Jikes RVM簡史  229
10.4 一個自足執行的運行時自舉  230
10.5 運行時組件  234
10.6 經驗教訓  246
參考文獻  247
第四部分 最終用戶套用架構
第11章 GNU Emacs:滋長的特性是其優勢  251
11.1 使用中的Emacs  252
11.2 Emacs的架構  254
11.3 滋長的特性  260
11.4 另外兩個架構  262
第12章 當集市開始構建教堂  267
12.1 簡介  267
12.2 KDE項目的歷史和組織結構  269
12.3 Akonadi  274
12.4 ThreadWeaver  289
第五部分 語言與架構
第13章 軟體架構:面向對象與面向函式  299
13.1 概述  299
13.2 函式式示例  302
13.3 函式式解決方案的模組性評價  305
13.4 面向對象視圖  313
13.5 面向對象模組性的評價和改進  319
13.6 代理:將操作封裝到對象中  323
致謝 328
參考文獻 328
第14章 重讀經典  331
14.1 所有東西都是對象  335
14.2 類型是隱式定義的  342
14.3 問題  348
14.4 磚塊和灰漿建築架構  352
參考資料  359
跋 漂亮地構建 363

序言

從編輯手裡拿到厚厚的《架構之美》譯稿時,恰巧是我剛剛講完一場訊息系統架構的講座之後。而正是在昨天,一位想要創業的朋友跟我說要尋找一位懂得“架構”的高人與他一起創業。要知道與代碼不同的是,“虛幻”的架構常常讓人認為其有很多玄妙之處,只因它大多難以落在紙上。特別是與很多大師談及架構時,經常落入他們的一些“陷阱”,並往往為自己達不到大師的精明與技巧而嘆息。殊不知,被我們所津津樂道的這些架構,是他們在日常工作里經歷了大量的錯誤、重複的嘗試、無數的代碼、長久的考驗所積澱下來的隻言片語。本書將數十人的經歷與隻言片語,經過深思熟慮後抽象出規律,使之可以不斷復用。而另一方面,又將架構的過程娓娓道來,嘗試讓讀者思考架構的過程與思路。在這裡,更多的過程與思考被展現出來,更多的原因與為什麼讓我們了解。這本書里展現了很多絢麗的故事,猶如士兵閱讀將軍的傳記一樣,閱讀本書將會讓你更鼓起勇氣追尋大師們的腳步,但永遠要記住,每一滴汗水才真正是你成長路上的每一個記號,要在自己的工作里更深地去理解每一處不同,架構出屬於自己的系統。感謝譯者和出版者為我們帶來這樣一本傳奇的架構故事書。

相關詞條

熱門詞條

聯絡我們