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

序 穿越夢(mèng)想,起錨遠(yuǎn)航

經(jīng)過(guò)約1年的緊張寫(xiě)作,本書(shū)終于在2010年8月完稿了,不禁長(zhǎng)舒一口氣。

筆者從2008年就開(kāi)始追蹤.NET 4.0,Visual Studio 2010從跑在虛擬機(jī)里的“CTP(社區(qū)預(yù)覽)版”開(kāi)始,BETA1→BETA2→RC→正式版,微軟公司所有公開(kāi)發(fā)布的版本都先后在我的計(jì)算機(jī)上“安營(yíng)扎寨”,Channel 9上的技術(shù)視頻,.NET各開(kāi)發(fā)小組的團(tuán)隊(duì)博客,國(guó)內(nèi)外特定技術(shù)領(lǐng)域?qū)<业膫€(gè)人博客,還有MSDN上的官方文檔……都成為我寫(xiě)作本書(shū)的技術(shù)源泉和原始素材。

需要指出的是,由于本書(shū)屬于技術(shù)普及類(lèi)書(shū)籍,不是學(xué)術(shù)類(lèi)著作,并且我對(duì)這些“原材料”都進(jìn)行了比較徹底和全面的加工和重新組織,并非原樣引用,因此書(shū)中沒(méi)有全部標(biāo)出這些素材的原始引用來(lái)源,大多以腳注的方式注明其原始鏈接,并在書(shū)后附上了本書(shū)主要的參考文獻(xiàn)。

寫(xiě)作本書(shū)之前,筆者已經(jīng)在個(gè)人博客上發(fā)表了多篇有關(guān).NET 4.0的技術(shù)文章,這樣看來(lái),大概我應(yīng)該屬于國(guó)內(nèi)那批為數(shù)不算太多的“技術(shù)發(fā)燒友”群體。等到本書(shū)正式完稿,已經(jīng)過(guò)去了近兩年的時(shí)間。

我從2002年開(kāi)始學(xué)習(xí).NET技術(shù),這本書(shū),其實(shí)也是我這幾年來(lái)所積累的知識(shí)和經(jīng)驗(yàn)的一次集中釋放。

寫(xiě)作,真是一件“苦差事”,甚至可以說(shuō)是“體力活”,但同時(shí)又讓人“樂(lè)在其中”、“欲罷不能”。這種矛盾交織的心理我想可能每個(gè)作者都會(huì)有。

寫(xiě)作本書(shū)時(shí)有點(diǎn)誠(chéng)惶誠(chéng)恐,畢竟我在寫(xiě)作最新的技術(shù),能參考的資料并不多。在整個(gè)寫(xiě)作過(guò)程中,我不停地問(wèn)自己:

我對(duì)這些新技術(shù)的把握是否全面?是否有理解錯(cuò)誤的地方?用什么方式才能表述清楚這些有著復(fù)雜關(guān)聯(lián)的技術(shù)?……

而最大的困惑與擔(dān)心莫過(guò)于以下這兩點(diǎn):

1.以我這點(diǎn)有限的水平,能寫(xiě)好這本書(shū)嗎?

2.如果這本書(shū)包容著不少疏漏或錯(cuò)誤,讀者會(huì)不會(huì)罵我不自量力?面對(duì)著可能會(huì)有的種種議論,我能否有足夠的心理準(zhǔn)備去坦然承受?

這些問(wèn)題曾經(jīng)糾纏我好久,但后來(lái)我想通了,釋然了。

首先,沒(méi)有人能不犯錯(cuò)。

我認(rèn)為:除非是某項(xiàng)技術(shù)的原創(chuàng)者,大多數(shù)學(xué)習(xí)和應(yīng)用此技術(shù)的人其實(shí)都是在“盲人摸象”。

要想真正地掌握好某項(xiàng)技術(shù),比較仔細(xì)全面地閱讀它的源代碼是最直接有效的方式。著名技術(shù)作家侯捷先生也是此觀點(diǎn)的堅(jiān)定支持者,他說(shuō):“源碼面前,了無(wú)秘密。”

雖然當(dāng)前可以看到不少軟件的源代碼,比如使用Reflector工具我們可以看到.NET基類(lèi)庫(kù)中各個(gè)組件的源代碼,而且我個(gè)人在寫(xiě)作過(guò)程中也經(jīng)常這樣做,但畢竟.NET基類(lèi)庫(kù)太龐大了,誰(shuí)能有這個(gè)時(shí)間和精力去通讀一遍其源碼?最多只是從中選一部分閱讀。而且就算是把相關(guān)源碼讀了一遍,能否真的讀懂?再退一步說(shuō),就算讀懂了這部分源碼,對(duì)整個(gè)技術(shù)的理解與把握是否全面又成了問(wèn)題,因?yàn)榭赡軟](méi)有時(shí)間看完全部的源碼或者沒(méi)有真正全部看懂相應(yīng)的源碼。

