開源程序架構 卷一 [序言]

最近準備翻譯一個不錯的架構研究系列:The Architecture of Open Source Applications 尚辑。對架構感興趣的童子可以關注一下,或者對英語學習感興趣也可以屁使。全書兩大卷遍略,包含了40多個經典開源項目的架構解析,參與人員大多都是一線主力開發(fā)者璧诵。
??閑言少敘毁腿,獻上序言如下:
??Carpentry is an exacting craft, and people can spend their entire lives learning how to do it well. But carpentry is not architecture: if we step back from pitch boards and miter joints, buildings as a whole must be designed, and doing that is as much an art as it is a craft or science.

木工是一門要求嚴格的工藝辑奈,人們可以花一輩子的時間學習如何把它做好。但木工不是建筑學:如果我們從木板搭帳篷和接縫銜接中抽身來看已烤,建筑必須作為一個整體被設計鸠窗。這樣做是一門工藝或科學也是一門藝術。

Programming is also an exacting craft, and people can spend their entire lives learning how to do it well. But programming is not software architecture. Many programmers spend years thinking about (or wrestling with) larger design issues: Should this application be extensible? If so, should that be done by providing a scripting interface, through some sort of plugin mechanism, or in some other way entirely? What should be done by the client, what should be left to the server, and is "client-server" even a useful way to think about this application? These are not programming questions, any more than where to put the stairs is a question of carpentry.

編程也是一門要求嚴格的工藝胯究,人們可以窮其畢生精力學習如何把它做好稍计。但編程并不是軟件架構。許多程序猿花費數(shù)年思考(或斟酌)更重要的設計問題:這個應用程序可以被擴展嗎裕循?如果可以臣嚣,應該做一個腳本界面净刮,通過某種插件機制或者其它方法來完成?客戶端應該做什么硅则,應該在服務器端做什么淹父,對于這個應用程序“客戶端-服務器”是一個好的實現(xiàn)方式嗎?這些都不是編程問題怎虫。

Building architecture and software architecture have a lot in common, but there is one crucial difference. While architects study thousands of buildings in their training and during their careers, most software developers only ever get to know a handful of large programs well. And more often than not, those are programs they wrote themselves. They never get to see the great programs of history, or read critiques of those programs' designs written by experienced practitioners. As a result, they repeat one another's mistakes rather than building on one another's successes.

建筑架構和軟件架構有很多共通之處暑认,但有一個關鍵的區(qū)別。在培訓和職業(yè)生涯期間大审,建筑師會研究成千上萬的建筑物蘸际,而大多數(shù)軟件開發(fā)者只了解少數(shù)自己親身經歷的大型程序。他們從來沒有了解過大程序的歷史徒扶,或閱讀評論那些經驗豐富的從業(yè)者的設計和實現(xiàn)粮彤。結果,他們重復對方的錯誤而不是建立在彼此的成功姜骡。

This book is our attempt to change that. Each chapter describes the architecture of an open source application: how it is structured, how its parts interact, why it's built that way, and what lessons have been learned that can be applied to other big design problems. The descriptions are written by the people who know the software best, people with years or decades of experience designing and re-designing complex applications. The applications themselves range in scale from simple drawing programs and web-based spreadsheets to compiler toolkits and multi-million line visualization packages. Some are only a few years old, while others are approaching their thirtieth anniversary. What they have in common is that their creators have thought long and hard about their design, and are willing to share those thoughts with you. We hope you enjoy what they have written.

這本書是我們改變這種局面的嘗試导坟。每一章描述了一個開源程序的架構:它是如何構建的,各部分如何交互溶浴,為什么這樣構成乍迄,還有吸取的教訓(這些教訓也適用于其它項目的重要的設計問題)管引。這些描述由懂得最好軟件的人所寫士败,他們擁有幾年或幾十年的設計和重構復雜應用程序的經驗。從簡單的繪圖程序程序和基于web的電子表格到編譯器工具集和數(shù)百萬行的可視化軟件包褥伴。有些只有幾年歷史谅将,有的則接近三十年。他們的共同點是重慢,他們的創(chuàng)作者都經過漫長而艱難的設計饥臂,并且都愿意和你分享這些想法。我們希望你喜歡他們所寫的似踱。

