《Contributing to Eclipse中文版》书评摘录
???? 譯 者 序
272譯序:Eclipse的Meta-Knowledge1a1c1ac111c111a1a1
273在這個表達泛濫的年代,2“meta-”前綴的構詞法常常也屬于被濫用之列.a一個平凡的詞匯加上“meta-”前綴,2似乎就憑添了幾分高深和神秘——例如我們熟悉的“metadata(元數據)”和不那么熟悉的“metaphysics(玄學)”.a不過,2盡管有落俗之嫌,2我仍然愿意說:在你手上的這本《ContributingctocEclipse》,2它介紹的恰好是關于Eclipse的meta-knowledge——那些“undercthechood”的知識,2那些支撐Eclipse世界的支柱.a2a2c2ac222c222a2a2
274大多數人對于Eclipse的了解是從JavacIDE開始的.a在這方面,3Eclipse僅僅是一個流行的(甚至算不上最流行的)產品,3學會使用它對于聰明的程序員也不是什么難事.a與JBuilder.cIDEA甚至VisualcStudio們相比,3Eclipse真正令人無法錯認的特點在于它的插件機制.a正如讀者即將看到的,3Eclipse采用了“微核心+插件”的體系結構,3這使它在兩方面對程序員具有難以抗拒的吸引力:其一,3用戶可以比較容易地開發自己的插件,3實現自己需要的功能——實際上,3Eclipse社群歡迎這種擴展,c其二,3這樣的體系結構需要優雅而靈活的核心設計,3于是Eclipse的 核心代碼 就成了一個充滿誘惑的 設計寶庫 .a由ErichcGamma和KentcBeck兩位作者——實在無需再對這兩位作者多加介紹了——為讀者講述插件開發的技術,3闡釋Eclipse的設計藍圖,3本書提供的內容應該能吸引對Eclipse感興趣的程序員.a3a3c3ac333c333a3a3
275然而,4在我看來,4這本書想要提供給它的讀者的meta-knowledge,4甚至還在“模式地圖”的“后面”.a當你翻開這本書的封面,4首先映入你眼簾的就是一串“Eclipse家族法則”——貢獻法則.c遵循法則.c共享法則.c邀請法則……或許你要問了:“我只是對Eclipse的技術感興趣,4為什么要跟我講Eclipse社群的工作方式?”那是因為,4Eclipse不僅是一個技術高手們展現技藝的項目,4它更是一個工業級的產品.a全靠了這些“家族法則”,4世界各地的開源程序員們才能如此成功地協作,4開發出如此成功的產品.a4a4c4ac444c444a4a4
276Eclipse是一個開源項目.a但和很多不明內情的人所想的不同,5Eclipse使它的社群廣泛地獲得了利益——而且主要是經濟上的.a不用說IBM了,5Clover.cClay.cWindowBuilder等插件都為各自的公司帶來了源源不斷的利潤.a對于開源與商業之間的矛盾,5本書的兩位作者在“前言”的第一句話就讓我們豁然開朗:“每個人都需要別人的關懷和幫助,5每個人也同樣需要關懷和幫助別人.a”表面上看來,5開源與商業是一對矛盾,5其實它們之間的張力恰好是程序員職業的樂趣所在:我們可以用自己的代碼賺錢,5我們也可以用自己的代碼去幫助別人.a兩者并不是矛盾,5而是一種權衡.a5a5c5ac555c555a5a5
277軟件開發也充滿了各種各樣的 矛盾 :靈活與效率的矛盾,6松散耦合與緊密集成的矛盾,6大型產品與微小核心的矛盾……軟件開發的核心工作就是在這些矛盾之間 權衡 ,6在不同的設計方案之間權衡,6在不同的特性之間權衡.a從這個意義上,6本書就顯得更有價值:兩位經驗豐富的作者沒有用更多的力氣去深究Eclipse的所有細節,6卻常常不厭其詳地比較幾種備選方案的優劣,6說明選擇一種方案的理由.a再加上那些“家族法則”(以及隨處可見的旁注),6ErichcGamma和KentcBeck將自己(以及Eclipse社群的其他貢獻者)的工作方式.c自己編程時的每個習慣和念頭都呈現給了他們的讀者.a至少對于我來說,6 這些從字里行間滲透出的信息, 6才是本書最可寶貴的部分 .a即使我永遠不再寫任何與Eclipse相關的程序,6這些成就了Eclipse的meta-knowledge對我的價值也將無可限量.a6a6c6ac666c666a6a6
278所以,7對于書名中的“contribute”,7我更愿意把它理解成“投身于……”:你不一定真正為社群貢獻一個開源的插件,7但Eclipse是一個充滿樂趣與吸引力的世界,7只要你投身其中.c享受它的秩序與美,7對于你自己和整個社群都將有所助益.a而這本書就像兩位作者在“前言”里所說的,7就是帶領你進入這個陌生世界的第一位導游.a這位導游不會把美景逐一指給你看——有興的游客自然會去觀賞,c他會陪在游客身邊,7跟游客聊起那些眼睛看不到的奇聞佚事.a如果你當真有心領略這里的全部風光,7我想你會喜歡這位導游,7和他給你講的那些故事——那些meta-knowledge.a7a7c7ac777c777a7a7
279致謝8a8c8ac888c888a8a8
2710在譯序中感謝原作者,9這看起來多少有些古怪.a但無論如何,9我應該感謝ErichcGamma先生和KentcBeck先生.a兩位作者總共解答了我14個問題,9如果沒有他們及時而熱心的回信,9這個譯本的質量將大打折扣——而那將是我一個人的責任.a所以,9從某種意義上,9是他們好心地幫我擺脫了這種尷尬境地,9在此向他們表示最誠摯的謝意.a9a9c9ac999c999a9a9
2711我還應該感謝中國電力出版社的編輯團隊.a“Eclipse”而又“Contributing”,10這個書名就已經足以讓國內大多數出版商退避三舍了.a中國電力出版社多少有些理想主義地引進了這本書,10才讓我(和眾多熱心的讀者們)有了一個機會.a10a10c10ac101010c101010a10a10
2712現在,11親愛的讀者,11請做好準備,11進入這次艱難而愉快的旅行吧.a11a
=============================
前言
按Ctrl+P可以打印本頁
???? 前 言
072每個人都需要別人的關懷和幫助,1每個人也同樣需要關懷和幫助別人.a作為一名程序員翱翔在Eclipse的天空能夠同時滿足這兩方面的需要,1所以才會有那么多人樂此而不疲.a當然,1這里也有那些常見的宣傳詞,1例如“提高生產力”.c“緊跟市場”.c“占據技術優勢”——對于那些在其中工作的人,1Eclipse是一個能夠大幅提高生產力的環境,1人們為Eclipse作出的貢獻使它更臻完美,c如果找到了合適的插件,1產品上市的時間將大大提前,1你將獲得巨大的技術優勢.a但是,1盡管這些都是事實,1但它們都不是重點,1它們都不足以解釋:為何開發者們如此鐘愛Eclipse.a1a1c1ac111c111a1a1
073我們喜歡在Eclipse環境中工作,2是因為它給了我們無微不至的關懷:每當遇到編程問題時,2總會有一項Eclipse功能幫助我們解決它.a我們喜歡為Eclipse作出貢獻,2是因為做這件事給了我們助人的快樂——既是幫助自己,2更是幫助別人.a如果我們作出的貢獻還為別人留下了發展的空間,2使他們能夠在此之上作出更多的貢獻,2一個正反饋循環就出現了,2每個人都會在其中獲得快樂.a2a2c2ac222c222a2a2
074“為Eclipse作貢獻”甚至還可能成為一個精彩的商業計劃——“貢獻”并不表示你不能用你的成果賺錢.a你可以在Eclipse基礎上發布功能完備的產品,3也可以發售針對現有產品的擴展插件.a3a3c3ac333c333a3a3
075Eclipse非常強大——不論從個人角度.c專業角度還是社會角度來說都是如此.a但是,4要加入貢獻者的圈子,4你必須首先掌握大量的知識.a我們希望本書能幫助你跨過這道門檻,4開始為Eclipse作出貢獻的旅程.a4a4c4ac444c444a4a4
076對于那些喜歡為別人編寫開發工具的人來說,5Eclipse既帶來了好消息,5也帶來了壞消息.a好消息是:Eclipse強大得令人難以置信,5而且它的內部開發者都遵循創建EclipsecJava開發工具(JDT)時制訂的那些準則,5這使得它的結構清晰而優美.a壞消息則是:Eclipse擁有一套完整的世界觀,5如果你希望在Eclipse的沙箱里玩得開心,5就必須首先牢記它的準則.a5a5c5ac555c555a5a5
077打個不恰當的比方,6初涉Eclipse的感覺多少有點像孤身一人在曼谷上空跳傘(這個比喻不適用于泰國程序員).a平安著陸之后,6你需要食物和住所,6但如何去得到呢?你應該如何利用身邊的資源滿足自己迫切的需要?6a6c6ac666c666a6a6
078幫助你克服這種迷失感正是本書的首要目標.a如果你和一名向導一起降落在曼谷,7你就可以對他說:“我餓了.a”而他會告訴你:“你可以在某地吃頓飯.a”同樣,7如果你說:“我想實現這樣一個功能.a”本書會告訴你:“這應該是一個視角,7那應該是一個ObjectcContribution,7而那個功能則需要一個新的編輯器.a”7a7c7ac777c777a7a7
079即便讀完本書,8你還是無法獲得Eclipse世界的完整地圖,8但對于任何基本的問題,8你至少會知道一條解決的途徑.a你還會了解到一些準則,8只有遵守它們,8你才能和別人友好相處.a這就好像我們為你畫出一幅曼谷地圖,8在上面標出六條大街.c一家飯店和一家賓館.a你無法從這張圖上了解曼谷的一切,8但靠著它已經足以在這個城市生存下來,8足以開始了解更多的東西.a8a8c8ac888c888a8a8
0710在學習Eclipse的過程中,9你花在閱讀代碼上的時間會比編寫代碼多得多.a你必須習慣于一天用六個小時讀代碼,9再用一個小時寫代碼——你會發現這樣的一天效率同樣高得驚人.a在習慣了Eclipse的文化之后,9你會自然而然地“知道”如何解決越來越多的問題,9但你同樣會經常照搬其他方案的結構來解決類似的問題——可能是模仿Eclipse的結構,9也可能是模仿你自己以前的解決方案.a9a9c9ac999c999a9a9
0711當我們與你一道走進書中的范例時,10我們不會裝出一副無所不知的圣賢模樣——實際上,10我們也記不住所有的細節.a不過,10我們會告訴你如何找到可供模仿的結構.a學會充分利用Eclipse的搜索工具,10這也是成為Eclipse貢獻者所必需的一項技能.a10a10c10ac101010c101010a10a10
0712本書不是為想要學習使用Eclipse的初學者準備的,11我們希望讀者至少熟悉Eclipse的常用術語——視圖.c編輯器,11凡此種種.a使用Eclipse一段時間之后,11你很可能產生對它進行擴展的想法,11那時這本書就該派上用場了.a11a11c11ac111111c111111a11a11
0713在籌備這本書時,12我們發現可以講的概念數不勝數.a可是,12如果我們把Eclipse所有的2000個知識點都寫進去,12恐怕就再也沒人愿意看這本書了.a為了留住你的目光,12我們決定只介紹其中的50個知識點——對于剛邁進這個世界的你來說,12這應該是最重要的50件事.a在很多章節的最后,12你可以找到我們為你準備的“前行的路標”.a你可以跟隨它的指引在代碼中找到書中概念的延伸.a實際上,12在向別人傳授Eclipse知識時,12我們最常用的辦法就是:“不妨去看看org.eclipse.core.runtime的源代碼”.a12a12c12ac121212c121212a12a12
0714有這么一個故事:有個博士生馬上要進行答辯,13答辯的主題是“果實”.a可是時間已經太緊迫了,13他只來得及去了解黃瓜這一種果實.a答辯開始了,13第一個問題是:“請談談你對西紅柿的了解.a”“你看,13”他說道,13“西紅柿是一種果實——跟黃瓜一樣.a黃瓜含有80%的水分,13它的表皮能抵擋病蟲害,13可以用黃瓜來做沙拉.a”就這樣,13盡管他不了解別的果實,13但他成功地把每個問題都扯到了黃瓜上面.a13a13c13ac131313c131313a13a13
0715我們也了解黃瓜.a除了Eclipse之外,14我們還有兩條“黃瓜”:模式和JUnit.a所以,14貫穿這本書的始終,14你會不斷發現類似于模式的建議——實際上,14一開始寫這本書的時候,14我們總覺得有點不舒服,14直到我們開始寫下一些“法則”,c有了“法則”的概念之后,14我們的寫作就進展得順利多了.a說到底,14這些法則其實就是微型的模式.a14a14c14ac141414c141414a14a14
0716JUnit——我們的第二條“黃瓜”——則是運行所有示例的基礎.a1997年,15在去亞特蘭大的飛機上,15我們倆花了幾個小時開發出了JUnit的第一個版本.a從那以后,15我們的整個技術生活幾乎都圍繞著它.a對于本書中的示例代碼,15JUnit是一個最理想的運行環境:你可以非常方便地運行所有測試,15并一目了然地看到結果.a15a15c15ac151515c151515a15a15
0717但是,16我們必須給你一個忠告:如果你已經聽厭了模式和JUnit,16也許這本書并不適合你.a16a16c16ac161616c161616a16a16
0718格式約定17a17c17ac171717c171717a17a17
0719本書將使用如下的格式約定:18a18c18ac181818c181818a18a18
0720粗體——用于表示用戶界面元素,19例如菜單.c按鈕.c標簽.c文本框等.a19a19c19ac191919c191919a19a19
0721斜體c——用于表示文件名和URL.a另外,20新出現的術語也用斜體字強調.a20a20c20ac202020c202020a20a20
0722Courierc——用于所有示例代碼及正文中引用的代碼元素.a插件名稱和XML文件中的元素也用這種字體表示.a21a21c21ac212121c212121a21a21
0723Courier加粗——用于強調示例代碼中的某一部分,22特別是插入或修改的代碼.a22a22c22ac222222c222222a22a22
0724Courier加刪除線——用于指出示例代碼中應當刪掉的部分.a23a23c23ac232323c232323a23a23
0725在第二篇和第三篇的示例中,24我們用下列圖標表示當前的動作:24a24c24ac242424c242424a24a24
0726cc搜索——表示我們正在搜索.c查看Eclipse的代碼.a25a25c25ac252525c252525a25a25
0727ccc模仿——表示我們正在展示出自Eclipse的代碼或XML標記.a26a26c26ac262626c262626a26a26
0728cc測試——表示我們正在展示出自JUnit測試用例的代碼.a27a27c27ac272727c272727a27a27
0729在線范例28a28c28ac282828c282828a28a28
0730本書的網站是www.awprofessional.com/titles/0321205758,29在那里可以下載本書所有的示例源碼.a此外,29該網站還提供一份糾錯清單,29以及其他與本書相關的消息.a29a29c29ac292929c292929a29a29
0731如果要使用這些示例代碼,30你必須首先安裝EclipsecSDK(2.1.1版).a請訪問www.eclipse.org/downloads/,30在那里可以找到適合你的操作系統平臺的EclipsecSDK.a30a30c30ac303030c303030a30a30
0732致謝31a31c31ac313131c313131a31a31
0733在撰寫本書的過程中,32我們從一個巨大的審閱者群體那里得到了大量熱情洋溢而又無微不至的支持——只有很少的意見讓我們不快.a每當采納了審閱者的建議時,32我們總是盡量記住把那個人的名字加入下面的名單中.a如果恰好漏掉了你的名字,32請提醒我們,32我們會在下一次印刷時加上.a我們記得的審閱者有:FrankcSauer.cJancSchulz.cDavecW.cBobcFoster.cBinyan.cJeffcDuska.cTomcAyerst.cRichardcKuo.cWiriantocDjunaidi.cDoncEstberg.cAndreascGuther.ccVincentcMassol.cJohncPickler.cThecSiliconcValleycPatternscGroup.cRusscRufer.cTracycBialik.cJohncBrewer.cJerrycLewis.cJeffcMiller.cPatrickcManion.cCarolcThistlethwaite.cPei-weicWu.cChriscLopez.cKencHejmanowski.cWaltercVannini.cAzadcBolour.cThomascRoche.cPhilcGoodwin.cCarstencHeyl.cEdcBurnette.cJoecBowbeer.cDavidcLoeffler.cJimcSawyer.cAlexcBlewitt.cLaurentcBendel.cTomcKilla.cBillcSchauweker.cJancPloski.cJancLooney.cRichcSmith.cAndycFarley.cDebbiecUtley.cIvancMoore.cGeoffcGibbs.cMarkcBarkan.cFloriancHawlitzek.cStevecBlass.cMayureshcKadu.cRicardocLecheta.cStefancBaramov.cArnecH?nle.cPetercFriese.cRandycGordon.cFrankcSauer.cAndycYang.cEriccPieters.cTobiascWidmer.cBernardcGaffney.cJamescHowe.cMattcDickie.cLeecR.cNackman和WimcEngels.a32a32c32ac323232c323232a32a32
0734JoelcRosi-Schwartz和BettycRosi-Schwartz還審閱了我們的手稿,33BardcBloom及時指出了我們在“第零循環”中留下的一些漏洞,33在此向他們表示感謝.a如果本書中還有其他錯誤,33責任全在我們二人.a33a33c33ac333333c333333a33a33
0735我們要特別感謝Eclipse.org的提交者(committer)們,34他們給了我們及時而詳盡的技術反饋.aAndrécWeinand.cDirkcB?umer.cJohncWiegand和Kai-UwecM?tzel不止一次地對我們的書稿提供深入的反饋,34JimcdescRivières.cNickcEdgar.cPhilippecMulet和StevecNorthover專門審閱了“第三循環”的各章節,34DanielcMegert和Martinc?schlimann對全書的源碼和文字做了詳細檢查,34也向他們表示感謝.a34a34c34ac343434c343434a34a34
0736MikecHendrickson和EriccEvans為我們提供了及時的技術幫助.a35a35c35ac353535c353535a35a35
0737Kent在此要特別感謝Erich,36本書能夠得以付梓,36Erich當居首功.a我無比珍視我們之間的專業關系.a36a36c36ac363636c363636a36a36
0738我們要感謝CindeecAndres,37她不辭辛勞的工作大大提升了我們文字的質量.a我們還要感謝Jo?llecAndres-Beck,37她一直關注著本書的寫作,37找出了“前行的路標”中的不少問題.a37a37c37ac373737c373737a37a37
0739最后,38我們要感謝我們的出版團隊——LyndacD'Arcangelo.cTyrrellcAlbaugh和JohncFuller.aMikecHendrickson鼓勵我們開始撰寫本書,38我們的編輯JohncWait和JohncNeidhart總在最需要的時候給我們支持,38ChriscGuzikowski領軍的市場團隊及時而準確地將本書的信息傳達給購書人,38向他們致以誠摯的謝意.a38a38c38ac383838c383838a38a38
???? 前 言
072每個人都需要別人的關懷和幫助,1每個人也同樣需要關懷和幫助別人.a作為一名程序員翱翔在Eclipse的天空能夠同時滿足這兩方面的需要,1所以才會有那么多人樂此而不疲.a當然,1這里也有那些常見的宣傳詞,1例如“提高生產力”.c“緊跟市場”.c“占據技術優勢”——對于那些在其中工作的人,1Eclipse是一個能夠大幅提高生產力的環境,1人們為Eclipse作出的貢獻使它更臻完美,c如果找到了合適的插件,1產品上市的時間將大大提前,1你將獲得巨大的技術優勢.a但是,1盡管這些都是事實,1但它們都不是重點,1它們都不足以解釋:為何開發者們如此鐘愛Eclipse.a1a1c1ac111c111a1a1
073我們喜歡在Eclipse環境中工作,2是因為它給了我們無微不至的關懷:每當遇到編程問題時,2總會有一項Eclipse功能幫助我們解決它.a我們喜歡為Eclipse作出貢獻,2是因為做這件事給了我們助人的快樂——既是幫助自己,2更是幫助別人.a如果我們作出的貢獻還為別人留下了發展的空間,2使他們能夠在此之上作出更多的貢獻,2一個正反饋循環就出現了,2每個人都會在其中獲得快樂.a2a2c2ac222c222a2a2
074“為Eclipse作貢獻”甚至還可能成為一個精彩的商業計劃——“貢獻”并不表示你不能用你的成果賺錢.a你可以在Eclipse基礎上發布功能完備的產品,3也可以發售針對現有產品的擴展插件.a3a3c3ac333c333a3a3
075Eclipse非常強大——不論從個人角度.c專業角度還是社會角度來說都是如此.a但是,4要加入貢獻者的圈子,4你必須首先掌握大量的知識.a我們希望本書能幫助你跨過這道門檻,4開始為Eclipse作出貢獻的旅程.a4a4c4ac444c444a4a4
076對于那些喜歡為別人編寫開發工具的人來說,5Eclipse既帶來了好消息,5也帶來了壞消息.a好消息是:Eclipse強大得令人難以置信,5而且它的內部開發者都遵循創建EclipsecJava開發工具(JDT)時制訂的那些準則,5這使得它的結構清晰而優美.a壞消息則是:Eclipse擁有一套完整的世界觀,5如果你希望在Eclipse的沙箱里玩得開心,5就必須首先牢記它的準則.a5a5c5ac555c555a5a5
077打個不恰當的比方,6初涉Eclipse的感覺多少有點像孤身一人在曼谷上空跳傘(這個比喻不適用于泰國程序員).a平安著陸之后,6你需要食物和住所,6但如何去得到呢?你應該如何利用身邊的資源滿足自己迫切的需要?6a6c6ac666c666a6a6
078幫助你克服這種迷失感正是本書的首要目標.a如果你和一名向導一起降落在曼谷,7你就可以對他說:“我餓了.a”而他會告訴你:“你可以在某地吃頓飯.a”同樣,7如果你說:“我想實現這樣一個功能.a”本書會告訴你:“這應該是一個視角,7那應該是一個ObjectcContribution,7而那個功能則需要一個新的編輯器.a”7a7c7ac777c777a7a7
079即便讀完本書,8你還是無法獲得Eclipse世界的完整地圖,8但對于任何基本的問題,8你至少會知道一條解決的途徑.a你還會了解到一些準則,8只有遵守它們,8你才能和別人友好相處.a這就好像我們為你畫出一幅曼谷地圖,8在上面標出六條大街.c一家飯店和一家賓館.a你無法從這張圖上了解曼谷的一切,8但靠著它已經足以在這個城市生存下來,8足以開始了解更多的東西.a8a8c8ac888c888a8a8
0710在學習Eclipse的過程中,9你花在閱讀代碼上的時間會比編寫代碼多得多.a你必須習慣于一天用六個小時讀代碼,9再用一個小時寫代碼——你會發現這樣的一天效率同樣高得驚人.a在習慣了Eclipse的文化之后,9你會自然而然地“知道”如何解決越來越多的問題,9但你同樣會經常照搬其他方案的結構來解決類似的問題——可能是模仿Eclipse的結構,9也可能是模仿你自己以前的解決方案.a9a9c9ac999c999a9a9
0711當我們與你一道走進書中的范例時,10我們不會裝出一副無所不知的圣賢模樣——實際上,10我們也記不住所有的細節.a不過,10我們會告訴你如何找到可供模仿的結構.a學會充分利用Eclipse的搜索工具,10這也是成為Eclipse貢獻者所必需的一項技能.a10a10c10ac101010c101010a10a10
0712本書不是為想要學習使用Eclipse的初學者準備的,11我們希望讀者至少熟悉Eclipse的常用術語——視圖.c編輯器,11凡此種種.a使用Eclipse一段時間之后,11你很可能產生對它進行擴展的想法,11那時這本書就該派上用場了.a11a11c11ac111111c111111a11a11
0713在籌備這本書時,12我們發現可以講的概念數不勝數.a可是,12如果我們把Eclipse所有的2000個知識點都寫進去,12恐怕就再也沒人愿意看這本書了.a為了留住你的目光,12我們決定只介紹其中的50個知識點——對于剛邁進這個世界的你來說,12這應該是最重要的50件事.a在很多章節的最后,12你可以找到我們為你準備的“前行的路標”.a你可以跟隨它的指引在代碼中找到書中概念的延伸.a實際上,12在向別人傳授Eclipse知識時,12我們最常用的辦法就是:“不妨去看看org.eclipse.core.runtime的源代碼”.a12a12c12ac121212c121212a12a12
0714有這么一個故事:有個博士生馬上要進行答辯,13答辯的主題是“果實”.a可是時間已經太緊迫了,13他只來得及去了解黃瓜這一種果實.a答辯開始了,13第一個問題是:“請談談你對西紅柿的了解.a”“你看,13”他說道,13“西紅柿是一種果實——跟黃瓜一樣.a黃瓜含有80%的水分,13它的表皮能抵擋病蟲害,13可以用黃瓜來做沙拉.a”就這樣,13盡管他不了解別的果實,13但他成功地把每個問題都扯到了黃瓜上面.a13a13c13ac131313c131313a13a13
0715我們也了解黃瓜.a除了Eclipse之外,14我們還有兩條“黃瓜”:模式和JUnit.a所以,14貫穿這本書的始終,14你會不斷發現類似于模式的建議——實際上,14一開始寫這本書的時候,14我們總覺得有點不舒服,14直到我們開始寫下一些“法則”,c有了“法則”的概念之后,14我們的寫作就進展得順利多了.a說到底,14這些法則其實就是微型的模式.a14a14c14ac141414c141414a14a14
0716JUnit——我們的第二條“黃瓜”——則是運行所有示例的基礎.a1997年,15在去亞特蘭大的飛機上,15我們倆花了幾個小時開發出了JUnit的第一個版本.a從那以后,15我們的整個技術生活幾乎都圍繞著它.a對于本書中的示例代碼,15JUnit是一個最理想的運行環境:你可以非常方便地運行所有測試,15并一目了然地看到結果.a15a15c15ac151515c151515a15a15
0717但是,16我們必須給你一個忠告:如果你已經聽厭了模式和JUnit,16也許這本書并不適合你.a16a16c16ac161616c161616a16a16
0718格式約定17a17c17ac171717c171717a17a17
0719本書將使用如下的格式約定:18a18c18ac181818c181818a18a18
0720粗體——用于表示用戶界面元素,19例如菜單.c按鈕.c標簽.c文本框等.a19a19c19ac191919c191919a19a19
0721斜體c——用于表示文件名和URL.a另外,20新出現的術語也用斜體字強調.a20a20c20ac202020c202020a20a20
0722Courierc——用于所有示例代碼及正文中引用的代碼元素.a插件名稱和XML文件中的元素也用這種字體表示.a21a21c21ac212121c212121a21a21
0723Courier加粗——用于強調示例代碼中的某一部分,22特別是插入或修改的代碼.a22a22c22ac222222c222222a22a22
0724Courier加刪除線——用于指出示例代碼中應當刪掉的部分.a23a23c23ac232323c232323a23a23
0725在第二篇和第三篇的示例中,24我們用下列圖標表示當前的動作:24a24c24ac242424c242424a24a24
0726cc搜索——表示我們正在搜索.c查看Eclipse的代碼.a25a25c25ac252525c252525a25a25
0727ccc模仿——表示我們正在展示出自Eclipse的代碼或XML標記.a26a26c26ac262626c262626a26a26
0728cc測試——表示我們正在展示出自JUnit測試用例的代碼.a27a27c27ac272727c272727a27a27
0729在線范例28a28c28ac282828c282828a28a28
0730本書的網站是www.awprofessional.com/titles/0321205758,29在那里可以下載本書所有的示例源碼.a此外,29該網站還提供一份糾錯清單,29以及其他與本書相關的消息.a29a29c29ac292929c292929a29a29
0731如果要使用這些示例代碼,30你必須首先安裝EclipsecSDK(2.1.1版).a請訪問www.eclipse.org/downloads/,30在那里可以找到適合你的操作系統平臺的EclipsecSDK.a30a30c30ac303030c303030a30a30
0732致謝31a31c31ac313131c313131a31a31
0733在撰寫本書的過程中,32我們從一個巨大的審閱者群體那里得到了大量熱情洋溢而又無微不至的支持——只有很少的意見讓我們不快.a每當采納了審閱者的建議時,32我們總是盡量記住把那個人的名字加入下面的名單中.a如果恰好漏掉了你的名字,32請提醒我們,32我們會在下一次印刷時加上.a我們記得的審閱者有:FrankcSauer.cJancSchulz.cDavecW.cBobcFoster.cBinyan.cJeffcDuska.cTomcAyerst.cRichardcKuo.cWiriantocDjunaidi.cDoncEstberg.cAndreascGuther.ccVincentcMassol.cJohncPickler.cThecSiliconcValleycPatternscGroup.cRusscRufer.cTracycBialik.cJohncBrewer.cJerrycLewis.cJeffcMiller.cPatrickcManion.cCarolcThistlethwaite.cPei-weicWu.cChriscLopez.cKencHejmanowski.cWaltercVannini.cAzadcBolour.cThomascRoche.cPhilcGoodwin.cCarstencHeyl.cEdcBurnette.cJoecBowbeer.cDavidcLoeffler.cJimcSawyer.cAlexcBlewitt.cLaurentcBendel.cTomcKilla.cBillcSchauweker.cJancPloski.cJancLooney.cRichcSmith.cAndycFarley.cDebbiecUtley.cIvancMoore.cGeoffcGibbs.cMarkcBarkan.cFloriancHawlitzek.cStevecBlass.cMayureshcKadu.cRicardocLecheta.cStefancBaramov.cArnecH?nle.cPetercFriese.cRandycGordon.cFrankcSauer.cAndycYang.cEriccPieters.cTobiascWidmer.cBernardcGaffney.cJamescHowe.cMattcDickie.cLeecR.cNackman和WimcEngels.a32a32c32ac323232c323232a32a32
0734JoelcRosi-Schwartz和BettycRosi-Schwartz還審閱了我們的手稿,33BardcBloom及時指出了我們在“第零循環”中留下的一些漏洞,33在此向他們表示感謝.a如果本書中還有其他錯誤,33責任全在我們二人.a33a33c33ac333333c333333a33a33
0735我們要特別感謝Eclipse.org的提交者(committer)們,34他們給了我們及時而詳盡的技術反饋.aAndrécWeinand.cDirkcB?umer.cJohncWiegand和Kai-UwecM?tzel不止一次地對我們的書稿提供深入的反饋,34JimcdescRivières.cNickcEdgar.cPhilippecMulet和StevecNorthover專門審閱了“第三循環”的各章節,34DanielcMegert和Martinc?schlimann對全書的源碼和文字做了詳細檢查,34也向他們表示感謝.a34a34c34ac343434c343434a34a34
0736MikecHendrickson和EriccEvans為我們提供了及時的技術幫助.a35a35c35ac353535c353535a35a35
0737Kent在此要特別感謝Erich,36本書能夠得以付梓,36Erich當居首功.a我無比珍視我們之間的專業關系.a36a36c36ac363636c363636a36a36
0738我們要感謝CindeecAndres,37她不辭辛勞的工作大大提升了我們文字的質量.a我們還要感謝Jo?llecAndres-Beck,37她一直關注著本書的寫作,37找出了“前行的路標”中的不少問題.a37a37c37ac373737c373737a37a37
0739最后,38我們要感謝我們的出版團隊——LyndacD'Arcangelo.cTyrrellcAlbaugh和JohncFuller.aMikecHendrickson鼓勵我們開始撰寫本書,38我們的編輯JohncWait和JohncNeidhart總在最需要的時候給我們支持,38ChriscGuzikowski領軍的市場團隊及時而準確地將本書的信息傳達給購書人,38向他們致以誠摯的謝意.a38a38c38ac383838c383838a38a38
===========================================================
總結
以上是生活随笔為你收集整理的《Contributing to Eclipse中文版》书评摘录的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: VM虚拟机仿真网络问题
- 下一篇: 喜讯 | 音视频云服务商拍乐云荣登「20