在這種現(xiàn)實(shí)情況之下,又有誰(shuí)能完全避免陷入“盲人摸象”的窘境?

其實(shí)“盲人摸象”不要緊,關(guān)鍵是要知道自己在“盲人摸象”!

在實(shí)際寫(xiě)作過(guò)程中,我收集了大量的技術(shù)資料進(jìn)行對(duì)比閱讀、仔細(xì)分析和動(dòng)手實(shí)驗(yàn),并有選擇地閱讀了.NET基類(lèi)庫(kù)中的部分源碼,然后將我對(duì)這些技術(shù)的理解組織好,以一種比較有條理的通俗易懂的方式展現(xiàn)給讀者。

在此我需要強(qiáng)調(diào)的是:書(shū)中所寫(xiě)的內(nèi)容是我個(gè)人學(xué)習(xí)、探索、應(yīng)用和思索的結(jié)果,由于.NET軟件技術(shù)的龐大與復(fù)雜,由于我個(gè)人的局限性,書(shū)中存在的疏漏和錯(cuò)誤在所難免。

因此,讀者對(duì)書(shū)中所介紹的內(nèi)容應(yīng)該執(zhí)一種“批判性閱讀”的態(tài)度,不唯書(shū),只唯實(shí)。如果讀者對(duì)書(shū)中的敘述有疑惑,就請(qǐng)大膽地去獨(dú)立試驗(yàn)、探索和研究,發(fā)現(xiàn)了問(wèn)題,及時(shí)地反饋給我,我將使用各種方式更正本書(shū)中發(fā)現(xiàn)的錯(cuò)誤,我會(huì)在個(gè)人博客上為本書(shū)開(kāi)辟專(zhuān)區(qū),發(fā)布勘誤表,并回答讀者的問(wèn)題。如果本書(shū)重印,我會(huì)與出版社商量重印的版本盡量體現(xiàn)出勘誤的修訂。

現(xiàn)在再談?wù)劦诙c(diǎn):為什么我明知自己能力有限,寧愿冒著被讀者批評(píng)的風(fēng)險(xiǎn),也要投入巨大的時(shí)間和精力去動(dòng)手寫(xiě)這本書(shū)?

對(duì)這個(gè)問(wèn)題的回答需要扯得遠(yuǎn)一點(diǎn),因?yàn)樗c我個(gè)人的經(jīng)歷有著密切的聯(lián)系。

我從1994年開(kāi)始投身IT,到2010年為止,沉浸在軟件技術(shù)中已經(jīng)16年,可以說(shuō)我把最好的青春年華獻(xiàn)給了軟件技術(shù),之所以如此,實(shí)在是因?yàn)檐浖夹g(shù)那令人難以抗拒的魅力。

這16年的光陰,剛好可以平分為兩段。

在這段人生的前半段(1994年開(kāi)始系統(tǒng)學(xué)習(xí)計(jì)算機(jī)技術(shù)到2002年研究生畢業(yè),共約8年),我的時(shí)間和精力主要是花在學(xué)習(xí)和應(yīng)用軟件技術(shù)上。這段時(shí)間我先后購(gòu)買(mǎi)和閱讀了大量的軟件技術(shù)書(shū)籍,同時(shí)“瘋狂”地寫(xiě)程序,七八年下來(lái),代碼總量估計(jì)達(dá)到了數(shù)十萬(wàn)行。所有的努力其實(shí)都圍繞著一個(gè)看上去很不“崇高”的夢(mèng)想——成為一名“很牛”的軟件開(kāi)發(fā)高手,出人頭地,過(guò)上我想要的生活

8年過(guò)去了,夢(mèng)想沒(méi)能變成現(xiàn)實(shí)。

時(shí)至今日,我耳邊經(jīng)常回蕩著劉德華唱的那首老歌——《忘情水》,這首歌的前四句真的很切合自己:

曾經(jīng)年少愛(ài)追夢(mèng),一心只想往前飛。

行遍千山和萬(wàn)水,一路走來(lái)不能回……

為什么夢(mèng)想沒(méi)能實(shí)現(xiàn)?

我分析一是自己天資有限,二是環(huán)境所限。

這8年里,我走了許多的彎路,犯了無(wú)數(shù)的錯(cuò)誤。現(xiàn)在年近四旬,覺(jué)得自己才剛有點(diǎn)明白軟件是怎么回事,盡管還有許多其他的“惑”,但至少有一點(diǎn)是清醒的:我不過(guò)是一個(gè)普普通通的人罷了,并不比其他人強(qiáng)到哪里去。但人活一世,總得做點(diǎn)有意義的事,我想我應(yīng)該圍繞著自己的長(zhǎng)處去做點(diǎn)實(shí)實(shí)在在的事,這樣到老了至少不會(huì)后悔,也不枉到這世間走一回。

