http://www.aygfsteel.com/Files/zbw25/code.rar
抱歉,拖了這么長時間。
Update:
昨天在BlogJava上傳的文件,今天就不能下載了,比較暈。。。
http://www.javaeye.com/topic/19448
這是在JavaEye的發(fā)布OpenDoc的地址,里面有下載的Link。
http://www.javaeye.com/topics/download/54f814f5-b77f-46e1-bf61-bd384493f118
應(yīng)該要注冊成為javaeye的用戶后,才能下載。
如果和超級女生這樣的大賽相比的話, Ajax 大賽應(yīng)該被稱之為“ Ajax 小賽”吧。 250 名初賽選手, 10 多名復(fù)賽選手,三個來自于一個網(wǎng)站“ Ajax 中國”的評委。這樣的比賽意義在哪里呢?
?
僅僅看數(shù)量,是看不出來的。
?
Ajax 是 Web 應(yīng)用的一種,而且可以肯定的說,是 Web 應(yīng)用中最為復(fù)雜的一種,一個 Web 項目,我們通常都會分為“美工”、“ Web 靜態(tài)頁面制作”、“ Server 端系統(tǒng)開發(fā)”這樣幾個工種。而 Ajax 應(yīng)用則同時需要 Server 端與 Client 端復(fù)雜的端到端編程技術(shù)。
?
對于參賽選手而言,這些工作,都得靠一己之力來完成,在 2 個多月之內(nèi),做出來的作品,要美觀,要好用,要有創(chuàng)意,要符合 W3C 組織的 Web 標(biāo)準(zhǔn),還得正確有效的作為一個程序在瀏覽器里運行。真的,不容易!這 11 位(可能會修改)參賽選手,每一位都不容易!
?
我們(大賽組織者、評委和參賽選手)都非常確切的意識到,我們正處在一場變革剛剛起步的階段。 Ajax 可能僅僅是這場革命開始時,最響亮的一個名字。激動人心的發(fā)展將會接踵而來,而我們這些人將會自豪的宣稱,我們從一開始就不是旁觀者,而是實實在在的參與者,和有力的推動者!
?
看著選手們的代碼,我們的信心更加充足,這些 Ajax 的愛好者和參與者們,不僅是熱忱的,更是踏實的。不但是嚴(yán)肅認(rèn)真的,更是勇于創(chuàng)新的。由這樣的一群人來推動 Ajax 在中國的發(fā)展,實在是一個極好的開始。
?
而 Ajax 大賽,正是這樣一個機會,使得這一群中堅力量,能夠集結(jié)、凝聚,進(jìn)而取得更加卓越的成就。這就是我對于這個比賽意義的理解。
? 說實話,稍微吹了一點
“出來混,總是要還的。”這話說得真好。我最近的blog寫得太少了,想寫的東西,其實又實在是不少,一日復(fù)一日的堆積心里,又想寫,又不想寫,難受呀。
這篇blog原本還是打算在Word 2007里寫的, 后來作為草稿發(fā)上來,發(fā)現(xiàn)還有不少不如意的地方,還是在線寫吧。
想說的事情挺多的,一件一件的說吧。
一、敏捷中國大會,6月6日在上海交大舉辦了一場。專門介紹ruby的,昨天在csdn的martin fowler的中文blog上,也貼出了完整的演講全文。《Ruby是一個非常好的開發(fā)工具》,《現(xiàn)場演示Ruby編程》,《細(xì)數(shù)Ruby語言優(yōu)缺點》。關(guān)于這次活動的一篇Blog按理我早就該寫了,但是卻一直沒有寫出來。有兩個原因,一個是那天老馬在開講之前,熊節(jié)是打算在邊上當(dāng)翻譯的,誰知道交大的同學(xué)們牛啊,紛紛表示,不必翻譯,都聽得懂的,我一個學(xué)俄語的人,在那里抗議也沒什么用,大家都一副聽力很好的架勢,老馬在上面嘰里呱啦的講著,下面的同學(xué)們不時的笑著……我呢,也只能隨著大家的笑聲,沖著老馬空洞的笑著……;第二個原因呢,是個原本打算等CSDN的演講的翻譯出來,我也好引用一下,誰知這一等,就是半個月,我都已經(jīng)換了一個工作了。
說實話,那天老馬的演講,我沒聽懂,不過因為他在那里現(xiàn)場coding,所以我還是看懂了一些代碼。Ruby的代碼給人留下了深刻的印象,而且我不知道是不是Martin故意裝作是一個初哥,反正看起來他對ruby的語法也不怎么熟悉,不過ruby厲害的地方就在于,你就算是個初哥,邊試邊弄,也能把程序鼓搗出來。
原本的計劃是介紹Ruby DSL的,不過時間明顯的不夠用,關(guān)于DSL的部分反而講得很少,還好這兩天armlinux-w翻譯了一篇專講Ruby DSL的文章過來:《用Ruby 創(chuàng)建領(lǐng)域特定語言》。當(dāng)時看到Martin演示的,用Ruby語言描述的配置文件時,腦子里頗有些想法,也寫了問題交上去問,不過老馬也來不及一一回答,后來想想,提的那個問題,也沒有經(jīng)過自己的深入思考與實踐,不提也罷。
倒是我提的另外一個問題,頗有些價值,當(dāng)時正好交大的林德樟老師也在,我以前就對林老師的那句語錄有所不滿《XP是草書,UP是正楷,先草書后正楷,就會亂套》。在自己的Blog上也和林老師的門徒們吵過架,如今Martin教主本人既然來了,我等看客正應(yīng)該把這仗挑起來才是。于是我就提了一個問題,讓兩位專家都來評價一下這句話。可惜的是,后來他們兩人的精彩交鋒,我也沒怎么聽懂,還是林老師還用中文闡述了一遍自己的觀點,我算是了解了一下他的邏輯。
原來我以為,林老師這樣的說法,是出于在校教師“和稀泥”的考慮。這下我才了解到,原來林老師是真的這么認(rèn)為的。而他這么一種說法的依據(jù),還是慣常的“中國國情論”。或者稱之為“補課論”。因為美國人是現(xiàn)有軟件工程,才有極限編程,而我們現(xiàn)在的軟件產(chǎn)業(yè)還落后人家?guī)资辏圆话衍浖こ踢@一課不上,是不行的。然后林老師還頗有些“攻擊力”的詢問Martin,當(dāng)初你先寫了UML,后來又寫了XP,不也是這樣一個心路歷程嗎?老馬如何回答,我也沒有聽懂,但是在我看來,林老師混淆了三個概念,一個是國家級的軟件產(chǎn)業(yè)的發(fā)展水平,一個是企業(yè)級的軟件開發(fā)的管理水平,一個是開發(fā)人員的技術(shù)與理論水平。這三個不同的水平被他攪在一起,用于支撐自己的說法,實在是???????所以,會后我又追上去問林老師,我提出了三個概念混淆了云云,沒想到林老師相當(dāng)和藹可親的對我說:“嗯,你說的沒錯”,然后又說到關(guān)于大學(xué)的軟件教育的問題,我在說很多剛畢業(yè)的學(xué)生,對于軟件開發(fā)的理解,往往停留于知識點的積累上,而沒有去思考,我打算把這些知識點,組合起來運用,以達(dá)到什么目的。很多學(xué)生,只是說我知道什么什么,而不會說,我會做什么什么。林老師又和藹可親的對我說:“嗯,你說的沒錯。我一直跟學(xué)生們說,學(xué)校和企業(yè)是完全不同的,真正的知識,只能在企業(yè)里才能學(xué)到。”然后我又說,其實軟件學(xué)院應(yīng)該多推薦學(xué)生去企業(yè)實習(xí),還有就是多鼓勵學(xué)生參與Open Source的項目呀。林老師還是和顏悅色的對我說:“是啊,不過現(xiàn)在的企業(yè),要他們肯接收學(xué)生實習(xí),不容易的。在美國,每年暑期都會有大量的實習(xí)生招聘,這其實就是企業(yè)在做慈善呀。再說現(xiàn)在的大學(xué)老師,對Open Source的了解,也很少的呀。”然后,我就跟林老師告辭了。作為一個老師,他給我留下了很好的印象,但是,我更加悲觀的發(fā)現(xiàn),要通過學(xué)校教育,提高軟件開發(fā)人員的素質(zhì),好難啊!
會后大家又找了一家小飯店FB了一下,CSDN的霍泰穩(wěn)也來了,我還給他們提了一個建議,以后CSDN最好能夠搞一個系列的活動,不斷的把世界各地的軟件大師們請到中國來,巡回演講,收取門票,整理成每年基本的《軟件大師在中國》這樣書出版,還有視頻光盤也可以賣錢,各位大師的中文Blog也都建在CSDN,應(yīng)該是一樁雙贏的好事啊,就看他們是不是打算做了。
(待續(xù))
不要出來搞笑說:沒有bug的程序?????????
靠,站著說話不腰疼。那個公司可以做出沒有bug的軟件來?
當(dāng)然,沒有寫過程序的人不出bug!!
估計這位同志不會寫代碼,是個理論專家。
還是不要這么狂的好。
我估摸按你的標(biāo)準(zhǔn),你是肯定不會被別人錄用的!
123說:你是編程的嗎?
無“BUG”搞笑吧你
測試是不能查出所有BUG的
而且不是所有測試都能窮舉的
只能是測試覆蓋率達(dá)到一個標(biāo)準(zhǔn)
BUG出現(xiàn)的概率達(dá)到標(biāo)準(zhǔn)
才算產(chǎn)品
“ZERO-BUG”做夢去吧
“現(xiàn)在的大學(xué)生過于浮躁”
“真不明白本科都在學(xué)什么”
還有一位臺灣同胞說:“本來還以為只有在臺灣有這種情形,原來兩岸的情都相同。”
2、收簡歷,初步了解背景情況,然后讓加我的MSN
3、在MSN里,就問一個問題:以下幾種技術(shù),你哪一種最熟悉,哪一種最不熟悉
4、你就用最不熟悉的那種技術(shù),做一個demo給我,沒有時間限制,要求如下:
-首先是demo的質(zhì)量,一定不能有任何bug
-其次是代碼的質(zhì)量,要干凈,明白,好懂。
-要有創(chuàng)意
-在功能創(chuàng)意與時間進(jìn)度之間,自行平衡
5、拿到代碼之后,先看看能不能正常運行,看看有沒有bug。
6、在Google里搜索代碼的關(guān)鍵段落,看看有沒有抄襲,或者了解一下借鑒的程度
7、看他的代碼,是不是足夠干凈,足夠合理,足夠樸素
8、如果一個人能夠在很短的時間里,自行快速學(xué)習(xí)一種新的技術(shù),并交出足夠質(zhì)量的代碼。這樣的員工,我就準(zhǔn)備要了。至于面試,無非是談?wù)劰べY的高低意向罷了。
1、我不關(guān)心他的學(xué)歷,工作經(jīng)驗,年齡和技術(shù)背景,因為招到一個出色的員工,他會持續(xù)的自我學(xué)習(xí),不斷的進(jìn)步。
2、有bug的一律不要
3、代碼最能夠說明問題,其他一切判斷都要在我看過他的代碼之后。一個人,不要玩弄聰明,不要炫耀技巧,寫老老實實,干干凈凈的代碼,合理的貼切的變量命名、方法命名、類命名,合理而不多不少的類間關(guān)系。這樣的代碼,就是漂亮的代碼。能寫出這樣的代碼的人,就有足夠好的思維和品性。
4、快速學(xué)習(xí)的能力要比過去的工作經(jīng)驗更加重要,因為那么多工作經(jīng)驗,也要有助于完成今后的工作,才能體現(xiàn)出價值。
5、不抄襲,有創(chuàng)意,這樣的人才很難得。
6、有計劃的實現(xiàn)功能,能夠在功能和時間進(jìn)度之間合理決斷。這就是有大局觀的人才。
文檔是項目的知識,這些知識必須集中管理、容易獲取、人人可以編輯。
項目在生長,代碼在增加,文檔也必須能夠跟隨項目自然生長,強行劃分設(shè)計階段和開發(fā)階段,是不可取的。
Wiki不是傳統(tǒng)的項目文檔,而是一個應(yīng)交流需要,可能隨時增刪改的知識庫。項目組的成員,遇到問題,就應(yīng)該首先查看Wiki,如果這是Wiki中沒有,那么他應(yīng)該找人詢問。而那個知道答案的人,如果他不想再今后不斷的回答同一問題,就應(yīng)該把這個答案寫入Wiki,這就是Wiki條目增長的自然動力。
傳統(tǒng)文檔最大的問題在于浪費,而Wiki通過持續(xù)修改,按需提供的方式,保證了所有寫下的文字,一定有超過一個人需要讀它。
Include功能,增加include標(biāo)簽,可以在一個條目中,引入其他條目的全文,而不是僅僅增加一個link。
文檔的層次結(jié)構(gòu),當(dāng)項目的文檔條目逐漸增加,分門別類的條目,更加便于查找,也可以有效的避免條目重名的問題。
一個Click,就能夠創(chuàng)建新一個條目,用于填寫當(dāng)天的工作安排。
每日15分鐘文檔制度,基于“填寫當(dāng)日工作”的功能,我規(guī)定每個項目組成員,每天要花三個5分鐘來寫文檔,早上的5分鐘,填寫當(dāng)日工作計劃。中午的5分鐘填寫上午的工作情況,下班前的5分鐘,填寫下午的工作情況。這樣,每天的文檔工作相當(dāng)輕松,但是文檔能夠保證持續(xù)的跟隨項目成長下去。更進(jìn)一步的,這樣的制度,對于項目的進(jìn)度控制,也很有幫助。
User Case條目驅(qū)動,所有分解出去的User Case,在分配到責(zé)任人之后,該責(zé)任人的第一項工作,就是在Wiki中寫下對于這個User Case的理解。隨后項目進(jìn)展,也應(yīng)該持續(xù)的維護(hù)這個條目。
同時進(jìn)行Bug的管理,Bug也作為Wiki中的條目,以便于和其他條目項目引用。
每次Check In CVS時,必須寫注釋。這是更加細(xì)節(jié)的文檔,然后我還做了一個小程序,能夠自動的從CVSTrac中讀出當(dāng)天Check In代碼的注釋。供每個人在寫當(dāng)天文檔的時候引用。
文檔驅(qū)動、測試驅(qū)動、用例驅(qū)動、模型驅(qū)動、特征驅(qū)動。。。。他們都要解決的是什么問題?
要回答這個問題,還真不容易。我們得問一個更加重要的問題,真正驅(qū)動項目的,究竟是什么呢?我想,應(yīng)該是需求吧?
?
那么,這些“文檔”、“測試”、“用例”、“模型”、“特征”,究竟是什么呢?對于需求的描述!我們之所以不會直接用需求來驅(qū)動項目開發(fā),而是要借助工具,來幫助我們描述需求,就是因為口語化的需求描述是非常模糊的,充滿歧義的。所以,選擇什么來驅(qū)動我們的項目,其實就是要看,以上這些工具,哪一個能夠更好、更準(zhǔn)確的描述需求?
?
文檔其實是最難準(zhǔn)確描述需求的一種方式,如果是純文字的文檔,就更難。我們的技術(shù)總監(jiān),非常喜歡讀寫文檔,我最近也創(chuàng)下了一天寫47頁文檔的最新記錄。但是,當(dāng)我們開會的時候,我還是經(jīng)常需要提醒我們的技術(shù)總監(jiān),麻煩他再仔細(xì)看看文檔第XX頁的第XX段,以及配合著另一份文檔的XX小節(jié),來確切的理解我的意思!如果沒有我的解釋,他就會誤解我的文檔。
?
當(dāng)然,如果要寫出不需要我來解釋,他就能理解的文檔,那么文檔的工作量,將會極其驚人!我以前寫過一篇blog,《Jacobson博士演講觀后感》是我對UP的創(chuàng)始人的極度反感的集中體現(xiàn)。GHawk,以及交大林老師的所謂“UP”的觀點,當(dāng)然不可能獲得我的贊同。在GHawk的最新一篇blog:《UP & XP之爭,意義何在?(續(xù))》中,GHawk說:“唯一的問題是:“如何確保測試用例的質(zhì)量”。顯然,我們不能把一把不直的尺子度量出來的結(jié)果作為可靠的參考依據(jù)。怎么解決呢?“結(jié)對編程”么?嗯,這是一個不錯的方式,那么最終該信賴誰呢?是Pair中的A還是B呢?或者,是Leader么?那么又是誰提出的要求呢?是老板么?還是客戶?政府?法規(guī)?市場?……問題沒有終結(jié)了。”
?
由此我可以推斷,他對于XP的認(rèn)識,基本上是停留在猜測的階段。對于這篇blog的觀點,我就不逐一反駁了,我的猜測是,他經(jīng)歷過一次失敗的XP嘗試,而究其原因,我猜測是因為他們那個所謂的XP Team中,沒有一個人,曾經(jīng)實踐過一次正規(guī)的XP開發(fā)。
?
再來看模型驅(qū)動,這中間有一個大問題,因為需求是“問題域”的范疇,而模型,則是“解答域”的范疇,試圖通過解答域的精確描述,來實現(xiàn)對于需求的準(zhǔn)確描述,肯定不靠譜啊。
?
特征驅(qū)動,我認(rèn)為FDD其實是老方法的新名詞,具體的實踐,可能更加接近測試、迭代式的過程。了解不過,所以我也不打算多說。
?
用例驅(qū)動與測試驅(qū)動,其實我認(rèn)為這是一個硬幣的兩面,用例要盡快的翻譯為測試用例,而測試用例,正是為了更加準(zhǔn)確的表述需求用例。這是我能夠想到的,驅(qū)動項目開發(fā)的,最好的方法!
Agile強調(diào)的是“代碼是真正有價值的東西。”這同樣也是實踐的結(jié)果。二位對于過程有不同的看法并不能說明孰是孰非,這只是在不同的實踐內(nèi)容和階段上的總結(jié)。在過程的選用問題上,只有不斷地實踐才是前進(jìn)的方向。?
我為什么要聽一個海龜來上課呢?
這年頭,海龜還不夠多嗎?
另外對GHawk多說一句話:讓組員快速磨合的最好辦法,是結(jié)對編程,而不是大家埋頭寫文檔。
結(jié)對編程——最有效的內(nèi)部培訓(xùn)機制
測試驅(qū)動開發(fā)——最有效的質(zhì)量保證體系
User Story+客戶現(xiàn)場辦公——最低成本的需求收集、分析機制
每日集成——有效降低集成、測試成本
…….
所以,一個追求利潤最大化的老板,就應(yīng)該選擇XP,而一個聰明的老板,不但要運用XP,還要保證8小時工作制,甚至給員工20%的 On Beach時間(來源于Gigix對于ThroughWorks的介紹)。這樣才能保持員工的可持續(xù)編程能力。如果我是老板的話,我就會這么干!
那天討論的話題中,還有一些XP沒能夠很好回答的問題:
比如文檔。在我以前的開發(fā)實踐中,我們都建立了一個Wiki,并且強制程序員每人每天就Wiki幾次,以分散寫文檔的壓力。
比如對于人員的高要求的疑問。我的理解是,XP對人員提出了很高的要求,但是同時也提供了最有效的人員培訓(xùn)機制(結(jié)對編程),所以,對于入職人員的要求,并不需要很高,更多的是考察一個人的溝通能力、學(xué)習(xí)能力,而不是開發(fā)的能力。
歡迎下載: AJAX——新手快車道