生詞:
carpentry ['ka:p?ntri] : n.木器隅熙;木工工藝;木工業(yè)
craft [kra:ft] : n.工藝核芽;手藝囚戚;太空船
architecture ['ɑ?k?tekt??] : n.建筑學;建筑風格轧简;架構
pitch [p?t?] : n.瀝青驰坊;樹脂;球場
miter ['ma?t?] : n.斜接

wrestling ['resli?] :n. v.摔跤哮独;扭斗 wrestling with :為......絞盡腦汁拳芙;受困于.......
plugin [pl?g?n] : n.插件
mechanism ['m?k?n?z?m] : n.機制察藐;原理;

crucial ['kuru:??l] : adj.重要的
more often than not : 往往
critiques [kri'ti:ks] vt.評論舟扎;批判

lessons : n.經驗教訓分飞;課程
spreadsheets : n.電子表格
approaching : v.接近
anniversary [,?ni'v?:s?ri] : 周年紀念日

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市浆竭,隨后出現(xiàn)的幾起案子浸须,更是在濱河造成了極大的恐慌,老刑警劉巖邦泄,帶你破解...
    沈念sama閱讀 222,378評論 6 516
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件删窒,死亡現(xiàn)場離奇詭異,居然都是意外死亡顺囊,警方通過查閱死者的電腦和手機肌索,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,970評論 3 399
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來特碳,“玉大人诚亚,你說我怎么就攤上這事∥缗遥” “怎么了站宗?”我有些...
    開封第一講書人閱讀 168,983評論 0 362
  • 文/不壞的土叔 我叫張陵,是天一觀的道長益愈。 經常有香客問我梢灭,道長,這世上最難降的妖魔是什么蒸其? 我笑而不...
    開封第一講書人閱讀 59,938評論 1 299
  • 正文 為了忘掉前任敏释,我火速辦了婚禮,結果婚禮上摸袁,老公的妹妹穿的比我還像新娘钥顽。我一直安慰自己,他們只是感情好靠汁,可當我...
    茶點故事閱讀 68,955評論 6 398
  • 文/花漫 我一把揭開白布蜂大。 她就那樣靜靜地躺著,像睡著了一般蝶怔。 火紅的嫁衣襯著肌膚如雪奶浦。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 52,549評論 1 312
  • 那天添谊,我揣著相機與錄音财喳,去河邊找鬼。 笑死,一個胖子當著我的面吹牛耳高,可吹牛的內容都是我干的扎瓶。 我是一名探鬼主播,決...
    沈念sama閱讀 41,063評論 3 422
  • 文/蒼蘭香墨 我猛地睜開眼泌枪,長吁一口氣:“原來是場噩夢啊……” “哼概荷!你這毒婦竟也來了?” 一聲冷哼從身側響起碌燕,我...
    開封第一講書人閱讀 39,991評論 0 277
  • 序言:老撾萬榮一對情侶失蹤误证,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后修壕,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體愈捅,經...
    沈念sama閱讀 46,522評論 1 319
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 38,604評論 3 342
  • 正文 我和宋清朗相戀三年慈鸠,在試婚紗的時候發(fā)現(xiàn)自己被綠了蓝谨。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 40,742評論 1 353
  • 序言:一個原本活蹦亂跳的男人離奇死亡青团,死狀恐怖譬巫,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情督笆,我是刑警寧澤芦昔,帶...
    沈念sama閱讀 36,413評論 5 351
  • 正文 年R本政府宣布,位于F島的核電站娃肿,受9級特大地震影響咕缎,放射性物質發(fā)生泄漏。R本人自食惡果不足惜咸作,卻給世界環(huán)境...
    茶點故事閱讀 42,094評論 3 335
  • 文/蒙蒙 一锨阿、第九天 我趴在偏房一處隱蔽的房頂上張望宵睦。 院中可真熱鬧记罚,春花似錦、人聲如沸壳嚎。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,572評論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽烟馅。三九已至说庭,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間郑趁,已是汗流浹背刊驴。 一陣腳步聲響...
    開封第一講書人閱讀 33,671評論 1 274
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人捆憎。 一個月前我還...
    沈念sama閱讀 49,159評論 3 378
  • 正文 我出身青樓舅柜,卻偏偏與公主長得像,于是被迫代替她去往敵國和親躲惰。 傳聞我的和親對象是個殘疾皇子致份,可洞房花燭夜當晚...
    茶點故事閱讀 45,747評論 2 361

推薦閱讀更多精彩內容

  • **2014真題Directions:Read the following text. Choose the be...
    又是夜半驚坐起閱讀 9,581評論 0 23
  • 7月過去了,昨天學習真諦領悟小組集會础拨,總結了一下各自的7月氮块,革命沒有盡頭,完美沒有終點诡宗,加油滔蝉。 七月的最后一個周末...
    斯年華閱讀 92評論 0 0
  • 何為即時培訓芳悲,度娘也沒有給出明確的定義立肘。我妄自給它定義為:在發(fā)現(xiàn)問題后第一時間進行糾正指導,或組織培訓名扛。即時培訓主...
    禮尚往來可好閱讀 635評論 0 1
  • #微寫作#第1篇 “你最近氣色不錯呢谅年。”今天早餐的時候肮韧,同事這樣對我說融蹂。些許的歡喜之余,我再一次覺得運動的確是件值...
    ChanGi閱讀 291評論 0 3
  • 0 由于工作需要弄企,最近開始接觸MongoDB超燃,對于一個已經習慣了傳統(tǒng)SQL的程序員來說,進入NoSQL可以說是需要...
    一只老辣雞閱讀 1,761評論 6 13