在這段人生的后半段(從2002年到現(xiàn)在,也有8年多的時(shí)間),我留校任教,成為了一名計(jì)算機(jī)專(zhuān)業(yè)教師,并訂立了新的目標(biāo)——成為一名優(yōu)秀的知識(shí)傳播者

我期望能以自己的工作成果,幫助后來(lái)者以較高的效率去掌握新技術(shù),不要再走我所走過(guò)的彎路。

為此我一方面努力地學(xué)習(xí)和汲取最新的軟件技術(shù)進(jìn)展,另一方面,則精心地梳理知識(shí)脈絡(luò),搭建技術(shù)框架,選擇合適的方式將這些知識(shí)和技術(shù)以盡可能高的效率傳播出去,我覺(jué)得這是我力所能及的,而且也是我最有可能做好的工作。

我想,雖然自己沒(méi)有成為一名軟件高手,這確實(shí)很遺憾,但如果我講的課、寫(xiě)的書(shū)和文章能夠引導(dǎo)和幫助學(xué)生及讀者在學(xué)習(xí)之路上少走彎路,能以較少的投入和較高的效率了解軟件技術(shù)的新進(jìn)展,在同樣的時(shí)間段內(nèi),他們就有可能在技術(shù)之路上比我走得更快更遠(yuǎn),而在這些人中間,相信終會(huì)有高手脫穎而出,達(dá)到我個(gè)人所無(wú)法企及的技術(shù)高度,欣賞到我未能領(lǐng)略的技術(shù)風(fēng)景。倘能如此,我的工作就是有成效的,我的勞動(dòng)就是有價(jià)值的。如果日后這些成功的人還能記得住我的名字,能說(shuō)一句“在我學(xué)習(xí)和起步的早期,金老師的文章和書(shū)對(duì)我的成長(zhǎng)是有幫助的”,我想這就是對(duì)我的最大贊揚(yáng)了。

所以我愿意投入巨大的時(shí)間和精力動(dòng)手寫(xiě)作。

我最后一點(diǎn)擔(dān)心是:如果書(shū)中包容了不少的疏漏和錯(cuò)誤,面對(duì)讀者可能如潮水一般涌來(lái)的批評(píng),我能否有足夠的勇氣去面對(duì)?

經(jīng)過(guò)反復(fù)思索,我想清楚了這個(gè)問(wèn)題。

前面已經(jīng)說(shuō)過(guò),由于個(gè)人的能力局限,疏漏和錯(cuò)誤在所難免。書(shū)中有錯(cuò),改了就是,有什么好擔(dān)心的?拒不認(rèn)錯(cuò)才是錯(cuò)誤的!

其中的關(guān)鍵之處不在于書(shū)中有沒(méi)有錯(cuò),而是我的寫(xiě)作態(tài)度是否認(rèn)真,是否能有一個(gè)寬廣的胸懷去勇敢地面對(duì)讀者的批評(píng),有則改之,無(wú)則加勉。

在本書(shū)的寫(xiě)作上我是盡力了,讀者所看到的書(shū),體現(xiàn)了我目前所能達(dá)到的最高水平,我的寫(xiě)作態(tài)度是認(rèn)真的,沒(méi)有粗制濫造,沒(méi)有偷懶,沒(méi)有走“拼湊”和簡(jiǎn)單“堆砌”材料的“終南捷徑”。

所以,讀者認(rèn)為這本書(shū)是好是壞已經(jīng)不重要了(雖然我非常希望讀者認(rèn)為此書(shū)不錯(cuò)),因?yàn)槲冶M了自己的能力去寫(xiě)作,如果書(shū)不好,受到讀者的批評(píng),這也是我個(gè)人能力的問(wèn)題,不怨任何人,于己又問(wèn)心何愧?

最后,作為本書(shū)的作者,我真心期望本書(shū)能對(duì)讀者真正有所幫助,我在此預(yù)祝讀者能成長(zhǎng)為一名優(yōu)秀的.NET軟件工程師,能在波瀾壯闊的信息時(shí)代寫(xiě)下自己的華彩樂(lè)章!

是為序。

金旭亮

2010年中秋于北京

主站蜘蛛池模板: 磴口县| 天气| 武乡县| 即墨市| 诸城市| 贞丰县| 衡山县| 靖江市| 仪陇县| 栖霞市| 宁远县| 博乐市| 周至县| 无锡市| 固安县| 桂林市| 大名县| 东乡县| 孟州市| 湘阴县| 二连浩特市| 星子县| 福州市| 吉水县| 宁波市| 长武县| 武冈市| 双柏县| 威宁| 镇坪县| 桑植县| 高安市| 虹口区| 徐闻县| 天峨县| 景泰县| 新郑市| 县级市| 盐城市| 绍兴县| 南投县|