zoomq在woodpecker上寫道:
每日至少抽一刻鐘解答列表中初學(xué)者的問題,
每周至少抽兩小時整理新學(xué)知識,用Blog/Wiki/mail將體驗發(fā)表/分享出去,
每周至少抽四個小時來翻譯自個兒喜愛的自由軟件的文檔,
每月至少抽八小時編程,推進(jìn)自個兒的項目,
每年至少參加一次自由軟件的活動,傳播自由軟件思想,發(fā)展一名“自由人”……只要我們每個人都堅持下去……
10年!就足以改變中國軟件的整體風(fēng)貌!自接觸電腦以來,自由/開源軟件也一直給我諸多幫助和樂趣,Linux、Python、Vim凡此種種。當(dāng)我有些業(yè)余時間,有些體會和收獲時,又該為自由/開源社區(qū)做何回饋呢?
我的思考是:參加一個項目,或者發(fā)起一個項目,使用一個項目并且提交反饋,宣傳一個項目。不要僅僅是感嘆中國開源項目的水平。如果你是一個程序員,那么,你也可以為之做點什么。
我有很濃厚的“地圖情結(jié)”,以前我寫過一篇《我的信仰地圖》,最近又做了一次關(guān)于Ajax的演講,名字叫做《Ajax技術(shù)地圖》。我一直以來的觀點是,世界是一個整體,在這個巨大的世界之中,任何事物、任何知識,任何觀點,都有其合理、自然的位置。理解這個世界的過程,就是逐步將需要了解的各種事物,在作為整體的一個世界中,找到其位置。了解這個位置的前后左右,相互關(guān)系,相互影響。這樣的理解世界的學(xué)習(xí)方式,我認(rèn)為是最為有效的。所以當(dāng)我在JavaEye看到關(guān)于《代碼大全》的廣告時,我的第一反應(yīng)就是:這不是世界地圖嗎?
?
看了看他的目錄,竟然有35章之多?架構(gòu)、分析、設(shè)計、編程、測試、重構(gòu)、面向?qū)ο蟆⒄{(diào)試、規(guī)范、管理、軟件質(zhì)量控制、協(xié)作、優(yōu)化、開發(fā)工具、注釋、甚至個性、開發(fā)藝術(shù)等等等等,只要是與軟件有關(guān)的,基本上他都寫到了。
?
說實話,我當(dāng)時相當(dāng)?shù)牟恍?.....可能嗎?居然有這么一個家伙,能夠像當(dāng)年的托馬斯?阿奎那一樣,以一己之力,寫出《神學(xué)大全》?CSDN的網(wǎng)站上介紹這個Steve McConnell,在1998年的時候,被Software Development雜志的讀者評為軟件業(yè)最具影響力的三大人物之一,與Bill Gates、Linus Torvalds齊名。一個寫書的,能和兩個寫代碼的天才齊名?網(wǎng)站上的那些推薦的話,個個都是大名鼎鼎,個個都是推崇備至。作為我這樣一個有逆反心里的家伙來說,直覺上就是:“會不會呀,有這么牛嗎?”
?
當(dāng)然了,我也不好多說什么,畢竟沒有看過書~~~
?
沒想到好事居然找上門來了,博文視點的魏泉是我要寫的那本Ajax書的責(zé)任編輯。而《代碼大全》也是他們負(fù)責(zé)出版的。那天他找到我,說是讓我看看這本書的書稿……看看能不能寫一篇書評。這等美差,我很爽快的就答應(yīng)下來了。
?
一看之下,果然是很喜歡,作者的思考問題的方式,與我的方式相當(dāng)?shù)慕咏际潜M可能將多種、甚至矛盾的事物,放在一個整體的環(huán)境中來理解。比如對于隱喻,用于描述軟件開發(fā)的特征的各種各樣的隱喻,其實各有其價值,如果能夠組合運用,自然能夠獲得一種平衡。正如作者所說:“使用隱喻又是件說不清楚的事情(fuzzy business)。你需要適當(dāng)?shù)匾晁暮x,才能從其中蘊含的深刻啟發(fā)中受益。但若你過分地或者在錯誤的方向上引申了它的含義,它也會誤導(dǎo)你。正如人們會誤用任何強大的工具一樣,你也可能誤用隱喻,但它的強大的功效,還是會成為你智慧工具箱中的一個寶貴部分。”
?
這樣的一種看法,可以說“中正平和、深具智慧”,這是我們在大多數(shù)關(guān)于軟件開發(fā)的論述中,很難看到的。
?
再比如說,作者在第三章時給出的一個表格:三種常見的軟件項目種類,及其典型的良好實踐。就將軟件分為商業(yè)系統(tǒng)、性命攸關(guān)的系統(tǒng)以及性命攸關(guān)的嵌入式系統(tǒng)。然后指出對于這三類不同的應(yīng)用,在開發(fā)手段、管理強度、設(shè)計、構(gòu)建、測試、部署等等方面的差別化策略。這樣的分類,自然就避免了將各種開發(fā)手段,簡單的對立起來比較的方法,顯得更加具有說服力。
?
再比如說,全書給出了相當(dāng)多的Check List,這樣的表格,實在是大有益處,借用地圖的隱喻來書,這樣的CheckList,就是一個一個的定位器,它能夠幫助你認(rèn)清自己的位置,了解問題所屬的范疇,了解應(yīng)該努力的大致方向。這樣的“開發(fā)工具”,真是獨一無二。
?
這本書我目前只看了前面的5~6章,實在沒有太多的發(fā)言權(quán),不過我現(xiàn)在已經(jīng)可以肯定,這是一本非常有價值的好書,我推薦所有沒有看過的朋友去看看這本名副其實的經(jīng)典之作。
?
說實話,天下沒有免費的午餐,我這篇書評,也是屬于交差之作。人家出版社把樣書給你看,請你寫書評,當(dāng)然希望你能說些好話?幸運的是,這些好話,的確都是我自己愿意說的。
個中甘苦,就不在這里說了,還是把PPT傳上來吧。
之所以叫處女秀,是因為這是我第一次上臺做技術(shù)演講,但是這句話卻不是我自己想到的,而是江南白衣說出來的。
PPT的標(biāo)題是《Ajax技術(shù)地圖》,基本上是一個純粹空對空的理論探索,不出現(xiàn)一行代碼。還好隨后曹曉鋼的演講,同樣是講Ajax,充斥了無數(shù)的代碼,相信廣州的朋友們,一定爽到了。
PPT的下載地址是:
http://www.ajaxcn.org/space/start/2006-03-13/1/Ajax%E6%8A%80%E6%9C%AF%E5%9C%B0%E5%9B%BE.pps
廣州游記和其他感想,就明天再補吧。
莊表偉 說:
JSVM,我覺得有一個方向可以嘗試去發(fā)展,就是瀏覽器中的對象管理,起到一個VM的作用
dlee 說:
問題就是你敢不敢去做小白鼠,或者叫做生活在剃刀邊上。對于一個嚴(yán)肅的項目,我做項目經(jīng)理,是不會采用jsvm的。
莊表偉 說:
那為什么你就會采用prototype呢?
dlee 說:
prototype背后有強大的支持,而不是像jsvm那樣只有萬春華同志等很少的幾個鐵桿。
莊表偉 說:
為什么?你是看著哪邊人多去哪邊的嗎?
dlee 說:
你看那些叫喊"頂"、"支持"、"牛"的人會不會貢獻(xiàn)一行代碼。你太容易非黑即白了。當(dāng)然不完全是這樣,不過支持能力是一個非常重要的考慮因素。
莊表偉 說:
我的意思是,JSVM,該不該用他,只能由我們看過他的代碼以后,來決定?
dlee 說:
你有能力維護(hù)所有的代碼嗎?
莊表偉 說:
我只是用他呀,又不是要改他
dlee 說:
我的意思是說,如果你在項目中使用了Spring,Rod Johnson玩累了,明天就宣布解散這個項目。你自己獨立去維護(hù)Spring的代碼。你去用什么啊,它只有很少的UI組件,其中還有問題。 你不要夸口這些自己都能開發(fā)好,我兩年前開發(fā)了一個比較好用的Grid,花費了一周多的時間。你自己去實現(xiàn)這樣一個組件后再說話。
莊表偉 說:
我不是用他的UI呀,而是用他的這個框架,來組織自己的代碼。
dlee 說:
你不用它的UI,有什么必要使用這個框架呢?dojo/prototype一樣可以做到啊,我是認(rèn)為你這樣做引入了不必要的成本。況且你如何判定使用的UI庫在設(shè)計理念上與jsvm完全沒有沖突?
莊表偉 說:
OK,你現(xiàn)在已經(jīng)有結(jié)論了,但是我還沒有仔細(xì)看過他的代碼呢,所以我現(xiàn)在還沒有結(jié)論,等我看過以后,自然會有一個結(jié)論的。
dlee 說:
在Ajax庫這方面,大部分人都跟我希望的一樣,需要一個全面的解決方案。你說的jsvm專精于做某個領(lǐng)域,我認(rèn)為是行不通的。任何運行于瀏覽器的js框架都應(yīng)該是為UI服務(wù)的。沒有實現(xiàn)過很多UI組件,如何檢驗它的這個架構(gòu)設(shè)計的合理性?
莊表偉 說:
目前看來,prototype,也只是專精于基礎(chǔ)領(lǐng)域的,在它之上,另有script.aculo.us、Rico、Behaviour這樣的lib
dlee 說:
你喜歡擺擂臺,那么就擺個擂臺,大家都實現(xiàn)Grid組件,看看誰做得好。
莊表偉 說:
呵呵,這倒是個好辦法
dlee 說:
你可以跟醒來來詳細(xì)討論,問題不是你想想得那么簡單。做小白鼠也有好處,曉鋼就經(jīng)常偷偷練習(xí)一些自己的獨門絕技。
莊表偉 說:
呵呵
dlee 說:
你可以將我跟他的沖突理解為主要在一個領(lǐng)域,就是我不認(rèn)為解決他所說的兩個問題,需要這么重的方案。而且他的解決方案從JS開發(fā)者的角度看來也不是很優(yōu)雅。
莊表偉 說:
嗯,這兩點,我基本上是同意的
dlee 說:
萬春華同志的興趣不在UI組件方面,這使得他偏離了瀏覽器JS誕生的使命。今天我跟醒來說過類似的意思。 我們的分歧不完全在技術(shù)本身上面。因為我們思考問題的思路差別很大,所以沒有出現(xiàn)很大的交集
莊表偉 說:
嗯,我比較理解你的意思了,但是,我不是很同意...
dlee 說:
你看過他們的代碼了嗎?
莊表偉 說:
看了一些
dlee 說:
代碼的模塊程度如何?有沒有可能將醒來說的一些部分完全去掉?
莊表偉 說:
哪些部分?
dlee 說:
我覺得他們?nèi)绻鲆恍└忧逦膭澐郑瑒澐殖鲆粋€最小的core部分,而且像Spring那樣劃分成很多不同的jar,這樣會更好一些。最糟的情況是要么全有要么全無
醒來 已經(jīng)添加到此對話中。
dlee 說:
你既然對jsvm非常感興趣,就和醒來先詳細(xì)談?wù)劇N易鳛榕月牶昧恕?/SPAN>
莊表偉 說:
呵呵,好的呀
醒來 說:
好啊,我 最近剛看了jsvm的源碼
莊,你覺得jsvm怎么樣
莊表偉 說:
我剛開始看他的代碼。說實話,我覺得他的js代碼寫得非常好,也很干凈、清楚。因此,這樣的一個人,寫出這樣水平的代碼的人,對于js的理解,肯定是相當(dāng)深入的。
醒來 說:
代碼寫的是真不錯
莊表偉 說:
我以前曾經(jīng)想當(dāng)然的認(rèn)為,他不了解js,只喜歡java,所以才會把js,扭曲成java的樣子這樣的想法,肯定是偏見。那么,在承認(rèn)對方有足夠的智力與經(jīng)驗的前提下,再來看他的代碼,我覺得更不該"斷然否定",說他"一無是處"。
醒來 說:
我在javaeye 上提出了我的意見,我也認(rèn)為他的代碼寫得很不錯,但是側(cè)重點有點不合時宜。現(xiàn)在真是有些像java虛擬機了,基本是一個classloader + class cache 的實現(xiàn)
莊表偉 說:
還有這個:
a) 獨立模式:standalone, 該模式下,當(dāng)前頁面的jsvm獨立加載,不和系統(tǒng)中其他頁面的JSVM發(fā)生關(guān)聯(lián)。
b) 應(yīng)用程序模式:application, 應(yīng)用程序模式下的頁面會除了加載jsvm以外,還將構(gòu)造一個Application的環(huán)境。其他模塊模式的頁面會共享Application的資源。
c) 模塊模式:module, 模塊模式的頁面必須運行在一個Application模式的頁面下。該頁面可以通過application框架共享資源以及訪問全局變量。
d) 自動模式:auto, 頁面根據(jù)環(huán)境自動選擇是獨立模式還是模塊模式。
我覺得很有點意思
醒來 說:
從名字上來講,jsvm倒是符合本意。但是java的成功不是只靠一個jvm的,我覺得 jdk 更關(guān)鍵
莊表偉 說:
現(xiàn)在的js庫,除了jsvm,都是以一個Page為單位運行的,鮮有"Application"的概念。而VM的提出,我認(rèn)為,為將來合理的Browser Object Cache Layer,提供了可能
醒來 說:
我有點懷疑,這樣帶來的復(fù)雜性有沒有必要
莊表偉 說:
而且我還希望將來JSVM,能夠更好的支持請求任務(wù)隊列的管理,這樣的機制,JS的語法本身提供得并不夠好。還有多線程的管理,JS也沒有像Java那樣的,語法級的支持。
dlee 說:
我不大相信瀏覽器中的JS將來會被用在這樣的目的
醒來 說:
其實我覺得,這些應(yīng)該是瀏覽器提供的功能,在瀏覽器未發(fā)展到這個程度之前,強迫javascript畸形的實現(xiàn),不一定值得
莊表偉 說:
嗯,這是問題的關(guān)鍵...我前面的暢想,的確是我希望將來的JS,能夠支持的一部分
dlee 說:
是的,我們希望將來的JS引擎來提供這些基礎(chǔ)設(shè)施
莊表偉 說:
現(xiàn)在JSVM,也許能夠支持一部分,也許還不能夠,所以,說不定哪天JS 2.0出來,JSVM就沒有意義了
醒來 說:
所以對于jsvm的模式,應(yīng)用程序模式還可以理解,模塊模式很難讓人明白有什么用
莊表偉 說:
這是一個思考模式的問題
假設(shè)你對于js本身不熟悉,要讓你合理、自然的劃分多個js文件,合理、自然的在該load的時候才去load,這就相當(dāng)?shù)馁M力
醒來 說:
所以我的意見就是,jsvm 希望吸引人來開發(fā),應(yīng)該要給出jsdk 差不多,一個jsvm 吸引不了人
莊表偉 說:
當(dāng)然,更加正確的道路,當(dāng)然是按照js的本性來做,提出某種"js loading design pattener"。但是,在經(jīng)驗還沒有被總結(jié)成模式之前,模仿java式的代碼組織,不失為一種方案
醒來 說:
load js 的模式其實現(xiàn)在都是 用一個同步的xmlhttprequest 去加載js,然后eval。這個 dojo 和 prototype 都有提供基礎(chǔ)支持
莊表偉 說:
不是如何loading。而是,我現(xiàn)在有幾百K的js文件,如何切分成合理的大小,然后在需要的時候去調(diào)用他們
醒來 說:
這個想法是對的,也是jsvm值得肯定的地方
我的主要意見是說它提供的 jsc 的形式有點雞肋,同時缺乏簡單高效的工具類,所以吸引不了開發(fā)人員。jsvm2 的代碼里有 1/3 就是為了支持這個自創(chuàng)的jsc語法
莊表偉 說:
這是...敗筆...。jsc我也不喜歡,混雜了部分js語法和部分java語法...還不如僅僅規(guī)定一個必須的頭部,其他的完全采用js語法呢。還有一點我覺得是這個萬兄在那里暢想,就是JSVM打算支持多種語法的設(shè)想,工作量太大了。
dlee 說:
不過萬春來同志說這個可以不用
醒來 說:
所以我建議索性拋棄jsc,以萬兄的javascript功力,寫一部分有用的工具類,我覺得不會有人真的愿意用 var map = new HashMap(), map.put(k, v); 這樣的方式寫js
莊表偉 說:
對的
dlee 說:
所以我剛才說:
我覺得他們?nèi)绻鲆恍└忧逦膭澐郑瑒澐殖鲆粋€最小的core部分,而且像Spring那樣劃分成很多不同的jar,這樣會更好一些。最糟的情況是要么全有要么全無。
醒來 說:
jsc 是可以不用,但jsvm 加載了接近80k的js就為了支持jsc, 沒有意義啊
莊表偉 說:
他現(xiàn)在是有多個js的,只是他core的部分太大了
醒來 說:
莊,如果你去看runtime.js 就知道了,jsvm2其實把jsc都預(yù)先編譯了,否則效率一定太低
現(xiàn)在甚至還有一些觀點,不要把js分得太多,因為要激發(fā)太多的http連接,反而響應(yīng)性更不好。畢竟js的加載是同步的 ,這各ajax的異步核心思想有沖突。
dlee 說:
這個考慮也是很有道理的
莊表偉 說:
激發(fā)太多的http連接?還是激發(fā)太多的同步http連接?
dlee 說:
那個所謂的classloader就是向服務(wù)器請求一個包含js類的文件,然后evaluate。而且也要考慮evaluate的執(zhí)行效率
醒來 說:
每一個import 就是一個http 連接。當(dāng)然,jsvm 考慮到了cache
dlee 說:
對的,就是發(fā)出一個xmlhttp請求
莊表偉 說:
其實,他完全可以將自己的jsdk,做成一個jsc文件,一口氣load進(jìn)來
dlee 說:
不是多個連接,這個要看服務(wù)器怎么配置。其實支持http1.1的瀏覽器和服務(wù)器都是保持長連接
醒來 說:
jsvm的cache 也有些問題,他所謂的application模式,在不同的瀏覽器上實現(xiàn)各不相同,ie是js源碼用ie的htc 技術(shù)保存的,ff 是存cookie。cookie 的容量是有限制的,所以cache 主要是針對 ie。
dlee 說:
可能是在同一個http連接上發(fā)送多個http請求,這些請求需要排隊
莊表偉 說:
OK,我提一個方案,你們看是不是可以作為"最佳實踐"之一:
對于多個異步請求,可以讓他分次異步提交。
對于多個同步請求,應(yīng)該將多個請求打包以后一次提交。
這個作為"請求隊列管理"的一部分
醒來 說:
道理應(yīng)該是這樣,jsvm里好像沒有這樣的控制,import語句也沒有這么智能
莊表偉 說:
其實jsvm應(yīng)該這么做,比如他load一個jsc文件進(jìn)來,里面的import語句可能有一堆,就應(yīng)該是一口氣load其他的jsc,不該再分多次了
醒來 說:
我總覺得 線程/隊列 這些該是瀏覽器的事情,用js開發(fā)很不保險
莊表偉 說:
你看過我寫的那個RSSReader的代碼嗎?里面就有一個請求隊列的
醒來 說:
jsvm做不到,因為load的jsc里又有import 語句,這是遞歸的
莊表偉 說:
不是遞歸,是分層的
醒來 說:
要么js語言升級,要么瀏覽器升級,我總覺得現(xiàn)階段就想讓ajax完全達(dá)到替代桌面應(yīng)用的程度是不可能的
莊表偉 說:
這個當(dāng)然是不可能的...
醒來 說:
所以在現(xiàn)階段,還是不要搞復(fù)雜了,多線程和隊列能用到的地方畢竟不多
我覺得dlee強調(diào)的對的,現(xiàn)在需要的是組件
語言級別的東西,就讓js語言和瀏覽器標(biāo)準(zhǔn)去慢慢支持吧
莊表偉 說:
我理解你們所認(rèn)為的"輕重緩急"了。根本的觀點在于:"急于將瀏覽器中應(yīng)用,推向完全的桌面應(yīng)用,并不現(xiàn)實"。立足于"更好的瀏覽器端應(yīng)用",而非"盡可能像桌面應(yīng)用的瀏覽器端應(yīng)用",這么說來,當(dāng)務(wù)之急自然是UI控件的完善與豐富
dlee 說:
我覺得瀏覽器中js誕生的使命就是改善交互和UI
醒來 說:
對,就是這個意思
dlee 說:
而且我從項目開發(fā)負(fù)責(zé)人的角度,更希望一個全面的解決方案。不是什么都需要我去做集成
莊表偉 說:
JSVM的問題,不在于他語法上像Java,而在于他的目標(biāo)上像Java!
dlee 說:
也可以這樣來理解
醒來 說:
ajax 里的cache 應(yīng)該是去cache 數(shù)據(jù),用來cache js代碼,意義多大呢,所以jsvm太技術(shù)化了
dlee 說:
在Ajax in Action中,提出了一種獨占式應(yīng)用。就是像Word一樣,可能每天都要用上幾個小時。目前的Ajax技術(shù),包括一些基礎(chǔ)框架,還很難達(dá)到這個要求。所以確實需要這樣一類基礎(chǔ)架構(gòu),但是我們認(rèn)為這些支持最好由瀏覽器和JS引擎來提供。
莊表偉 說:
看來我們已經(jīng)初步達(dá)成共識了
醒來 說:
js 就是用來操作DOM的,不要讓它承擔(dān)太多重任,xmlhttp本來也不是 js的一部分,瀏覽器的擴展而以
dlee 說:
我發(fā)現(xiàn)現(xiàn)在很多人有一個通病。就跟我在那個ajax和model2框架的討論中說的那樣。毫不思考地就將一種技術(shù)或者架構(gòu)用于設(shè)計意圖之外的場合。其實把IFrame用于異步請求也是這個情況
醒來 說:
對jsvm 的建議就是拋棄jsc,完善它自己的面向?qū)ο蠹軜?gòu),并提供工具類支持,這樣才有可能和 dojo 有競爭。所以在國外是稱為 tricks, 是有貶義的意思,但翻譯成中文,變成竅門,反而有了褒義了
dlee 說:
Ajax in Action的作者稱作hacky的做法,帶有貶義
dlee 說:
令Ajax顯得與眾不同的地方不是它所使用的技術(shù)本身,而是通過使用這些技術(shù)所帶來的新的交互模式。我們所習(xí)慣的傳統(tǒng)的Web交互模型并不適合于獨占式的應(yīng)用,只有打破了這種交互模型,新的可能性才會慢慢浮現(xiàn)出來。
這是Ajax in Action的一句話,說得非常有道理。我們看到如此眾多的人都對Ajax感興趣不是偶然的。現(xiàn)在我們處在web app發(fā)生革命性變化的前夕
莊表偉 說:
嗯,我更關(guān)注:慢慢浮現(xiàn)出來的這些可能性中,哪些是正道,哪些是邪道
醒來 說:
我是覺得一定要擦亮眼睛,多從用戶的角度想問題
莊表偉 說:
這是對的
一、 技術(shù)地圖概覽
初步介紹一下,要研究Ajax技術(shù),需要了解的相關(guān)技術(shù)的范圍。
二、 結(jié)構(gòu)(Structure)、表現(xiàn)(Presentation)與行為(Behavior)
介紹正統(tǒng)Web標(biāo)準(zhǔn)中的三大要素。
三、 模型(Model)、視圖(View)與控制(Controller)
介紹正統(tǒng)表現(xiàn)層MVC模式。
四、 思考一:瀏覽器端的MVC?
隨著Ajax應(yīng)用越來越復(fù)雜,瀏覽器端是否需要引入MVC模式呢?
五、 難題一:SPB與瀏覽器端MVC的關(guān)系
SPB與MVC之間,應(yīng)該是一種什么關(guān)系,需要有一個概念上的梳理。
六、 難題二:瀏覽器端MVC與服務(wù)器端MVC的關(guān)系
如果在瀏覽器端與服務(wù)器端,都定義出MVC結(jié)構(gòu),顯然存在著沖突,這樣的沖突,該如何調(diào)和。
七、 思考二:Web服務(wù)器的角色演變
提出一個思路,Web Server --> Web Service,也就是在瀏覽器端實現(xiàn)MVC模式,而在服務(wù)器端,分別實現(xiàn)Model Service、View Serivce、Controller Service。
八、 一個三維的世界
一個地圖,并非一個簡單的平面,作為一個三維的世界,我們對于技術(shù)的理解,又可以分為三個層次:理論的層面、真實世界的層面以及作為整理世界一部分的層面。
九、 在真實世界中的難題
介紹一些目前Ajax應(yīng)用開發(fā)中,真正存在的困難,困惑,苦惱,陷阱......
十、 思考三:對于整合世界的向往
C/S與B/S能否融為一體?
開發(fā)工具能否一站購齊?
開發(fā)效率能否更快更輕松?
十一、 難題三:Ajax的能力限制
主要談一談Web應(yīng)用無法跨越或者目前無法跨越的一些障礙,比如網(wǎng)絡(luò)編程;比如線程控制;比如UI表現(xiàn)能力等等。同時也介紹一些前沿的進(jìn)展。
十二、 難題四:開發(fā)工具的功能整合
簡單介紹一下目前各家IDE對于Ajax的支持。
十三、 難題五:UI控件的重用與整合
自己從頭做UI,實在是太麻煩了,用人家的,又有整個的麻煩,但是從提升開發(fā)效率來說,控件化開發(fā),又是必由之路……
十四、 暢想未來…
關(guān)于Ajax技術(shù)的一些暢想。
AJAX——新手快車道
前言
AJAX是什么?
首先、AJAX是一種很酷的技術(shù),一旦采用了AJAX,就能讓你的Web頁面,你的網(wǎng)站,甚至連同你們公司,都變得很酷。在Web2.0的時代里,不使用一點AJAX技術(shù)的網(wǎng)站,就會顯得很老土,很落伍。
但是,這樣的理解,其實是很膚淺的。僅僅是從一個外行,從一個使用者的角度出發(fā),來理解AJAX,就像我在本書的第一章AJAX我也行中那樣,開發(fā)出很愚蠢,甚至都沒有資格被稱之為AJAX應(yīng)用的純IE、XMLHTTP應(yīng)用。
AJAX更酷的一點在于,對于傳統(tǒng)的Web開發(fā)人員來說,AJAX所運用的,是更加先進(jìn)的,更加標(biāo)準(zhǔn)化的,更加和諧高效的,完整的Web開發(fā)技術(shù)體系。遵循這樣的體系開發(fā)Web應(yīng)用,能讓你的開發(fā)過程變得更加輕松,也能使你們的開發(fā)團(tuán)隊,顯得很酷。在Web2.0的時代里,還在采用過時的技術(shù)來開發(fā)Web,會顯得很老土,很落伍。
AJAX的相關(guān)組成技術(shù),每一個都已經(jīng)出現(xiàn)了N年以上了,對這些技術(shù)的組合運用,也遠(yuǎn)遠(yuǎn)早于AJAX這個名詞出現(xiàn)之前。所以,我真正敬佩的,并非提出
AJAX這個縮寫的Jesse James Garrett。而是那些早在N年以前,就已經(jīng)在探索、實踐的先行者,他們始終在追求的:是更好的用戶體驗,以及更好的開發(fā)體驗。這樣的精神,才是最可寶貴的,也是最值得我們學(xué)習(xí)的。許多年過去以后,當(dāng)我們再回頭來看當(dāng)年的這些熱門技術(shù),也許早已經(jīng)變得老土,變得落伍了。在這樣的歷程中,哪些人會成長為高手?會成長為大師呢?就是那些永不滿足,永遠(yuǎn)在追求更好的用戶體驗,永遠(yuǎn)在追求更好的開發(fā)體驗的人!
新手如何上路
軟件開發(fā)這個領(lǐng)域,永遠(yuǎn)都在飛速發(fā)展,大家都必須不斷的學(xué)習(xí)新的知識、技能、框架、IDE、甚至新的語言。傳說中的骨灰級高手們,就像傳說中的大俠,任何武器、哪怕是一塊木頭到了他們手里,也能發(fā)揮驚人的威力,人家練了幾十年的看家本領(lǐng),他們隨手使來,也竟然像是打娘胎里就開始練了一樣。為什么?
就算不吹那么玄的,平常我們能夠碰到的那些老手,在學(xué)新東西的時候,也比那些新手學(xué)得更快,理解得更深,運用得更熟練。而新手們呢?往往就會漫無頭緒,焦頭爛額,以一副張著茫然的大眼睛的經(jīng)典表情,出現(xiàn)在各大論壇的新手求助區(qū)里。他們欠缺的,究竟是什么呢?為什么老手學(xué)新東西,就沒遇到那么多困難呢?
泛泛地說,自然是經(jīng)驗上的欠缺。仔細(xì)地說來,又可以分為三個方面:
一、本質(zhì),一種技術(shù)與另一種技術(shù)之間,往往會有本質(zhì)上的相通之處,當(dāng)你對一種技術(shù)的理解與思考越來越深入時,學(xué)習(xí)一種新技術(shù)也會更加容易。觸類旁通,舉一反三的能力,就是來自于對于技術(shù)本質(zhì)的追尋。
二、地圖,本質(zhì)上或多或少的相通,也提示著我們技術(shù)之間的相互關(guān)聯(lián),當(dāng)你了解的技術(shù)越多,了解得越是深入,在你的內(nèi)心,就能建立起越發(fā)清晰的技術(shù)地圖。各種知識都有一個自然、合理的位置。那么當(dāng)一個老手要學(xué)習(xí)一門新技術(shù)的時候,他其實并非在探索一個全新的、未知的領(lǐng)域,而是有很多脈絡(luò)可尋,也很多已知可以幫助他們快速了解未知。
三、技巧,面對同樣的未知,面對同樣的難題,新手們一籌莫展,而老手們卻掌握著更多的技巧和手段,幫助他們試探可能性、縮小問題的范圍、迅速定位問題、不犯明顯愚蠢的錯誤、甚至能夠列舉出更具命中力的搜索關(guān)鍵詞,而這些技巧,都幫助老手在前進(jìn)的道路上,更少跌倒,即使跌倒,也能更快的爬起來。
作為一本寫給新手的入門書籍,我們希望展現(xiàn)給讀者的,是一個老手如何學(xué)習(xí)新技術(shù)的過程。我們相信,這樣的一個學(xué)習(xí)過程,對于新手來說,是更具有價值的。
何謂快車道
必須老老實實的承認(rèn),我吹牛了!老手雖然會比新手學(xué)習(xí)得更快一些,但是也同樣會碰到麻煩,遇到障礙,感覺頭痛。如果沒有真正的專家的指導(dǎo),我不可能如此迅速地將AJAX掌握到目前這樣的程度,要真是讓我自學(xué)三個月,然后就寫出書來的話,那真是在騙錢了。
老手能夠快速學(xué)習(xí)的另一個重要的訣竅是:認(rèn)識很多牛人朋友J
如果沒有李錕與趙澤欣的專家級指導(dǎo)與幫助,如果沒有與李錕AJAX結(jié)對編程的體驗,如果沒有三個人在MSN上無數(shù)次的長聊,我想要在短期內(nèi)建立起:
對于AJAX本質(zhì)的理解;
對于整個AJAX以及相關(guān)技術(shù)地圖的理解;
對于AJAX編程開發(fā)所需要的很多技巧、手段的掌握;
幾乎是不可能的。
如果沒有(N多需要感謝的人)的(N多方面的幫助),我們這本書,也不可能以現(xiàn)在這樣的深度,以(N個月)內(nèi)完成的速度,送到讀者的面前。
希望這本書,能夠?qū)Υ蠹铱焖賹W(xué)習(xí)AJAX,有所幫助。
這是我原來寫的前言,自我感覺,寫得還是不錯的。可惜啊,這最后幾段,現(xiàn)在看來是用不上了。
雞年最后一篇blog,一堆亂七八糟的東西,也就不分多篇了。
一、維基百科的訪問記錄
- 2006年1月1日8:55湖北武漢電信修改hosts文件,使用原h(huán)osts無法訪問,將145.97.39.132換成145.97.39.134能訪問,速度正常.
- 2006年1月1日10:50,廣東深圳,電信ADSL,通過國外代理登陸成功,否則無法登陸
- 2006年1月1日23:46山東省濟南市廣電修改hosts文件,用IE成功登陸.
- 2006年1月2日6:15山東濰坊市,正常連入.
- 2006年1月4日16:59,北京,教育網(wǎng),需要代理.用維基提供的145.97.39.*代理訪問很快.
- 2006年1月6日20:00湖南長沙.145.97.39.132、145.97.39.134均無法使用.使用144登錄成功.
- 2006年1月6日20:04,武漢,中國電信ADSL,只能使用145.97.39.138或140兩個維基代理;其他維基代理無法找到服務(wù)器,使用145.97.39.130代理服務(wù)器出現(xiàn)404頁面.
- 2006年1月9日13:25,江蘇常州中國電信ADSL不可直接訪問(用[1] 及[2] 訪問成功)
- 2006年1月11日10:04,武漢,中國電信ADSL,使用MultiProxy可流暢訪問,使用tor+SocksCap32組合包不能流暢訪問.
- 2006年1月11日13:44(utc+8),廣州,使用[3]登陸.原站無法登陸.
- 2006年1月11日23:00河南鄭州河南網(wǎng)通ADSL不可直接訪問現(xiàn)在使用自由門5.5
- 2006年1月12日17:30,遼寧沈陽遼寧網(wǎng)通不可直接訪問現(xiàn)在使用自由門5.5
- 2006年1月12日17:54,北京host文件不知道為什么不靈了不知道ip是不是有變化還是現(xiàn)在不只封鎖dns了用無界6上來的
- 2006年1月12日00:16,香港PCCW可以直接訪問
- 2006年1月12日3:22,成都,中國電信ADSL無法直接訪問,無界瀏覽6.9訪問成功
- 2006年1月12日10:02,吉林長春,網(wǎng)通ADSL,直接訪問不能,通過代理服務(wù)器成功
- 2006年1月13日1:40,內(nèi)蒙古聯(lián)通,不能直接訪問,通過無界瀏覽6.9訪問成功
- 2006年1月13日3:20,深圳聯(lián)通,不能直接訪問,FreeGate5.5代理訪問成功
- 2006年1月13日香港時間23:26深圳中國電信ADSL不能直接訪問,使用無界6.9可以成功訪問
- 2006年1月15日秦皇島鐵通adsl,可以直接訪問
- 2006年1月15日23:52山東網(wǎng)通不可直接訪問代理訪問
- 2006年1月15日15:00天津網(wǎng)通ADSL不可直接訪問現(xiàn)在使用自由門5.5今天搜索到一個網(wǎng)站大陸可以直接訪問[4] ,是不是維基的網(wǎng)站啊,看地址像是個商業(yè)網(wǎng)站,還有SOHU的廣告,是不是假冒網(wǎng)站啊,有人解釋嗎?
- 2006年1月15日23:34北京網(wǎng)通不可直接訪問在愛問上找到了下面這個上來的
- 2006年1月17日0:23北京網(wǎng)通ADSL不能直接訪問通過香港電訊盈科代理速度正常
- 2006年1月17日17:20吉林長春網(wǎng)通ADSL不能直接訪問通過torpark代理速度非常快
- 2006年1月18日22:38福建電信ADSL不可直接訪問通過代理正常
- 2006年1月19日14:02黑龍江中國電信不能直接訪問通過torpark代理速度非常快
- 2006年1月23日23:01黑龍江哈爾濱市,網(wǎng)通,torpark代理
- 2006年1月27日16:09上海電信,代理
- 2006年1月27日23:29上海電信,F(xiàn)ree Proxy
- 2006年1月28日16:58,青海西寧,電信ADSL上網(wǎng),利用自由門正常連入,速度正常。
GFW哪怕再偉大,也不可能真正的隔斷Internet......
二、最近看的幾部電影
1、《一個饅頭引發(fā)的血案》,狂笑類電影,非常之出色。以至于我居然興起了想看看這部電影的原材料的心思。
2、《無極》,唯一的長處是給《饅頭》一片提供了原材料。我那天看了前面30分鐘,實在是看不下去了。
3、《小強歷險記》,出色的構(gòu)思,傳奇式的拍攝,這一切在頒獎典禮那天達(dá)到了最高潮。然后事情就演變成了一出活劇,黑色得不得了。還是六哥——張立憲的總結(jié)有道理:
零誠意 零新意 零意義 零特技 零演技 零邏輯 零成本
零床戲 零打戲 零哭戲 零專業(yè) 零職業(yè) 零事業(yè) 零票房
這42個字,竟然是一字都不可改,佩服啊!
4、《金剛》,有無數(shù)的人推薦這是一部好電影,還有好多人看到最后哭出來了。我看了以后,一點都不喜歡。這不是一部人道主義的電影,而是一部“猿道主義”的電影。死了那么多的人,也沒見到誰難過一下,最后死了個巨猿,倒變成“悲劇”了。荒謬!
5、《僵尸新娘》,絕對好看,創(chuàng)意十足,充滿溫情,人性的光輝由此得以體現(xiàn)。
三、一個域名
打算申請一個域名:www.rsslife.info
大概的意思是:Rich Smart Simple Life。具體想做什么,暫時就不透露了。
四、春節(jié)晚會
還是那么爛,而且一年比一年爛。小品和相聲都沒法看了。歌舞還不錯。
五、原創(chuàng)祝福短信
狗年新春旺旺旺,
身體健康棒棒棒。
吃飯睡覺香香香,
工資收入漲漲漲。
原創(chuàng)短信一條,誠意拜年,莊表偉。
結(jié)構(gòu)(Structure)、表現(xiàn)(Presentation)、行為(Behavior),是Web開發(fā)標(biāo)準(zhǔn)中的一個重要概念(以下簡稱SPB)。而模型(Model)、視圖(View)、控制器(Controller)的MVC模式呢,是圖形界面應(yīng)用的重要模式之一,自然也廣泛的用在了Web應(yīng)用的開發(fā)之中。
最近熱門起來的Ajax技術(shù),又刺激了人們對于MVC模式的更多思考。本文的很多觀點得到了jasonhsu的一篇論文《基于遞歸MVC結(jié)構(gòu)的Web應(yīng)用軟件分析模式》的啟發(fā),特此感謝。
現(xiàn)在我們要考慮技術(shù)范疇:SPB、MVC與Ajax之間的相互關(guān)系,或者說,在采用Ajax技術(shù)的Web應(yīng)用中,SPB與MVC之間,應(yīng)該是怎樣的一種關(guān)系。
左邊是一個標(biāo)準(zhǔn)的SPB模型,結(jié)構(gòu)通過CSS渲染之后,顯示給用戶。JavaScript可以通過DOM API以及DOM Event與結(jié)構(gòu)交互。
右邊則是我將JavaScript部分放大之后的情況。
大致上,我們寫一個稍微復(fù)雜一些的Ajax應(yīng)用的時候,JavaScript部分,就應(yīng)該一分為三。一部分是用來做DOM與Style控制。另一部分則專心與Server打交道,通常就是用XMLHTTP了,然后將獲取的數(shù)據(jù),在瀏覽器中構(gòu)建一個Model層。再一部分就是表現(xiàn)層的業(yè)務(wù)邏輯,主要需要處理各種Event,做出正確的反饋。
這樣的三個部分,順理成章的,也就成了Browser中的MVC了。
寫完這點東西之后,我再次看了一下jasonhsu的文章,以及Ajax in Action中的第四章《The page as an application》,發(fā)現(xiàn)我的思路似乎與Ajax in Action中的思路幾乎完全一致,而與jasonhsu的有所差別。
雖然人家已經(jīng)說了,不過我畢竟是自己想通了這一層的,嘿嘿。
</div>
<script type="text/javascript">
var node=document.createElement("div");
node.setAttribute("class","test");
var tn=document.createTextNode("Test1");
node.appendChild(tn);
var a=document.getElementById("a");
a.appendChild(node);
</script>
</div>
<script type="text/javascript">
var node=document.createElement("div");
var attr=document.createAttribute("class");
attr.value="test";
node.setAttributeNode(attr);
var tn=document.createTextNode("Test1");
node.appendChild(tn);
var a=document.getElementById("a");
a.appendChild(node);
</script>
犀牛書里是這么說的:“通常,用setAttribute()方法,比用setAttributeNode()簡單。但是,要為XML文檔定義一個性質(zhì)包含實體引用的性質(zhì)時,應(yīng)該使用setAttributeNode()方法。”
什么叫XML文檔呀?什么叫性質(zhì)包含實體引用的性質(zhì)呀?反正我在IE里,搞搞HTML文檔,就是出不來,用了setAttributeNode,就成功了。
所以,我“吃了犀牛書的藥”了。
記錄MSN上與北京姜偉的對話:
jiangwei說:
主題標(biāo)引其實是我們的副業(yè),不過進(jìn)展很快,昨天又把主題關(guān)聯(lián)做完了,效果還不錯。
jiangwei說:
其實現(xiàn)在聚類算法挺多的,我們試了幾種,各有優(yōu)缺點,現(xiàn)在準(zhǔn)備根據(jù)項目的需要,選擇一種給用戶。
莊表偉 說:
哦,我那天還想到一個思路,我一直認(rèn)為原來的主題詞那樣的“用、代、屬、分、參、族”的結(jié)構(gòu)實在是過于復(fù)雜了。
jiangwei說:
愿聞其詳
莊表偉 說:
于是我就想,能不能以這樣一種方式來定義主題詞:
1、所有的主題詞,都是平行的,沒有高低之分
2、主題詞之間,只有兩個關(guān)系:相似度、相關(guān)度;
3、所有相似度與相關(guān)度的數(shù)據(jù),都是從人們自行定義的tags情況計算得來的
4、根據(jù)詞頻統(tǒng)計,計算出推薦用詞
莊表偉 說:
然后,專家就可以休息了
jiangwei說:
哈哈,有意思的想法,我仔細(xì)想想。
jiangwei說:
所有相似度與相關(guān)度的數(shù)據(jù),都是從人們自行定義的tags情況計算得來的。我覺得這個最難。莊表偉 說:
有一個網(wǎng)站你知道嗎?
http://del.icio.us/
jiangwei說:
知道
莊表偉 說:
同一篇文章,有多人收錄,每個人各自獨立的設(shè)置自己的tags
莊表偉 說:
相似度,就是“兩個tags,分別被不同的用戶,用于同一篇文章的概率”
相關(guān)度,就是“兩個tags,被同時用于一篇文章的概率”
jiangwei說:
我當(dāng)時同keso爭論的就是如果同一個概念,如果不采用受控語言來表達(dá),如何被廣大用戶解析和理解的問題。
莊表偉 說:
比如一篇文章,一個人定義的tags是:“軟件、Windows”,另一個人定義的tags是:“編程、Windows”
莊表偉 說:
那么,軟件與windows之間,編程與windows之間,都有了相關(guān)度
莊表偉 說:
而在軟件與編程之間,就有了相似度
jiangwei說:
這需要一個中間橋梁,你這里的是windows,如果用戶有的用windows,有的用視窗,有的用微軟平臺,有的用window,有的用windowsxp,等等,怎么辦?
莊表偉 說:
因為是多人收錄,所以,就有一個詞頻的數(shù)據(jù),對外展示一篇文章的主題詞時,就顯示為用戶最多用戶選擇的,也即是推薦詞庫中的詞了。
莊表偉 說:
在民主與集中之間,可以有一個算法的橋梁,并不是絕對不同的
jiangwei說:
我看了365key,感覺里面的tags還沒有真正發(fā)揮作用。
莊表偉 說:
http://del.icio.us/
干凈很多,非常舒服,keso自然是不用的
jiangwei說:
365key那個網(wǎng)站我感覺黃賭毒太多,真想不到后臺是劉韌和keso他們。
莊表偉 說:
唉,那是因為在一個“追求點擊率”的國家
莊表偉 說:
365key有兩個排行榜,一個是收藏榜,一個是點擊率榜,如果只有收藏榜的話,365key就干凈了
莊表偉 說:
但是,他們哪里舍得去掉這么個點擊榜呢?
莊表偉 說:
http://spaces.msn.com/members/zbw25/Blog/cns!1pA6-3FOo9yNp_4lmEHxdDqA!836.entry
jiangwei說:
我現(xiàn)在有想法將365key結(jié)合我們的東西用于政府網(wǎng)站平臺中,你覺得前景如何?
莊表偉 說:
這是寫的一篇新的blog,里面也有一些創(chuàng)意的
莊表偉 說:
那還不如將RSS、tags,引入政府內(nèi)部網(wǎng)呢
jiangwei說:
是的,就是這個思路,rss、tag
莊表偉 說:
但是是用于內(nèi)部網(wǎng),就是給內(nèi)網(wǎng)的公務(wù)員、領(lǐng)導(dǎo)們看的
莊表偉 說:
還有一個好的東西,也可以引入政府內(nèi)網(wǎng),就是像baidu新聞,那樣的RSS關(guān)鍵詞訂閱。
jiangwei說:
我們想得完全一樣啊,這個東西就是我們即將用于北京市公務(wù)員門戶和北京市領(lǐng)導(dǎo)決策系統(tǒng)中的東西。
莊表偉 說:jiangwei說:
思路同你是完全相同的
莊表偉 說:
這個東西,非常的Web2.0啊
莊表偉 說:
推向公眾,我認(rèn)為,也是能夠賺大錢的。
jiangwei說:
是的,我就是想把web2.0用于這兩個項目,看看實際效果到底如何
jiangwei說:
這個項目的中標(biāo)單位,################
jiangwei說:
但是他們都會用我們的主題標(biāo)引和主題關(guān)聯(lián)技術(shù)
jiangwei說:
其中一個應(yīng)用是每天抓取網(wǎng)上的新聞,然后聚類和關(guān)聯(lián),給領(lǐng)導(dǎo)和公務(wù)員看。
莊表偉 說:
不錯的
jiangwei說:
抓新聞的那家號稱巨牛,專門抓動態(tài)網(wǎng)頁和數(shù)據(jù)庫
jiangwei說:
我們下周就要聯(lián)調(diào)了
莊表偉 說:
呵呵,已經(jīng)快做完了呀
jiangwei說:
但是我覺得信息可視化這方面還沒有做好,我準(zhǔn)備在這上面再下下功夫
莊表偉 說:
信息可視化?
jiangwei說:
就是如何圖形化地展現(xiàn)這些信息及其關(guān)聯(lián)
jiangwei說:
包括后臺對這些新聞的統(tǒng)計和分析
jiangwei說:
比如:一周新聞關(guān)注熱點,一周公務(wù)員關(guān)注熱點之類的。
莊表偉 說:
http://home.wangjianshuo.com/cn/20050616_ajax_eeaec.htm
莊表偉 說:
給你看個blog
jiangwei說:
這些都很有啟發(fā),你有這么多創(chuàng)意,干嗎不自己寫一個結(jié)合上述優(yōu)點的東東出來。
莊表偉 說:
唉,人的精力是有限的呀
莊表偉 說:
現(xiàn)在有出版社在約我寫一本AJAX新手入門的書,正在努力寫作過程中
jiangwei說:
希望早日拜讀大作。其實我們的精力也很有限,都放到中文智能處理應(yīng)用領(lǐng)域了。其實這些創(chuàng)意從技術(shù)上看都不難實現(xiàn),但是如何整合應(yīng)用,如何被大多數(shù)人(不是少數(shù)精英)接受,就不是那么容易了,我現(xiàn)在也只是想在下范圍(政府內(nèi)網(wǎng))中嘗試一下。
莊表偉 說:
我們大概會在3月以前寫完,具體什么時候出來就不知道了。
莊表偉 說:
王建碩的那個隨手標(biāo)注的AJAX應(yīng)用,倒是很值得引入政府內(nèi)部網(wǎng),在Web頁面上,隨手劃劃,就能批注了。
jiangwei說:
是的,而且實現(xiàn)起來也不難。
莊表偉 說:
是啊,領(lǐng)導(dǎo)們肯定會喜歡的
jiangwei說:
但是在政府里面的應(yīng)用,有很多不是技術(shù)問題,就比如這個,我腦子里面想的就不僅僅是好玩,而是它到底給政府工作會帶來什么
莊表偉 說:
能夠統(tǒng)計到“關(guān)注點與關(guān)注程度”
jiangwei說:
王建碩是365key的作者嗎?
莊表偉 說:
不是呀,他是kijiji的創(chuàng)辦者
jiangwei說:
現(xiàn)在在北京嗎?我看了他的blog,覺得同你一樣,很有深度啊
莊表偉 說:
呵呵,應(yīng)該是在上海的
jiangwei說:
可惜可惜,不能當(dāng)面交流請教
莊表偉 說:
他是一個很出名的blogger,比我出名太多了
jiangwei說:
看材料他在微軟干過6年
莊表偉 說:
是啊,牛人
莊表偉 說:
http://forum.javaeye.com/viewtopic.php?t=15308
莊表偉 說:
這好這里有一個我寫的blog,還有人家的評論
jiangwei說:
里面的“互助式搜索”,提法真好!!
莊表偉 說:jiangwei說:
“inverted table中 每個詞,每個場景 每篇文檔都是獨立的”這是現(xiàn)有搜索問題的實質(zhì)。
jiangwei說:
也就是沒有語境
jiangwei說:
全新的客戶端軟件+全新的搜索服務(wù)模式+互助式的搜索協(xié)作機制=下一代搜索技術(shù),完全同意。
莊表偉 說:
哈哈,總算是找到知音了
jiangwei說:
因為我也是這樣想的,也找到知音了
莊表偉 說:
弄一個這樣的軟件,咱們就能成為下一個Google!!
jiangwei說:
是很有可能的
jiangwei說:
“標(biāo)記主題詞看起來可行, 但實際上我想難度很大.
并不是所有用戶對這種標(biāo)記主題詞的"貢獻(xiàn)"感興趣.”你對這個怎么看?
莊表偉 說:
這就要用到你們的智能輔助標(biāo)引了
莊表偉 說:
用戶如果不想自己動腦子的,只需要認(rèn)可機器的選擇即可
jiangwei說:
這是知識管理的一個問題,每人都希望得到別人的,但是卻不愿奉獻(xiàn)自己的。
莊表偉 說:
但是,他總是希望能夠管理自己的知識的
莊表偉 說:
為了管理自己的知識而設(shè)置tags,不只是貢獻(xiàn)給別人
jiangwei說:
我現(xiàn)在在設(shè)想一種機制,奉獻(xiàn)得越多,得到的越多。也就是說,你奉獻(xiàn)的tag數(shù)量越多,被引用得越多,你越有能力查詢到更多的人和信息。
莊表偉 說:
這在公眾中大概可行,在政府中肯定不可行
莊表偉 說:
奉獻(xiàn)tags數(shù)量最多的秘書,權(quán)限不夠
jiangwei說:
是的,我感覺是這可能是一種與google和百度現(xiàn)在的利潤模式不同的商業(yè)模式。
莊表偉 說:
對的,我們可以給他一個新的名字,叫做“社會化搜索”
莊表偉 說:
也可以縮寫為SNS
jiangwei說:
我們的最新版本中,已經(jīng)加入了搜索的功能,現(xiàn)在我們對外介紹的時候,有時候稱為“智能搜索客戶端”
jiangwei說:
不是可以強調(diào)標(biāo)引功能
jiangwei說:
在這種方式下,用戶實際上是用文章找文章。我稱為“文索未文”
莊表偉 說:
我想起來了,你當(dāng)時的那個PPT,用了N多自造成語,實在是精彩
jiangwei說:
實踐證明,盡管現(xiàn)在還是調(diào)用的google和百度,但是精度和相關(guān)度確實很高。
莊表偉 說:
能夠理解
jiangwei說:
如果google和百度能夠針對這個技術(shù)進(jìn)行優(yōu)化或者在排序策略上進(jìn)行調(diào)整,效果肯定會非常好。我自己現(xiàn)在用luccent檢索,就是想用試驗證明這點。
莊表偉 說:
你寫不寫blog的?
jiangwei說:
不寫
莊表偉 說:
唉,可惜啊
jiangwei說:
好的想法都是在msn上同朋友交流的。
jiangwei說:
原來知識管理網(wǎng)站有個朋友讓我寫,我發(fā)覺還是不習(xí)慣。
莊表偉 說:
blog不是寫文章,而是把自己的想法記下來
莊表偉 說:
隨時想到了,就記一點,漸漸的就寫習(xí)慣了
jiangwei說:
其實我在搜索、標(biāo)引、信息可視化、知識管理和數(shù)據(jù)挖掘上,是有很多想法的。
莊表偉 說:
甚至我有個朋友,自己的BLOG上,都是貼的MSN對話
jiangwei說:
呵呵,你也可以貼咱們的對話啊,我沒有意見。
莊表偉 說:
對于以后整理自己的思路,很有幫助的
能夠工作的軟件 over comprehensive documentation
客戶合作 over contract negotiation
隨機應(yīng)變 over following a plan

