官术网_书友最值得收藏!

前言

搞IT技術已經有十多年的歷史了,接觸Java語言也有一定的時間了。為什么到現在才要寫這本書呢?幾年前我開發過一個ORM模型框架,當時的思路居然與iBATIS框架有一些類似(可見英雄所見略同)。于是,為了更好地實現這個ORM框架,我仔細閱讀了iBATIS框架的源碼。在閱讀過程中,由于iBATIS框架代碼層層疊疊、峰回路轉、跌宕起伏,為了理清框架的主要思路和核心實現方式、加快理解速度和加深理解深度,我用PowerDesigner畫了一些UML圖,并做了一些閱讀筆記和備忘錄。一個月下來,基本上從總體架構上了解了iBATIS框架的實現。這時候閱讀筆記和備忘錄已大約積累了好幾萬字。我想,如果能把這些筆記和備忘錄進行系統化、簡單化、章節化的整理,就可以給更多iBATIS愛好者使用。同樣,這些學習心得對軟件架構師、軟件開發工程師等都非常有價值,所謂它山之石,可以攻玉。于是,我決定寫一本關于iBATIS框架源碼剖析的書籍。而在實際操作中,我覺得在講述iBATIS源碼的同時,已經涉及很多關于ORM的內容,也有一些Java的基礎處理和編程技巧,甚至還包括一些經典的設計模式。

在國內介紹和講述開源軟件的書可謂是琳瑯滿目,不勝枚舉。但這些書基本上都歸納為應用型或工具型,更趨向于軟件的使用說明或使用指南之類。而且,在全球這么多開源框架代碼中,我國做出的貢獻還是非常少的。分析原因,主要是我們熱衷于拿來主義,直接就用,能解決問題就行。而對于源碼,也許只有在使用過程中遇到了障礙,為了解決問題才做一些源碼閱讀和分析,這也是國內許多人很少去分析開源框架源碼的原因,而且介紹開源軟件實現的書籍也是鳳毛麟角。我寫這本書的目的,就是希望在這方面能與大家多分享一些學習心得和體會。

對于開源代碼,能讀懂并搞明白是一回事。但是理解了源代碼,把這些東西用文字表述出來,讓別人也能理解卻是另一回事。我覺得后者的難度遠遠大于前者。當然,如果僅僅是簡單地介紹iBATIS框架,我相信只要有幾句話就能說清楚。但是要把一個實現框架說得條理清晰、層次鮮明,這不僅僅要求有一定的技術背景,還要有文字語言的表達和掌控能力。我用一個月時間就基本上搞明白了iBATIS框架的內容,但是要把它寫出來,的確非常頭疼。有的時候要非常細致地去推敲,因為很多瑣碎的細節決定了整個框架的核心,這需要有一定的耐心和抽象能力。同時閱讀和理解程序源碼是一種實踐性非常強的工作,所謂讀書破萬卷,下筆如有神,這是一個真理。但若閱讀并理解了幾十萬行程序代碼后,再來編寫程序代碼,那基本上就可以非常有章法并有一定的深度了。事實上,我國大學目前計算機教育的水平是基礎性質的,對于如何去閱讀源碼沒有相關的課程來進行講授。對于源碼的分析有什么辦法、手段和策略,即如何把那些復雜的程序代碼用簡單的語言表達出來,讓別人能迅速地理解并掌握,我國的教育還是做得不夠的,也沒有專人或學者來搞這方面的研究。但筆者覺得這項工作是非常重要,而且也是很有意義的。事實上,每個開發人員和設計人員在實踐中都有自己的一套讀取和分析源碼方法。當然這也是仁者見仁、智者見智的事。我的方法和手段只是其中之一而已。所以說我在編寫這本書時對源碼的剖析只是做了一些非常粗淺但是有意義的嘗試,以試圖彌補國內軟件行業在這方面的缺陷。

當然,閱讀本書也要具備一定的基礎知識,否則,有些術語和解釋還是比較難以理解的。

我在本書的編寫過程中花費了大量的時間。而且,這些工作都是在業余時間內完成的,每天都要照常上班,只有到了晚上或者節假日,才有閑暇寫這些東西。一般技術人員都喜歡新鮮事物,如果說去閱讀和理解開源代碼,也許還有一些挑戰性,大家可能都有興趣去做這件事情,但是要把這些東西用文字表述出來并給別人講述,則許多人就不太愿意干了,原因是這是一項非??菰锏娜蝿?,寫作的艱辛旁人是很難理解的。很高興的是我還是堅持下來了,度過了無數個寂寞和孤單的晚上終于把這本書奉獻給了讀者。

在這期間,我要感謝我的家人對我的理解和支持。我要感謝我的妻子在這期間承擔了全部的家務,同時也要感謝我女兒在我撰寫書稿的時候沒給我添太多的麻煩,她一直沒有搞明白爸爸總是待在電腦前做什么。我要感謝我的父母,他們肯定不知道我寫的內容,但是無論我做什么,有沒有成績,他們都是一如既往地給予鼓勵。我把這里的一切都獻給他們。

我還要感謝本書的編輯高洪霞和顧慧芳。沒有她們耐心的指導和完善,這本書也許只是一個讀書筆記,我也要感謝本書的策劃編輯袁金敏,是她給我信心讓我繼續下去,否則這些資料只能是束之高閣。我還要感謝那些在編寫本書作出貢獻的所有人,他們都是默默無聞的后臺工作者。

當然,由于筆者水平有限,書中的錯誤和缺點在所難免,希望讀者能給予批評和指正。筆者的聯系方式:rengang66@sina.com。

編者

2009年12月于深圳

主站蜘蛛池模板: 太白县| 定陶县| 八宿县| 扶余县| 沈丘县| 湖北省| 汨罗市| 吉林市| 甘谷县| 宝坻区| 乌鲁木齐市| 鄂尔多斯市| 共和县| 灵川县| 焉耆| 屏东县| 贵港市| 偏关县| 阳东县| 金坛市| 鹤庆县| 淮安市| 临沭县| 周至县| 大石桥市| 喜德县| 万全县| 田东县| 晋宁县| 拉萨市| 泰宁县| 济源市| 绥江县| 祁东县| 安龙县| 雷州市| 揭西县| 高淳县| 淄博市| 万载县| 栾川县|