開源程序架構(gòu) 卷一 [序言]

最近準(zhǔn)備翻譯一個不錯的架構(gòu)研究系列:The Architecture of Open Source Applications 。對架構(gòu)感興趣的童子可以關(guān)注一下,或者對英語學(xué)習(xí)感興趣也可以。全書兩大卷,包含了40多個經(jīng)典開源項(xiàng)目的架構(gòu)解析,參與人員大多都是一線主力開發(fā)者。
??閑言少敘,獻(xiàn)上序言如下:
??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.

木工是一門要求嚴(yán)格的工藝,人們可以花一輩子的時間學(xué)習(xí)如何把它做好。但木工不是建筑學(xué):如果我們從木板搭帳篷和接縫銜接中抽身來看,建筑必須作為一個整體被設(shè)計。這樣做是一門工藝或科學(xué)也是一門藝術(shù)。

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.

編程也是一門要求嚴(yán)格的工藝,人們可以窮其畢生精力學(xué)習(xí)如何把它做好。但編程并不是軟件架構(gòu)。許多程序猿花費(fèi)數(shù)年思考(或斟酌)更重要的設(shè)計問題:這個應(yīng)用程序可以被擴(kuò)展嗎?如果可以,應(yīng)該做一個腳本界面,通過某種插件機(jī)制或者其它方法來完成?客戶端應(yīng)該做什么,應(yīng)該在服務(wù)器端做什么,對于這個應(yīng)用程序“客戶端-服務(wù)器”是一個好的實(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.

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

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.

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

生詞:
carpentry ['ka:p?ntri] : n.木器;木工工藝;木工業(yè)
craft [kra:ft] : n.工藝;手藝;太空船
architecture ['ɑ?k?tekt??] : n.建筑學(xué);建筑風(fēng)格;架構(gòu)
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.機(jī)制;原理;

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

lessons : n.經(jīng)驗(yàn)教訓(xùn);課程
spreadsheets : n.電子表格
approaching : v.接近
anniversary [,?ni'v?:s?ri] : 周年紀(jì)念日

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • **2014真題Directions:Read the following text. Choose the be...
    又是夜半驚坐起閱讀 11,065評論 0 23
  • 7月過去了,昨天學(xué)習(xí)真諦領(lǐng)悟小組集會,總結(jié)了一下各自的7月,革命沒有盡頭,完美沒有終點(diǎn),加油。 七月的最后一個周末...
    斯年華閱讀 131評論 0 0
  • 何為即時培訓(xùn),度娘也沒有給出明確的定義。我妄自給它定義為:在發(fā)現(xiàn)問題后第一時間進(jìn)行糾正指導(dǎo),或組織培訓(xùn)。即時培訓(xùn)主...
    禮尚往來可好閱讀 674評論 0 1
  • #微寫作#第1篇 “你最近氣色不錯呢?!苯裉煸绮偷臅r候,同事這樣對我說。些許的歡喜之余,我再一次覺得運(yùn)動的確是件值...
    ChanGi閱讀 352評論 0 3
  • 0 由于工作需要,最近開始接觸MongoDB,對于一個已經(jīng)習(xí)慣了傳統(tǒng)SQL的程序員來說,進(jìn)入NoSQL可以說是需要...
    一只老辣雞閱讀 1,866評論 6 13

友情鏈接更多精彩內(nèi)容