代碼才是真正有價值的東西!
[安替]我的態(tài)度:關(guān)于微軟事件和美國國會可能的立法今天有美國媒體打電話詢問我,說美國國會有議員即將發(fā)起針對類似雅虎、微軟等和中國政府合作公司處罰的立法提議,問我什么持什么態(tài)度。我在這里發(fā)表一個公開聲明,解釋我的立場。對于微軟封我博客,我的態(tài)度反復(fù)對媒體說過了。1)微軟此種行為,侵犯了我的言論自由,我表示抗議。2)微軟在沒有警告的情況下,刪除我的全部博客,不給我任何機會備份,這種對用戶的惡劣態(tài)度實在摧毀了我之前對微軟的信任。3)我保留對微軟采取進(jìn)一步行動的權(quán)力。后來微軟竟然后來解釋說是為了遵從當(dāng)?shù)胤睿@等于把我們這一批因為討論新京報事件而被刪除空間的作者陷于發(fā)表非法言論之“犯罪嫌疑人”之處境;因為壓力而妥協(xié)是一錯,因為掩飾妥協(xié)行為而構(gòu)陷受害人于不義是更是錯上加錯。對于微軟這種行為,中國人不能對之懲治,是中國人的恥辱。我們尚不能有任何方法在中國保護(hù)自己的言論自由,這也正是我們這輩人仍舊需要繼續(xù)努力下去的根本原因。總有算帳那天,只要我還活著,我說過,像微軟、雅虎此種不義行為,就一定會被懲治,別僥幸能被大家忘掉,未來中國的基礎(chǔ)教育普及費用,恐怕都要從這些大公司的賠償款中出:賺錢之日請先想想未來。我們能活著,并且不失去理想,就是相信歷史,相信正義之神必然會眷顧中華,讓悲苦者平反,讓受害者申張。至于美國國會議員要立法如何如何,這完全是美國人民的事情。我不覺得中國人的言論自由是美國國會能捍衛(wèi)得了的,一個偉大國家公民的言論自由需要他國國會來庇護(hù),這種想法本身就說明了這個國家離我們盼想的偉大有多么遙遠(yuǎn)。我的博客被封以及我對言論自由的抵死捍衛(wèi),不能自然為美國國會的相關(guān)立法背書。說得再清楚點:我需要的是中國國會的立法,我需要的是中國人來立法捍衛(wèi)中國人的言論自由。今天不能,明天必然會能。這是我們活下去的唯一光榮和夢想。一個國家之所以偉大,就是因為其中還有一批人不愿意放棄民族的理想,并且愿意扎根、犧牲、奉獻(xiàn)。我們今天學(xué)習(xí)華盛頓的政治、紐約的經(jīng)濟和加州的文化,完全就是因為我們對自己的民族有著堅定的盼想——總有一天,我們生活在南京、北京、香港和臺北的兒女,能共同享受自由、民主、富裕、和平的生活。而這一切的一切,都需要我們中國人自己來努力爭取,因為只有我們才能刻骨銘心地體會到彼此的甘苦。在美國的法庭申張正義,不代表正義也在國人心中得以申張。雅虎、微軟是否被美國法庭懲治,這實在不是我們能關(guān)心了的,我們實在需要關(guān)心的是,對中國人自己的權(quán)利,我們中國人能保護(hù)多少,甚至說,能減少侵犯多少。有一個網(wǎng)友說的好,恥辱其實是我們自己的。另外,當(dāng)全球化和政治打包在一起的時候,我不認(rèn)為任何黑白一刀切處理能事實有利于中國人自由權(quán)利的增長。一方面微軟以封博客的方法阻礙中國人的言論自由,但另外一方面MSN空間在這一年實際擴張了中國人用博客言說的能力和意愿,而MSN Messenger也影響了互聯(lián)網(wǎng)信息的傳播方法,這是資本追逐市場所造成的實際兩面效果。美國人如何判斷這個問題,如何加以懲罰,實在是美國人自己的問題,但我個人以為,如果完全阻斷妥協(xié)的公司進(jìn)入中國市場的機會,那至少在短期內(nèi),中國網(wǎng)民不會由此變得更加自由。另外,必須區(qū)分雅虎的出賣和微軟的妥協(xié),這是完全不同的事情。我們處在一個極其復(fù)雜的處境中,正是如同對經(jīng)濟制裁是否能改善一國民主狀況的問題一樣,90年代的中國和伊拉克,有過正反兩方面的反證。這種尷尬和復(fù)雜,恰恰是我們國人的恥辱,真不足外人道。我只能在此默默和朋友們重念我們自己的夢想:愿有一天,在中華大地上,公平如大水滾滾,公義如江河滔滔。此等聲音雖然微小,但在我們心中卻堅如磐石。
function t(){
var t=document.getElementById("test");
t.innerHTML="<p>222</p>";
}
</SCRIPT>
<p id="test">111</p>
<INPUT TYPE="button" value="test" onclick="t();">
在FireFox中,能夠完全正常運行。在Opera 8.5中,也能正常運行。
估計的原因是,IE中的<p>,不能接受嵌套<p>標(biāo)簽。
cm4ever: |
看了半天,覺得沒什么新意,而且標(biāo)題嘩眾取寵。 正如前面很多網(wǎng)友所說,你所提出的新語言的部分特性,在一些開源項目中早有人研究。人家都沒好意思說自己非常先進(jìn),強大,更多的只是默默無聞,踏踏實實的研究。更不說象MS這樣擁有n多語言設(shè)計大拿的公司,集眾人之力辛苦好幾年才搞出一個c#。在你身上,我只看到中國軟件浮躁的一面。 |
VillimWong: |
想問一句?你見過治百病的藥嗎?有誰說過OO是萬能藥?但是它確定是靈丹妙藥,對我們目前面前面對的大多數(shù)問題。這里可以明確地是樓主先給我們下了套。不過還是期待LZ說出點更有意義的東西出來。 |
Alec: |
??? 你要表達(dá)什么? 想清楚了再說 |
大熊在天涯: |
What are you wanting to say? Nothing so far. |
趙小刀: |
你在搞什么?現(xiàn)把事情做了再說。風(fēng)聲大雨點小。。炒作自己呢吧。。。 |
Ariex_LoA: |
OO僅僅是提出了一種新的思維方法,而不是萬靈藥,沒有人說它包治百病,如果有人說過,那么他是傻瓜,如果有人相信,傻瓜again,偶很遺憾的認(rèn)為,作者不過是一個OO時代的狂熱者,因為最后迷失了方向而憤怒,痛恨OO。OO不是一切,只是一種思維方法 重要的時刻……期待你一大堆問題提出后的下文…… |
我可以肯定的說,真正看完了我的系列文章的朋友,估計只有徐昊、ajoo他們寥寥幾個。而后來的這些個批評者呢?沒有,他們僅僅是看了一個開頭,就準(zhǔn)備批判了。
ajoo說得不錯:反正不是老莊浮躁,就是你浮躁,這點我敢確信。
還是回到6月份的時候吧,我當(dāng)時為什么要起這樣一個標(biāo)題呢?為了吸引眼球,的確是這樣的,沒有這樣的標(biāo)題,我的思想很難被盡可能多的朋友看到。那天跟徐昊聊天,我自己也說:不過也還是得怪我自己,當(dāng)初為了吸引更多人的注意力,起了這么大一個標(biāo)題,也難怪人家要抓我的痛腳。
所以呢,我也有浮躁的地方,不過比我浮躁的人,更是大把啊。
ps:來的人,估計是看來最近一期《程序員》的介紹以后來的,Google-->Click Link-->Write。
nàn:災(zāi)難;禍害,人為而產(chǎn)生的禍害
天災(zāi)人禍,層出不窮。地震、海嘯、颶風(fēng)、戰(zhàn)亂、疾病、禽流感、礦難、空難、中外爆炸、GFW&備案制造的網(wǎng)難。
nán:困難;艱難
整個中國的國家政策正在發(fā)生重大的調(diào)整,從以往的政策傾斜于優(yōu)勢發(fā)展產(chǎn)業(yè),到現(xiàn)在力圖縮小社會差距,傾斜于西部、三農(nóng)、弱勢群體、教育、醫(yī)療衛(wèi)生、民工。無數(shù)的既得利益者阻撓這樣的改革,中央政府在深水區(qū)里舉步維艱。
相關(guān)鏈接:Postshow發(fā)起2005“年度漢字”評選活動
tags:年度漢字
鏈接地址:
第0 面向?qū)ο?
http://www.aygfsteel.com/raimundox/archive/2005/12/20/24851.html
第1 接口
http://www.aygfsteel.com/raimundox/archive/2005/12/21/24889.html
第2 繼承
http://www.aygfsteel.com/raimundox/archive/2005/12/21/24891.html
第3 一切皆對象和面向?qū)ο蟮睦碚摶A(chǔ)
http://www.aygfsteel.com/raimundox/archive/2005/12/21/24957.html
ajoo 寫道: |
其實,這篇文章還應(yīng)該進(jìn)一步界定為:給沒有類型推導(dǎo)的,泛型支持有限的,基于名字而非結(jié)構(gòu)的子類型系統(tǒng)的,靜態(tài)類型面向?qū)ο笳Z言敲響的喪鐘.(說穿了不過就是java, c#, c++等寥寥幾個俗語言罷了) 老早跟老莊說讓他劃定討論范圍或者定義的時候,就是看到老莊話說的挺大,結(jié)果討論來討論去不過就是java, c++那點東西.文不對題.不過可能老莊認(rèn)為所謂的"面向?qū)ο螅⒈厝痪褪莏ava這個樣子,所以下定義屬于多此一舉。 批判oo而不研究ruby們,smalltalk們,ocaml們; 批判靜態(tài)強類型而看不見haskell們,clean們,oz們,那就最好小心一點,把標(biāo)題變成"給我目前所知的OO敲響喪鐘"。 |
再次特別感謝徐昊和ajoo。
| |||||||||
日 | 一 | 二 | 三 | 四 | 五 | 六 | |||
---|---|---|---|---|---|---|---|---|---|
27 | 28 | 29 | 30 | 1 | 2 | 3 | |||
4 | 5 | 6 | 7 | 8 | 9 | 10 | |||
11 | 12 | 13 | 14 | 15 | 16 | 17 | |||
18 | 19 | 20 | 21 | 22 | 23 | 24 | |||
25 | 26 | 27 | 28 | 29 | 30 | 31 | |||
1 | 2 | 3 | 4 | 5 | 6 | 7 |
常用鏈接
留言簿(20)
隨筆檔案
- 2006年10月 (1)
- 2006年7月 (1)
- 2006年6月 (3)
- 2006年5月 (2)
- 2006年4月 (3)
- 2006年3月 (9)
- 2006年2月 (1)
- 2006年1月 (9)
- 2005年12月 (7)
- 2005年11月 (20)
- 2005年10月 (3)
友情BLOG
- 我在MSN的Blog
- 范凱(Robbin)的BLOG
- 據(jù)說不會有什么技術(shù)文章
搜索
最新評論

- 1.?re: AjaxOpenDoc源代碼下載
- 評論內(nèi)容較長,點擊標(biāo)題查看
- --syt
- 2.?re: [導(dǎo)入]回顧我的BBS生涯——在網(wǎng)易的6年(1)
- 從來沒有深入的去想一想自己有什么信仰,雖然對工作和生活熱情,卻不知道是靠什么驅(qū)使的,想在你這里找到一些答案,能來給我一些指導(dǎo)?或者一些推薦的書籍。
- --greatghoul
- 3.?re: 還賬——1
-
是在搜索你博客主題的時候找到了你的站
感覺思考偏重于技術(shù)
呵呵 - --老鷹訓(xùn)練營
- 4.?re: XP應(yīng)該是老板的最愛,而不是程序員的首選
-
您好,我們公司是一家中國境內(nèi)的專業(yè)翻譯公司,從事各專業(yè)翻譯服務(wù),包括筆譯、口譯、同聲傳譯和同聲傳譯設(shè)備租賃等。我們需要招聘兼職翻譯、同傳譯員和外籍英文校對人員。
希望有機會合作. - --replica watch
- 5.?re: AjaxOpenDoc源代碼下載
- sdg
- --gsdg