<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    posts - 59,  comments - 323,  trackbacks - 0
    一直有朋友發(fā)email來索要那本OpenDoc的源代碼,這里一并給出下載地址。

    http://www.tkk7.com/Files/zbw25/code.rar

    抱歉,拖了這么長(zhǎng)時(shí)間。

    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)該要注冊(cè)成為javaeye的用戶后,才能下載。
    posted @ 2006-10-18 19:45 讀書、思考、生活 閱讀(108324) | 評(píng)論 (11)編輯 收藏
    ?
    ?

    我寫的總結(jié)
    ?

      如果和超級(jí)女生這樣的大賽相比的話, Ajax 大賽應(yīng)該被稱之為“ Ajax 小賽”吧。 250 名初賽選手, 10 多名復(fù)賽選手,三個(gè)來自于一個(gè)網(wǎng)站“ Ajax 中國(guó)”的評(píng)委。這樣的比賽意義在哪里呢?

    ?

      僅僅看數(shù)量,是看不出來的。

    ?

      Ajax Web 應(yīng)用的一種,而且可以肯定的說,是 Web 應(yīng)用中最為復(fù)雜的一種,一個(gè) Web 項(xiàng)目,我們通常都會(huì)分為“美工”、“ Web 靜態(tài)頁(yè)面制作”、“ Server 端系統(tǒng)開發(fā)”這樣幾個(gè)工種。而 Ajax 應(yīng)用則同時(shí)需要 Server 端與 Client 端復(fù)雜的端到端編程技術(shù)。

    ?

      對(duì)于參賽選手而言,這些工作,都得靠一己之力來完成,在 2 個(gè)多月之內(nèi),做出來的作品,要美觀,要好用,要有創(chuàng)意,要符合 W3C 組織的 Web 標(biāo)準(zhǔn),還得正確有效的作為一個(gè)程序在瀏覽器里運(yùn)行。真的,不容易!這 11 位(可能會(huì)修改)參賽選手,每一位都不容易!

    ?

      我們(大賽組織者、評(píng)委和參賽選手)都非常確切的意識(shí)到,我們正處在一場(chǎng)變革剛剛起步的階段。 Ajax 可能僅僅是這場(chǎng)革命開始時(shí),最響亮的一個(gè)名字。激動(dòng)人心的發(fā)展將會(huì)接踵而來,而我們這些人將會(huì)自豪的宣稱,我們從一開始就不是旁觀者,而是實(shí)實(shí)在在的參與者,和有力的推動(dòng)者!

    ?

      看著選手們的代碼,我們的信心更加充足,這些 Ajax 的愛好者和參與者們,不僅是熱忱的,更是踏實(shí)的。不但是嚴(yán)肅認(rèn)真的,更是勇于創(chuàng)新的。由這樣的一群人來推動(dòng) Ajax 在中國(guó)的發(fā)展,實(shí)在是一個(gè)極好的開始。

    ?

      而 Ajax 大賽,正是這樣一個(gè)機(jī)會(huì),使得這一群中堅(jiān)力量,能夠集結(jié)、凝聚,進(jìn)而取得更加卓越的成就。這就是我對(duì)于這個(gè)比賽意義的理解。


    ?  說實(shí)話,稍微吹了一點(diǎn)

    posted @ 2006-07-14 21:35 讀書、思考、生活 閱讀(30220) | 評(píng)論 (0)編輯 收藏

    “出來混,總是要還的。”這話說得真好。我最近的blog寫得太少了,想寫的東西,其實(shí)又實(shí)在是不少,一日復(fù)一日的堆積心里,又想寫,又不想寫,難受呀。

    這篇blog原本還是打算在Word 2007里寫的, 后來作為草稿發(fā)上來,發(fā)現(xiàn)還有不少不如意的地方,還是在線寫吧。

    想說的事情挺多的,一件一件的說吧。

    一、敏捷中國(guó)大會(huì),6月6日在上海交大舉辦了一場(chǎng)。專門介紹ruby的,昨天在csdn的martin fowler的中文blog上,也貼出了完整的演講全文。《Ruby是一個(gè)非常好的開發(fā)工具》,《現(xiàn)場(chǎng)演示Ruby編程》,《細(xì)數(shù)Ruby語(yǔ)言優(yōu)缺點(diǎn)》。關(guān)于這次活動(dòng)的一篇Blog按理我早就該寫了,但是卻一直沒有寫出來。有兩個(gè)原因,一個(gè)是那天老馬在開講之前,熊節(jié)是打算在邊上當(dāng)翻譯的,誰(shuí)知道交大的同學(xué)們牛啊,紛紛表示,不必翻譯,都聽得懂的,我一個(gè)學(xué)俄語(yǔ)的人,在那里抗議也沒什么用,大家都一副聽力很好的架勢(shì),老馬在上面嘰里呱啦的講著,下面的同學(xué)們不時(shí)的笑著……我呢,也只能隨著大家的笑聲,沖著老馬空洞的笑著……;第二個(gè)原因呢,是個(gè)原本打算等CSDN的演講的翻譯出來,我也好引用一下,誰(shuí)知這一等,就是半個(gè)月,我都已經(jīng)換了一個(gè)工作了。

    說實(shí)話,那天老馬的演講,我沒聽懂,不過因?yàn)樗谀抢铿F(xiàn)場(chǎng)coding,所以我還是看懂了一些代碼。Ruby的代碼給人留下了深刻的印象,而且我不知道是不是Martin故意裝作是一個(gè)初哥,反正看起來他對(duì)ruby的語(yǔ)法也不怎么熟悉,不過ruby厲害的地方就在于,你就算是個(gè)初哥,邊試邊弄,也能把程序鼓搗出來。

    原本的計(jì)劃是介紹Ruby DSL的,不過時(shí)間明顯的不夠用,關(guān)于DSL的部分反而講得很少,還好這兩天armlinux-w翻譯了一篇專講Ruby DSL的文章過來:《用Ruby 創(chuàng)建領(lǐng)域特定語(yǔ)言》。當(dāng)時(shí)看到Martin演示的,用Ruby語(yǔ)言描述的配置文件時(shí),腦子里頗有些想法,也寫了問題交上去問,不過老馬也來不及一一回答,后來想想,提的那個(gè)問題,也沒有經(jīng)過自己的深入思考與實(shí)踐,不提也罷。

    倒是我提的另外一個(gè)問題,頗有些價(jià)值,當(dāng)時(shí)正好交大的林德樟老師也在,我以前就對(duì)林老師的那句語(yǔ)錄有所不滿《XP是草書,UP是正楷,先草書后正楷,就會(huì)亂套》。在自己的Blog上也和林老師的門徒們吵過架,如今Martin教主本人既然來了,我等看客正應(yīng)該把這仗挑起來才是。于是我就提了一個(gè)問題,讓兩位專家都來評(píng)價(jià)一下這句話。可惜的是,后來他們兩人的精彩交鋒,我也沒怎么聽懂,還是林老師還用中文闡述了一遍自己的觀點(diǎn),我算是了解了一下他的邏輯。

    原來我以為,林老師這樣的說法,是出于在校教師“和稀泥”的考慮。這下我才了解到,原來林老師是真的這么認(rèn)為的。而他這么一種說法的依據(jù),還是慣常的“中國(guó)國(guó)情論”。或者稱之為“補(bǔ)課論”。因?yàn)槊绹?guó)人是現(xiàn)有軟件工程,才有極限編程,而我們現(xiàn)在的軟件產(chǎn)業(yè)還落后人家?guī)资辏圆话衍浖こ踢@一課不上,是不行的。然后林老師還頗有些“攻擊力”的詢問Martin,當(dāng)初你先寫了UML,后來又寫了XP,不也是這樣一個(gè)心路歷程嗎?老馬如何回答,我也沒有聽懂,但是在我看來,林老師混淆了三個(gè)概念,一個(gè)是國(guó)家級(jí)的軟件產(chǎn)業(yè)的發(fā)展水平,一個(gè)是企業(yè)級(jí)的軟件開發(fā)的管理水平,一個(gè)是開發(fā)人員的技術(shù)與理論水平。這三個(gè)不同的水平被他攪在一起,用于支撐自己的說法,實(shí)在是???????所以,會(huì)后我又追上去問林老師,我提出了三個(gè)概念混淆了云云,沒想到林老師相當(dāng)和藹可親的對(duì)我說:“嗯,你說的沒錯(cuò)”,然后又說到關(guān)于大學(xué)的軟件教育的問題,我在說很多剛畢業(yè)的學(xué)生,對(duì)于軟件開發(fā)的理解,往往停留于知識(shí)點(diǎn)的積累上,而沒有去思考,我打算把這些知識(shí)點(diǎn),組合起來運(yùn)用,以達(dá)到什么目的。很多學(xué)生,只是說我知道什么什么,而不會(huì)說,我會(huì)做什么什么。林老師又和藹可親的對(duì)我說:“嗯,你說的沒錯(cuò)。我一直跟學(xué)生們說,學(xué)校和企業(yè)是完全不同的,真正的知識(shí),只能在企業(yè)里才能學(xué)到。”然后我又說,其實(shí)軟件學(xué)院應(yīng)該多推薦學(xué)生去企業(yè)實(shí)習(xí),還有就是多鼓勵(lì)學(xué)生參與Open Source的項(xiàng)目呀。林老師還是和顏悅色的對(duì)我說:“是啊,不過現(xiàn)在的企業(yè),要他們肯接收學(xué)生實(shí)習(xí),不容易的。在美國(guó),每年暑期都會(huì)有大量的實(shí)習(xí)生招聘,這其實(shí)就是企業(yè)在做慈善呀。再說現(xiàn)在的大學(xué)老師,對(duì)Open Source的了解,也很少的呀。”然后,我就跟林老師告辭了。作為一個(gè)老師,他給我留下了很好的印象,但是,我更加悲觀的發(fā)現(xiàn),要通過學(xué)校教育,提高軟件開發(fā)人員的素質(zhì),好難啊!

    會(huì)后大家又找了一家小飯店FB了一下,CSDN的霍泰穩(wěn)也來了,我還給他們提了一個(gè)建議,以后CSDN最好能夠搞一個(gè)系列的活動(dòng),不斷的把世界各地的軟件大師們請(qǐng)到中國(guó)來,巡回演講,收取門票,整理成每年基本的《軟件大師在中國(guó)》這樣書出版,還有視頻光盤也可以賣錢,各位大師的中文Blog也都建在CSDN,應(yīng)該是一樁雙贏的好事啊,就看他們是不是打算做了。

    (待續(xù))

    posted @ 2006-06-20 23:05 讀書、思考、生活 閱讀(28450) | 評(píng)論 (6)編輯 收藏
    最近一直在討論招人的事情,如何判斷一個(gè)人的水平,怎么樣才算是沒有bug,等等等等。也看到一些并不怎么有趣的反對(duì)意見,比如:
    不要出來搞笑說:
    沒有bug的程序?????????
    靠,站著說話不腰疼。那個(gè)公司可以做出沒有bug的軟件來?
    當(dāng)然,沒有寫過程序的人不出bug!!
    估計(jì)這位同志不會(huì)寫代碼,是個(gè)理論專家。
    還是不要這么狂的好。
    我估摸按你的標(biāo)準(zhǔn),你是肯定不會(huì)被別人錄用的!
    123說:
    你是編程的嗎?
    無“BUG”搞笑吧你
    測(cè)試是不能查出所有BUG的
    而且不是所有測(cè)試都能窮舉的
    只能是測(cè)試覆蓋率達(dá)到一個(gè)標(biāo)準(zhǔn)
    BUG出現(xiàn)的概率達(dá)到標(biāo)準(zhǔn)
    才算產(chǎn)品
    “ZERO-BUG”做夢(mèng)去吧
    說實(shí)話,這兩個(gè)名字我看都不是用戶名,而且很可能是同一個(gè)人,就是所謂的troller。我說的沒有bug,是交給我的demo沒有bug,這樣的要求很高嗎?我還沒有出算法題,要求應(yīng)聘者的算法效率呢??jī)H僅要求一個(gè)正確實(shí)現(xiàn)簡(jiǎn)單功能的程序,很過分嗎?
    ?
    在JavaEye還看到另外一篇帖子《大伙能進(jìn)來討論下“跳槽”的問題》,有一個(gè)小伙子,對(duì)自己的代碼有感情,對(duì)人有感情,對(duì)公司有感情,所以當(dāng)公司遇到困難的時(shí)候,一時(shí)間舍不得走。這樣正常的事情,居然頗遭到不少人的冷嘲熱諷,和各種“善意”的勸誡。
    ?
    我就覺得非常奇怪,一個(gè)程序員,如果對(duì)自己寫的代碼沒有感情,怎么可能寫出漂亮的代碼來?同樣的道理,如果一個(gè)程序員,對(duì)自己的工作質(zhì)量沒有追求,又怎么可能成為高水平的程序員?一個(gè)前來應(yīng)聘的人,為了得到offer而寫的demo,就這種情況下,在寄出代碼之間都不認(rèn)認(rèn)真真的檢查檢查,這樣粗心大意的家伙,我怎么敢招?
    ?
    總而言之一句話:“對(duì)代碼有感情,對(duì)質(zhì)量有追求”,這是成為好程序員的基本前提。
    posted @ 2006-06-18 02:23 讀書、思考、生活 閱讀(28071) | 評(píng)論 (14)編輯 收藏
      我寫了一篇blog叫做《招人不難》,很多朋友很贊同,也有的朋友不同意我的意見,他們很懷疑:“有bug的一律不要?沒有BUG的代碼是不存在的...blabla”
    ?
      正好今天又看到一篇轉(zhuǎn)貼的笑話,叫做《【轉(zhuǎn)】從一個(gè)笑話看軟件開發(fā)管理》,大意是,程序員交出了自以為沒有bug的代碼,然后一切都變得越來越糟糕,而程序員總是會(huì)交出自以為沒有bug的代碼。
    ?
      我們今天就來談?wù)劊粋€(gè)程序員,什么時(shí)候可以交出自己的代碼,并且可以自豪的對(duì)別人說:“我的代碼里面,沒有bug!”。
    ?
      先說傳統(tǒng)的做法,一個(gè)負(fù)責(zé)的程序員,應(yīng)該在交出代碼之前,自己跑好多次自己的代碼,左看右看,上看下看。直到交出去的時(shí)候,沒有一個(gè)人能夠發(fā)現(xiàn)其中的問題。這樣的能力一般只有天才才能具備,我以前遇到過一個(gè)。但是,如果我企圖以這樣的標(biāo)準(zhǔn)來招人的話,那就是在發(fā)瘋,怎么還敢說“招人不難”?
    ?
      說說可行的辦法吧。一個(gè)程序員如果足夠的謙虛,時(shí)時(shí)想證明自己可能犯錯(cuò),即將犯錯(cuò),或者已經(jīng)犯錯(cuò)。那么他就會(huì)盡量寫出足夠多的TestCase,以便打消自己的疑慮。直到所有的測(cè)試用例全部通過,屏幕上顯示出美麗的綠色長(zhǎng)條,他才能確信,自己的代碼沒有bug。
    ?
      所以,我的判斷標(biāo)準(zhǔn),也很簡(jiǎn)單。如果寄給我的代碼,沒有附帶測(cè)試用例,我就自己運(yùn)行他的程序,隨意的亂找,找到一個(gè)我認(rèn)為是bug的,那就是有bug了。如果寄給我的代碼,附帶了足夠的測(cè)試用例,我只要Run一次,看到綠條,這一關(guān)就算是過了。~~~很簡(jiǎn)單吧。
    ?
      也許有人會(huì)說,那如果他的測(cè)試用例很簡(jiǎn)單呢?豈不是不能說明什么問題?怎么不能說明問題呢?首先可以說明:這是一個(gè)會(huì)寫測(cè)試用例的程序員!其次,我會(huì)看看他的測(cè)試用例的代碼,大概覆蓋了多少的功能特性。當(dāng)然,這是更進(jìn)一步的能力判斷。但是至少,他的代碼已經(jīng)達(dá)成了他自己的設(shè)計(jì)了呀。
    ?
      所以:“有bug的一律不要”,意味著,你最好能夠自己證明自己沒有bug,否則,我如果找到一個(gè)bug,你就沒戲了。
    posted @ 2006-06-11 10:34 讀書、思考、生活 閱讀(29286) | 評(píng)論 (10)編輯 收藏
      孟老師最近有點(diǎn)煩,面試了一個(gè)剛畢業(yè)大學(xué)生,結(jié)果發(fā)現(xiàn)那家伙一問三不知。隨后的跟帖也是常見的感嘆:
      “現(xiàn)在的大學(xué)生過于浮躁”
      “真不明白本科都在學(xué)什么”
      還有一位臺(tái)灣同胞說:“本來還以為只有在臺(tái)灣有這種情形,原來兩岸的情都相同。”
    ?
      因此,打算寫這篇blog,介紹一下我是怎么招人的。其實(shí),招人并不難。
    ?
      1、寫招聘廣告
      2、收簡(jiǎn)歷,初步了解背景情況,然后讓加我的MSN
      3、在MSN里,就問一個(gè)問題:以下幾種技術(shù),你哪一種最熟悉,哪一種最不熟悉
      4、你就用最不熟悉的那種技術(shù),做一個(gè)demo給我,沒有時(shí)間限制,要求如下:
        -首先是demo的質(zhì)量,一定不能有任何bug
        -其次是代碼的質(zhì)量,要干凈,明白,好懂。
        -要有創(chuàng)意
        -在功能創(chuàng)意與時(shí)間進(jìn)度之間,自行平衡
      5、拿到代碼之后,先看看能不能正常運(yùn)行,看看有沒有bug。
      6、在Google里搜索代碼的關(guān)鍵段落,看看有沒有抄襲,或者了解一下借鑒的程度
      7、看他的代碼,是不是足夠干凈,足夠合理,足夠樸素
      8、如果一個(gè)人能夠在很短的時(shí)間里,自行快速學(xué)習(xí)一種新的技術(shù),并交出足夠質(zhì)量的代碼。這樣的員工,我就準(zhǔn)備要了。至于面試,無非是談?wù)劰べY的高低意向罷了。
    ?
      這樣的招人辦法,要點(diǎn)在于:
      1、我不關(guān)心他的學(xué)歷,工作經(jīng)驗(yàn),年齡和技術(shù)背景,因?yàn)檎械揭粋€(gè)出色的員工,他會(huì)持續(xù)的自我學(xué)習(xí),不斷的進(jìn)步。
      2、有bug的一律不要
      3、代碼最能夠說明問題,其他一切判斷都要在我看過他的代碼之后。一個(gè)人,不要玩弄聰明,不要炫耀技巧,寫老老實(shí)實(shí),干干凈凈的代碼,合理的貼切的變量命名、方法命名、類命名,合理而不多不少的類間關(guān)系。這樣的代碼,就是漂亮的代碼。能寫出這樣的代碼的人,就有足夠好的思維和品性。
      4、快速學(xué)習(xí)的能力要比過去的工作經(jīng)驗(yàn)更加重要,因?yàn)槟敲炊喙ぷ鹘?jīng)驗(yàn),也要有助于完成今后的工作,才能體現(xiàn)出價(jià)值。
      5、不抄襲,有創(chuàng)意,這樣的人才很難得。
      6、有計(jì)劃的實(shí)現(xiàn)功能,能夠在功能和時(shí)間進(jìn)度之間合理決斷。這就是有大局觀的人才。
    ?
      當(dāng)然,這樣招人的基礎(chǔ)是,你自己的代碼水平要夠高。很多公司根本就沒有這樣的水平,只能靠筆試來判斷人家的水平。
    ?
      我工作過的公司,曾經(jīng)有一個(gè)小伙,他的代碼,縮進(jìn)不是靠Tab,而是“按下空格鍵,任代碼隨意后退”,他的代碼,彎彎曲曲,難看至極。前兩天,他跟我說“我筆試得了90多分,當(dāng)場(chǎng)拿到了4.5K的Offer。”可見,筆試是毫無意義的測(cè)試手段。
    ?
    btw:還有問題,這樣招人效率不是很高,也比較累,緊急招人的情況不適用。當(dāng)然,緊急招人的項(xiàng)目,通常肯定是搞不好的。
    posted @ 2006-05-30 16:11 讀書、思考、生活 閱讀(29030) | 評(píng)論 (36)編輯 收藏
      大多數(shù)程序員,都極度痛恨寫文檔。Coding是愉快的,而Write是痛苦的。有一部分原因,其實(shí)是要?dú)w咎于程序員自身,以我的經(jīng)驗(yàn),很多程序員往往會(huì)“艱于表達(dá)”,尤其是用“文字、圖表、PPT、Word”之類的Office Document來表達(dá)。當(dāng)然,還有一部分原因,是由于很多項(xiàng)目開發(fā)實(shí)踐中,文檔的前后矛盾、形式主義、反復(fù)修改、歧義重重,常常讓程序員們抓狂。
    ?
      UML是一個(gè)比較好的工具,但是,僅僅靠UML,是無法將項(xiàng)目的知識(shí)描述清楚的。也有不少項(xiàng)目組在引入了UML之后發(fā)現(xiàn),文檔的工作量不但沒有減少,而是更多了。隨著項(xiàng)目的進(jìn)展,需要維護(hù)的設(shè)計(jì)文檔數(shù)量,也更多了。也因此造成了更多的前后矛盾,形式主義,反復(fù)修改。
    ?
      根本的痛苦,并不在于一開始寫一份文檔,而在于所有寫下的文檔,都必須跟隨項(xiàng)目的進(jìn)展而隨之變化。當(dāng)我們寫出來的文檔越多,需要被持續(xù)維護(hù)的文檔也就越多,需要反復(fù)檢查文檔間的可能存在的矛盾也就越多,所有扔出去的石頭,最后都會(huì)落回到自己頭上。
    ?
      于是,還有不少項(xiàng)目組,將文檔工作與代碼工作截然分開,文檔就寫一次,用來應(yīng)付上面的管理層,而代碼自管自的繼續(xù)開發(fā)。對(duì)于小型項(xiàng)目來說,這其實(shí)是一個(gè)不錯(cuò)的權(quán)宜之計(jì)。但是一旦項(xiàng)目越來越龐大、復(fù)雜。所有的隱性的知識(shí),都僅僅存在于程序員的腦子里,所有成文的東西,都可能是錯(cuò)的,而真實(shí)的情況,卻隱藏在代碼之中。如果代碼質(zhì)量再糟糕一些,后來維護(hù)的朋友,就遭遇火坑了。
    ?
      文檔,寫還是不寫,這是一個(gè)問題!
    ?
      還記得測(cè)試驅(qū)動(dòng)開發(fā)嗎?為自己的每一個(gè)方法,每一個(gè)類,都寫出單元測(cè)試來。不但如此,更加徹底的做法是,在寫代碼之前,先寫測(cè)試用例。這樣才能保證不會(huì)忘記寫測(cè)試用例。更大的好處在于,這樣有助于思考、有助于獲得更加完善的設(shè)計(jì),有助于寫出更加高質(zhì)量的代碼,有助于安全的重構(gòu),有助于自動(dòng)化的持續(xù)集成實(shí)踐。總之,是好得不能再好的一項(xiàng)開發(fā)實(shí)踐。
    ?
      這一實(shí)踐之所以可行,就在于他將繁雜的集中的測(cè)試工作,分解為日常的,必須不斷進(jìn)行的工作。當(dāng)你每天都在寫測(cè)試用例,當(dāng)你的每一個(gè)測(cè)試用例,都能夠與代碼完全對(duì)應(yīng)時(shí),壓力反而減輕了,工作量也更少了,更重要的,一些優(yōu)良的習(xí)慣也因此被養(yǎng)成了。
    ?
      在兩年前,我要開始一個(gè)全新的P2P網(wǎng)絡(luò)電視項(xiàng)目時(shí),也在考慮關(guān)于文檔的問題。當(dāng)時(shí)我發(fā)現(xiàn)了Open Source的WikiPedia。這是一個(gè)PHP的WIKI,最大的應(yīng)用是維基百科全書。因此,這個(gè)項(xiàng)目的質(zhì)量就絕對(duì)值得信賴。我就將它拿過來,作為我們項(xiàng)目文檔管理的工具。
    ?
      用Wiki來管理項(xiàng)目文檔,基于以下一些考慮:

    文檔是項(xiàng)目的知識(shí),這些知識(shí)必須集中管理、容易獲取、人人可以編輯。

    項(xiàng)目在生長(zhǎng),代碼在增加,文檔也必須能夠跟隨項(xiàng)目自然生長(zhǎng),強(qiáng)行劃分設(shè)計(jì)階段和開發(fā)階段,是不可取的。

    Wiki不是傳統(tǒng)的項(xiàng)目文檔,而是一個(gè)應(yīng)交流需要,可能隨時(shí)增刪改的知識(shí)庫(kù)。項(xiàng)目組的成員,遇到問題,就應(yīng)該首先查看Wiki,如果這是Wiki中沒有,那么他應(yīng)該找人詢問。而那個(gè)知道答案的人,如果他不想再今后不斷的回答同一問題,就應(yīng)該把這個(gè)答案寫入Wiki,這就是Wiki條目增長(zhǎng)的自然動(dòng)力。

    傳統(tǒng)文檔最大的問題在于浪費(fèi),而Wiki通過持續(xù)修改,按需提供的方式,保證了所有寫下的文字,一定有超過一個(gè)人需要讀它。

    ?
      在Wikipedia的基礎(chǔ)上,我又做了一些增強(qiáng),以更好的輔助項(xiàng)目的管理。

    Include功能,增加include標(biāo)簽,可以在一個(gè)條目中,引入其他條目的全文,而不是僅僅增加一個(gè)link。

    文檔的層次結(jié)構(gòu),當(dāng)項(xiàng)目的文檔條目逐漸增加,分門別類的條目,更加便于查找,也可以有效的避免條目重名的問題。

    一個(gè)Click,就能夠創(chuàng)建新一個(gè)條目,用于填寫當(dāng)天的工作安排。

      相應(yīng)的管理制度,也必須建立起來。

    每日15分鐘文檔制度,基于“填寫當(dāng)日工作”的功能,我規(guī)定每個(gè)項(xiàng)目組成員,每天要花三個(gè)5分鐘來寫文檔,早上的5分鐘,填寫當(dāng)日工作計(jì)劃。中午的5分鐘填寫上午的工作情況,下班前的5分鐘,填寫下午的工作情況。這樣,每天的文檔工作相當(dāng)輕松,但是文檔能夠保證持續(xù)的跟隨項(xiàng)目成長(zhǎng)下去。更進(jìn)一步的,這樣的制度,對(duì)于項(xiàng)目的進(jìn)度控制,也很有幫助。

    User Case條目驅(qū)動(dòng),所有分解出去的User Case,在分配到責(zé)任人之后,該責(zé)任人的第一項(xiàng)工作,就是在Wiki中寫下對(duì)于這個(gè)User Case的理解。隨后項(xiàng)目進(jìn)展,也應(yīng)該持續(xù)的維護(hù)這個(gè)條目。

    同時(shí)進(jìn)行Bug的管理,Bug也作為Wiki中的條目,以便于和其他條目項(xiàng)目引用。

    每次Check In CVS時(shí),必須寫注釋。這是更加細(xì)節(jié)的文檔,然后我還做了一個(gè)小程序,能夠自動(dòng)的從CVSTrac中讀出當(dāng)天Check In代碼的注釋。供每個(gè)人在寫當(dāng)天文檔的時(shí)候引用。

      總而言之,我對(duì)于項(xiàng)目文檔的看法,并不是非此即彼的極端主義者。在我看來,好的項(xiàng)目文檔管理政策,應(yīng)該有助于集中團(tuán)隊(duì)知識(shí)和智慧,同時(shí)不要讓程序員痛苦和反感。這樣才叫做有效的項(xiàng)目管理。仿造Martin Fowler的著名文獻(xiàn)《持續(xù)集成》,我給這篇Blog起這樣一個(gè)名字《軟件開發(fā)文檔的持續(xù)集成》,希望能夠引發(fā)更多的、更深入的思考。
    posted @ 2006-05-12 14:23 讀書、思考、生活 閱讀(28647) | 評(píng)論 (3)編輯 收藏
      我新到這家公司,就開始了一場(chǎng)死亡之旅,我們的項(xiàng)目開發(fā)周期是3個(gè)月,人員大概有3~6個(gè)不一定。而以我的經(jīng)驗(yàn),我們大概要做的,是一個(gè)3~5個(gè)人年的非常復(fù)雜的創(chuàng)新型項(xiàng)目。新加盟的技術(shù)總監(jiān),是一個(gè)崇尚文檔交流的“老干部”,因此,我們花了一個(gè)月的時(shí)間,在寫各種各樣的設(shè)計(jì)文檔。真正能夠用于開發(fā)的時(shí)間,是2個(gè)月。
    ?
      我們這個(gè)小組的另外一位組員,也是一位經(jīng)驗(yàn)豐富的項(xiàng)目經(jīng)理,他崇尚的,是文檔UML化描述。因此,我現(xiàn)在除了寫文檔,還要用Rational Rose畫好多好多的圖~~~
    ?
      在他們兩位來這個(gè)項(xiàng)目組之前,我其實(shí)已經(jīng)寫出了一份基本完整的User Case列表,而且和另外一位組員已經(jīng)進(jìn)入測(cè)試驅(qū)動(dòng)的、結(jié)對(duì)編程階段了。。。
    ?
    ?
      大家可能已經(jīng)看出來了,這其中的開發(fā)模式,簡(jiǎn)直就是混亂不堪。到底是文檔驅(qū)動(dòng)?UML驅(qū)動(dòng)?用例驅(qū)動(dòng)?還是測(cè)試驅(qū)動(dòng)呢?
    ?
      問題還不止這些,我們的大老板比較喜歡和我們一起討論設(shè)計(jì),甚至?xí)臀覀儬?zhēng)論具體的某個(gè)算法。開發(fā)文檔沒有統(tǒng)一的管理,匯報(bào)機(jī)制沒有明確的定義,項(xiàng)目需求隨時(shí)都可能變動(dòng),就連到底我們這個(gè)小組會(huì)有幾個(gè)人,都還是一個(gè)未知數(shù),這樣的死亡之組,不知各位有什么好的建議?

    ?背景資料介紹完畢,抱怨結(jié)束,下面討論正題:

      文檔驅(qū)動(dòng)、測(cè)試驅(qū)動(dòng)、用例驅(qū)動(dòng)、模型驅(qū)動(dòng)、特征驅(qū)動(dòng)。。。。他們都要解決的是什么問題?

      要回答這個(gè)問題,還真不容易。我們得問一個(gè)更加重要的問題,真正驅(qū)動(dòng)項(xiàng)目的,究竟是什么呢?我想,應(yīng)該是需求吧?

    ?

      那么,這些“文檔”、“測(cè)試”、“用例”、“模型”、“特征”,究竟是什么呢?對(duì)于需求的描述!我們之所以不會(huì)直接用需求來驅(qū)動(dòng)項(xiàng)目開發(fā),而是要借助工具,來幫助我們描述需求,就是因?yàn)榭谡Z(yǔ)化的需求描述是非常模糊的,充滿歧義的。所以,選擇什么來驅(qū)動(dòng)我們的項(xiàng)目,其實(shí)就是要看,以上這些工具,哪一個(gè)能夠更好、更準(zhǔn)確的描述需求?

    ?

      文檔其實(shí)是最難準(zhǔn)確描述需求的一種方式,如果是純文字的文檔,就更難。我們的技術(shù)總監(jiān),非常喜歡讀寫文檔,我最近也創(chuàng)下了一天寫47頁(yè)文檔的最新記錄。但是,當(dāng)我們開會(huì)的時(shí)候,我還是經(jīng)常需要提醒我們的技術(shù)總監(jiān),麻煩他再仔細(xì)看看文檔第XX頁(yè)的第XX段,以及配合著另一份文檔的XX小節(jié),來確切的理解我的意思!如果沒有我的解釋,他就會(huì)誤解我的文檔。

    ?

      當(dāng)然,如果要寫出不需要我來解釋,他就能理解的文檔,那么文檔的工作量,將會(huì)極其驚人!我以前寫過一篇blog,《Jacobson博士演講觀后感》是我對(duì)UP的創(chuàng)始人的極度反感的集中體現(xiàn)。GHawk,以及交大林老師的所謂“UP”的觀點(diǎn),當(dāng)然不可能獲得我的贊同。在GHawk的最新一篇blog:《UP & XP之爭(zhēng),意義何在?(續(xù))》中,GHawk說:“唯一的問題是:“如何確保測(cè)試用例的質(zhì)量”。顯然,我們不能把一把不直的尺子度量出來的結(jié)果作為可靠的參考依據(jù)。怎么解決呢?“結(jié)對(duì)編程”么?嗯,這是一個(gè)不錯(cuò)的方式,那么最終該信賴誰(shuí)呢?是Pair中的A還是B呢?或者,是Leader么?那么又是誰(shuí)提出的要求呢?是老板么?還是客戶?政府?法規(guī)?市場(chǎng)?……問題沒有終結(jié)了。”

    ?

      由此我可以推斷,他對(duì)于XP的認(rèn)識(shí),基本上是停留在猜測(cè)的階段。對(duì)于這篇blog的觀點(diǎn),我就不逐一反駁了,我的猜測(cè)是,他經(jīng)歷過一次失敗的XP嘗試,而究其原因,我猜測(cè)是因?yàn)樗麄兡莻€(gè)所謂的XP Team中,沒有一個(gè)人,曾經(jīng)實(shí)踐過一次正規(guī)的XP開發(fā)。

    ?

      再來看模型驅(qū)動(dòng),這中間有一個(gè)大問題,因?yàn)樾枨笫恰皢栴}域”的范疇,而模型,則是“解答域”的范疇,試圖通過解答域的精確描述,來實(shí)現(xiàn)對(duì)于需求的準(zhǔn)確描述,肯定不靠譜啊。

    ?

      特征驅(qū)動(dòng),我認(rèn)為FDD其實(shí)是老方法的新名詞,具體的實(shí)踐,可能更加接近測(cè)試、迭代式的過程。了解不過,所以我也不打算多說。

    ?

      用例驅(qū)動(dòng)與測(cè)試驅(qū)動(dòng),其實(shí)我認(rèn)為這是一個(gè)硬幣的兩面,用例要盡快的翻譯為測(cè)試用例,而測(cè)試用例,正是為了更加準(zhǔn)確的表述需求用例。這是我能夠想到的,驅(qū)動(dòng)項(xiàng)目開發(fā)的,最好的方法!

    posted @ 2006-04-26 00:32 讀書、思考、生活 閱讀(29567) | 評(píng)論 (31)編輯 收藏
      幾段在腦子里盤旋了很久的話:
    ?
      帶一個(gè)項(xiàng)目,要保證項(xiàng)目的質(zhì)量,當(dāng)然要靠Team Leader的水平。那么,什么才是最重要的項(xiàng)目質(zhì)量呢?當(dāng)然是代碼質(zhì)量!一個(gè)軟件項(xiàng)目,最重要的產(chǎn)品當(dāng)然是代碼!
    ?
      如果這個(gè)Leader看不懂項(xiàng)目的代碼,他只能通過要求文檔的質(zhì)量,來間接的控制代碼的質(zhì)量。一個(gè)能夠看得懂代碼的Leader,他就能夠直接控制代碼質(zhì)量。而能夠直接控制代碼質(zhì)量的Leader,對(duì)于文檔的要求,會(huì)合理很多。
    ?
      直接控制與間接控制,哪一個(gè)更加有效,是不言而喻的。當(dāng)然,那些沒有代碼閱讀能力的Leader,他們會(huì)更加強(qiáng)調(diào)文檔的重要性,甚至舍本逐末,認(rèn)為文檔質(zhì)量才是項(xiàng)目質(zhì)量的體現(xiàn)。進(jìn)而變態(tài)地追求文檔完美,以至于浪費(fèi)了程序員寫代碼的時(shí)間。這樣的Leader,根本就不可能管好項(xiàng)目的。
    ?
      公司往往會(huì)出于恐慌,向員工要求很多詳盡的文檔,主要是為了防止員工離職帶來的損失。而問題在于,公司的主要努力,應(yīng)該用于留住員工,而不是用于加強(qiáng)“善后能力”。更不是為了增強(qiáng)善后能力,搞得員工越發(fā)想離開這家公司。
    ?
    btw:
    ?
    補(bǔ)記一段交鋒對(duì)話:
    軟件開發(fā)項(xiàng)目中的成本比例》是我以前寫的一篇blog,有一個(gè)GHawk有這么一段留言:
    ?
    UP和Agile都是工程過程實(shí)踐的總結(jié),林德彰先生說過“UP是正楷,XP是草書。先學(xué)好了UP,才能學(xué)好XP;先學(xué)XP再學(xué)UP就會(huì)亂套。”
    Agile強(qiáng)調(diào)的是“代碼是真正有價(jià)值的東西。”這同樣也是實(shí)踐的結(jié)果。二位對(duì)于過程有不同的看法并不能說明孰是孰非,這只是在不同的實(shí)踐內(nèi)容和階段上的總結(jié)。在過程的選用問題上,只有不斷地實(shí)踐才是前進(jìn)的方向。?
    ?
    另外還有一篇blog,專門討論這句話。
    ?
    我的回答是:
    ?
    林德彰的說法,是一個(gè)在校教師,典型的和稀泥的說法,我不同意。
    ?
    沒想到今天有一個(gè)朋友WANG回了一帖:
    ?
    老林是在校教師?你應(yīng)該去看一下人家在美國(guó)打拼的經(jīng)驗(yàn)~~??
    ?
    我的回復(fù)是:
    他在美國(guó)打拼怎么了?還有好多土生土長(zhǎng)的美國(guó)人,也不鳥那什么UP呢?
    我為什么要聽一個(gè)海龜來上課呢?
    這年頭,海龜還不夠多嗎?

    另外對(duì)GHawk多說一句話:讓組員快速磨合的最好辦法,是結(jié)對(duì)編程,而不是大家埋頭寫文檔。
    posted @ 2006-04-22 21:35 讀書、思考、生活 閱讀(29984) | 評(píng)論 (21)編輯 收藏
      我們現(xiàn)在這個(gè)公司的大老板,平時(shí)在三樓辦公。但是,每天都會(huì)有幾次,他會(huì)在我們的辦公室里走來走去——“進(jìn)行著聊勝于無的監(jiān)督工作”。
    ?
      我想,他大概沒有聽說過“XP”、“結(jié)對(duì)編程”這樣的名詞。
    ?
      4月15日,周六,我參加了BEA上海User Group的一次活動(dòng)。北京來的Charls,做了一次非常精彩的演講。名字叫做《一個(gè)Xper的心路歷程》。全場(chǎng)笑聲不斷,Charls的感染力征服了每一個(gè)人。
      演講最后提出的一個(gè)觀點(diǎn)是:“成為一個(gè)Xper,就是成為一個(gè)合格的程序員”。要勇于暴露自己的不足,要善于溝通,要謙虛,要有計(jì)劃,要……做到了這些,我們才算是“剛剛夠格”。
    ?
      我基本上已經(jīng)被說服了……在Charls演講結(jié)束的時(shí)候,我只想問一個(gè)小問題。因?yàn)樗f,在項(xiàng)目組里,如果有人遇到問題,不要自己偷偷摸摸 的Google搞定,而是應(yīng)該馬上“舉手”,看看小組里有沒有人能夠馬上告訴你答案。這才是“勇于暴露自己的不足”。而我還想從另外一個(gè)角度問一下。
    ?
      (以下對(duì)話是一個(gè)大概的回憶)
    ?
      “我一直以來的工作方式是這樣的,遇到問題的時(shí)候,首先Google一下,這樣我不但可以找到當(dāng)前這個(gè)問題的答案,還能夠了解很多周邊的知識(shí),觸類旁通。如果直接問人的話,問題解決,我也就不再深入了。這樣是不是對(duì)于個(gè)人能力成長(zhǎng)不太有利呀。”
      Charls:“項(xiàng)目進(jìn)度在那里,當(dāng)然是馬上解決問題最好。”
      我:“那么我們是不是可以這么理解,XP對(duì)于項(xiàng)目開發(fā)的目標(biāo)很有效,而對(duì)于程序員個(gè)人能力的成長(zhǎng)目標(biāo),不是很有效?”
      Charls:“我一直這么說,XP更加高級(jí)的剝削方式……”
    ?
      頓時(shí),我豁然開朗。XP的好處,從老板的角度來看,應(yīng)該更多:
    ?
      結(jié)對(duì)編程——最有效的相互監(jiān)督機(jī)制
      結(jié)對(duì)編程——最有效的內(nèi)部培訓(xùn)機(jī)制
      測(cè)試驅(qū)動(dòng)開發(fā)——最有效的質(zhì)量保證體系
      User Story+客戶現(xiàn)場(chǎng)辦公——最低成本的需求收集、分析機(jī)制
      每日集成——有效降低集成、測(cè)試成本
      …….
      從程序員的角度來說,這些“與我何干”呢?

      所以,一個(gè)追求利潤(rùn)最大化的老板,就應(yīng)該選擇XP,而一個(gè)聰明的老板,不但要運(yùn)用XP,還要保證8小時(shí)工作制,甚至給員工20%的 On Beach時(shí)間(來源于Gigix對(duì)于ThroughWorks的介紹)。這樣才能保持員工的可持續(xù)編程能力。如果我是老板的話,我就會(huì)這么干!
      那天討論的話題中,還有一些XP沒能夠很好回答的問題:
      比如文檔。在我以前的開發(fā)實(shí)踐中,我們都建立了一個(gè)Wiki,并且強(qiáng)制程序員每人每天就Wiki幾次,以分散寫文檔的壓力。
      比如對(duì)于人員的高要求的疑問。我的理解是,XP對(duì)人員提出了很高的要求,但是同時(shí)也提供了最有效的人員培訓(xùn)機(jī)制(結(jié)對(duì)編程),所以,對(duì)于入職人員的要求,并不需要很高,更多的是考察一個(gè)人的溝通能力、學(xué)習(xí)能力,而不是開發(fā)的能力。
    posted @ 2006-04-18 06:44 讀書、思考、生活 閱讀(30192) | 評(píng)論 (9)編輯 收藏
    決定不再玩連載的把戲了,總共就這么點(diǎn)文字,還不如一口氣放出來算了。
    ?
    這是以前寫的書的初稿,后來因?yàn)榇蛩闳客品貙懀詫⑦^去寫的內(nèi)容,作為Open Doc放出。
    ?

    歡迎下載: AJAX——新手快車道

    posted @ 2006-03-27 22:39 讀書、思考、生活 閱讀(6224) | 評(píng)論 (24)編輯 收藏
    Crmky 獨(dú)立開發(fā)Cindy,已經(jīng)很久了~~~至今只有他一個(gè)人。
    ?
    這是一個(gè)Java的NIO開發(fā)框架,我在上一家公司,和現(xiàn)在所在的這家公司,都已經(jīng)使用了這個(gè)框架。但是,開發(fā)人員始終只有他一個(gè)人。
    ?
    前天他寫了一篇Blog:《目標(biāo)》,對(duì)我有很大的觸動(dòng)。我也一直存在這樣的疑慮,為什么我們要用Java開發(fā)網(wǎng)絡(luò)應(yīng)用?或者說,使用java開發(fā)的網(wǎng)絡(luò)應(yīng)用,難道注定只是一個(gè)快速原型,就像當(dāng)年用VB開發(fā)桌面應(yīng)用?一旦需要面對(duì)性能需求時(shí),就得推翻過去的工作,用C/C++重新實(shí)現(xiàn)一遍?
    ?
    現(xiàn)在,目標(biāo)已經(jīng)很明確了——“無限接近于C/C++效率的java網(wǎng)絡(luò)框架”。這是Cindy的終極目標(biāo),而我則相當(dāng)確信,我一定要為這個(gè)目標(biāo),做出貢獻(xiàn)!現(xiàn)在,我已經(jīng)是Cindy項(xiàng)目的第二名成員了

    正好今天看到一篇Leal的blog。我能為開源社區(qū)做些什么?

    zoomq在woodpecker上寫道:

    每日至少抽一刻鐘解答列表中初學(xué)者的問題,
    每周至少抽兩小時(shí)整理新學(xué)知識(shí),用Blog/Wiki/mail將體驗(yàn)發(fā)表/分享出去,
    每周至少抽四個(gè)小時(shí)來翻譯自個(gè)兒喜愛的自由軟件的文檔,
    每月至少抽八小時(shí)編程,推進(jìn)自個(gè)兒的項(xiàng)目,
    每年至少參加一次自由軟件的活動(dòng),傳播自由軟件思想,發(fā)展一名“自由人”……

    只要我們每個(gè)人都堅(jiān)持下去……
    10年!就足以改變中國(guó)軟件的整體風(fēng)貌!

    自接觸電腦以來,自由/開源軟件也一直給我諸多幫助和樂趣,Linux、Python、Vim凡此種種。當(dāng)我有些業(yè)余時(shí)間,有些體會(huì)和收獲時(shí),又該為自由/開源社區(qū)做何回饋呢?


      我的思考是:參加一個(gè)項(xiàng)目,或者發(fā)起一個(gè)項(xiàng)目,使用一個(gè)項(xiàng)目并且提交反饋,宣傳一個(gè)項(xiàng)目。不要僅僅是感嘆中國(guó)開源項(xiàng)目的水平。如果你是一個(gè)程序員,那么,你也可以為之做點(diǎn)什么。

    posted @ 2006-03-27 13:53 讀書、思考、生活 閱讀(3162) | 評(píng)論 (16)編輯 收藏
    本來拿到的是一個(gè)20多M的MP3文件,還好找到一個(gè)工具,轉(zhuǎn)了一下。還是微軟的格式牛啊。
    ?
    下載地址:
    posted @ 2006-03-22 15:55 讀書、思考、生活 閱讀(3217) | 評(píng)論 (7)編輯 收藏

      我有很濃厚的“地圖情結(jié)”,以前我寫過一篇《我的信仰地圖》,最近又做了一次關(guān)于Ajax的演講,名字叫做《Ajax技術(shù)地圖》。我一直以來的觀點(diǎn)是,世界是一個(gè)整體,在這個(gè)巨大的世界之中,任何事物、任何知識(shí),任何觀點(diǎn),都有其合理、自然的位置。理解這個(gè)世界的過程,就是逐步將需要了解的各種事物,在作為整體的一個(gè)世界中,找到其位置。了解這個(gè)位置的前后左右,相互關(guān)系,相互影響。這樣的理解世界的學(xué)習(xí)方式,我認(rèn)為是最為有效的。所以當(dāng)我在JavaEye看到關(guān)于《代碼大全》的廣告時(shí),我的第一反應(yīng)就是:這不是世界地圖嗎?
    ?
      看了看他的目錄,竟然有35章之多?架構(gòu)、分析、設(shè)計(jì)、編程、測(cè)試、重構(gòu)、面向?qū)ο蟆⒄{(diào)試、規(guī)范、管理、軟件質(zhì)量控制、協(xié)作、優(yōu)化、開發(fā)工具、注釋、甚至個(gè)性、開發(fā)藝術(shù)等等等等,只要是與軟件有關(guān)的,基本上他都寫到了。
    ?
      說實(shí)話,我當(dāng)時(shí)相當(dāng)?shù)牟恍?.....可能嗎?居然有這么一個(gè)家伙,能夠像當(dāng)年的托馬斯?阿奎那一樣,以一己之力,寫出《神學(xué)大全》?CSDN的網(wǎng)站上介紹這個(gè)Steve McConnell,在1998年的時(shí)候,被Software Development雜志的讀者評(píng)為軟件業(yè)最具影響力的三大人物之一,與Bill Gates、Linus Torvalds齊名。一個(gè)寫書的,能和兩個(gè)寫代碼的天才齊名?網(wǎng)站上的那些推薦的話,個(gè)個(gè)都是大名鼎鼎,個(gè)個(gè)都是推崇備至。作為我這樣一個(gè)有逆反心里的家伙來說,直覺上就是:“會(huì)不會(huì)呀,有這么牛嗎?”

    ?

      當(dāng)然了,我也不好多說什么,畢竟沒有看過書~~~

    ?

      沒想到好事居然找上門來了,博文視點(diǎn)的魏泉是我要寫的那本Ajax書的責(zé)任編輯。而《代碼大全》也是他們負(fù)責(zé)出版的。那天他找到我,說是讓我看看這本書的書稿……看看能不能寫一篇書評(píng)。這等美差,我很爽快的就答應(yīng)下來了。

    ?

      一看之下,果然是很喜歡,作者的思考問題的方式,與我的方式相當(dāng)?shù)慕咏际潜M可能將多種、甚至矛盾的事物,放在一個(gè)整體的環(huán)境中來理解。比如對(duì)于隱喻,用于描述軟件開發(fā)的特征的各種各樣的隱喻,其實(shí)各有其價(jià)值,如果能夠組合運(yùn)用,自然能夠獲得一種平衡。正如作者所說:“使用隱喻又是件說不清楚的事情(fuzzy business)。你需要適當(dāng)?shù)匾晁暮x,才能從其中蘊(yùn)含的深刻啟發(fā)中受益。但若你過分地或者在錯(cuò)誤的方向上引申了它的含義,它也會(huì)誤導(dǎo)你。正如人們會(huì)誤用任何強(qiáng)大的工具一樣,你也可能誤用隱喻,但它的強(qiáng)大的功效,還是會(huì)成為你智慧工具箱中的一個(gè)寶貴部分。”

    ?

      這樣的一種看法,可以說“中正平和、深具智慧”,這是我們?cè)诖蠖鄶?shù)關(guān)于軟件開發(fā)的論述中,很難看到的。

    ?

      再比如說,作者在第三章時(shí)給出的一個(gè)表格:三種常見的軟件項(xiàng)目種類,及其典型的良好實(shí)踐。就將軟件分為商業(yè)系統(tǒng)、性命攸關(guān)的系統(tǒng)以及性命攸關(guān)的嵌入式系統(tǒng)。然后指出對(duì)于這三類不同的應(yīng)用,在開發(fā)手段、管理強(qiáng)度、設(shè)計(jì)、構(gòu)建、測(cè)試、部署等等方面的差別化策略。這樣的分類,自然就避免了將各種開發(fā)手段,簡(jiǎn)單的對(duì)立起來比較的方法,顯得更加具有說服力。

    ?

      再比如說,全書給出了相當(dāng)多的Check List,這樣的表格,實(shí)在是大有益處,借用地圖的隱喻來書,這樣的CheckList,就是一個(gè)一個(gè)的定位器,它能夠幫助你認(rèn)清自己的位置,了解問題所屬的范疇,了解應(yīng)該努力的大致方向。這樣的“開發(fā)工具”,真是獨(dú)一無二。

    ?

      這本書我目前只看了前面的5~6章,實(shí)在沒有太多的發(fā)言權(quán),不過我現(xiàn)在已經(jīng)可以肯定,這是一本非常有價(jià)值的好書,我推薦所有沒有看過的朋友去看看這本名副其實(shí)的經(jīng)典之作。

    ?

      說實(shí)話,天下沒有免費(fèi)的午餐,我這篇書評(píng),也是屬于交差之作。人家出版社把樣書給你看,請(qǐng)你寫書評(píng),當(dāng)然希望你能說些好話?幸運(yùn)的是,這些好話,的確都是我自己愿意說的。

    posted @ 2006-03-22 15:53 讀書、思考、生活 閱讀(5639) | 評(píng)論 (5)編輯 收藏
    廣州之行,真是匆匆又匆匆,在廣州呆的時(shí)間,算上在飛機(jī)場(chǎng)的時(shí)間,都還不到24個(gè)小時(shí)。

    個(gè)中甘苦,就不在這里說了,還是把PPT傳上來吧。

    之所以叫處女秀,是因?yàn)檫@是我第一次上臺(tái)做技術(shù)演講,但是這句話卻不是我自己想到的,而是江南白衣說出來的。

    PPT的標(biāo)題是《Ajax技術(shù)地圖》,基本上是一個(gè)純粹空對(duì)空的理論探索,不出現(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

     

    廣州游記和其他感想,就明天再補(bǔ)吧。

    posted @ 2006-03-13 22:47 讀書、思考、生活 閱讀(2975) | 評(píng)論 (8)編輯 收藏
    去廣州參加BEA的User Group活動(dòng)。
    演講題目是:《Ajax技術(shù)地圖》
    副標(biāo)題是:為即將到來的技術(shù)變革做好準(zhǔn)備。
     
    11日晚19:45起飛,22:25到達(dá)白云機(jī)場(chǎng)。
    12日晚19:25起飛,21:20回到上海。
     
    奇怪啊,去要2小時(shí)20分,回來只要1小時(shí)55分。順風(fēng)、逆風(fēng)嗎?
     
    得抓緊時(shí)間寫PPT了
    posted @ 2006-03-10 22:34 讀書、思考、生活 閱讀(1824) | 評(píng)論 (7)編輯 收藏

    莊表偉 說:

    JSVM,我覺得有一個(gè)方向可以嘗試去發(fā)展,就是瀏覽器中的對(duì)象管理,起到一個(gè)VM的作用

    dlee 說:

    問題就是你敢不敢去做小白鼠,或者叫做生活在剃刀邊上。對(duì)于一個(gè)嚴(yán)肅的項(xiàng)目,我做項(xiàng)目經(jīng)理,是不會(huì)采用jsvm的。

    莊表偉 說:

    那為什么你就會(huì)采用prototype呢?

    dlee :

    prototype背后有強(qiáng)大的支持,而不是像jsvm那樣只有萬(wàn)春華同志等很少的幾個(gè)鐵桿。

    莊表偉 說:

    為什么?你是看著哪邊人多去哪邊的嗎?

    dlee :

    你看那些叫喊"""支持"""的人會(huì)不會(huì)貢獻(xiàn)一行代碼。你太容易非黑即白了。當(dāng)然不完全是這樣,不過支持能力是一個(gè)非常重要的考慮因素。

    莊表偉 說:

    我的意思是,JSVM,該不該用他,只能由我們看過他的代碼以后,來決定?

    dlee :

    你有能力維護(hù)所有的代碼嗎?

    莊表偉 說:

    我只是用他呀,又不是要改他

    dlee :

    我的意思是說,如果你在項(xiàng)目中使用了SpringRod Johnson玩累了,明天就宣布解散這個(gè)項(xiàng)目。你自己獨(dú)立去維護(hù)Spring的代碼。你去用什么啊,它只有很少的UI組件,其中還有問題。 你不要夸口這些自己都能開發(fā)好,我兩年前開發(fā)了一個(gè)比較好用的Grid,花費(fèi)了一周多的時(shí)間。你自己去實(shí)現(xiàn)這樣一個(gè)組件后再說話。

    莊表偉 說:

    我不是用他的UI呀,而是用他的這個(gè)框架,來組織自己的代碼。

    dlee 說:

    你不用它的UI,有什么必要使用這個(gè)框架呢?dojo/prototype一樣可以做到啊,我是認(rèn)為你這樣做引入了不必要的成本。況且你如何判定使用的UI庫(kù)在設(shè)計(jì)理念上與jsvm完全沒有沖突?

    莊表偉 說:

    OK,你現(xiàn)在已經(jīng)有結(jié)論了,但是我還沒有仔細(xì)看過他的代碼呢,所以我現(xiàn)在還沒有結(jié)論,等我看過以后,自然會(huì)有一個(gè)結(jié)論的。

    dlee :

    Ajax庫(kù)這方面,大部分人都跟我希望的一樣,需要一個(gè)全面的解決方案。你說的jsvm專精于做某個(gè)領(lǐng)域,我認(rèn)為是行不通的。任何運(yùn)行于瀏覽器的js框架都應(yīng)該是為UI服務(wù)的。沒有實(shí)現(xiàn)過很多UI組件,如何檢驗(yàn)它的這個(gè)架構(gòu)設(shè)計(jì)的合理性?

    莊表偉 說:

    目前看來,prototype,也只是專精于基礎(chǔ)領(lǐng)域的,在它之上,另有script.aculo.usRicoBehaviour這樣的lib

    dlee :

    你喜歡擺擂臺(tái),那么就擺個(gè)擂臺(tái),大家都實(shí)現(xiàn)Grid組件,看看誰(shuí)做得好。

    莊表偉 說:

    呵呵,這倒是個(gè)好辦法

    dlee :

    你可以跟醒來來詳細(xì)討論,問題不是你想想得那么簡(jiǎn)單。做小白鼠也有好處,曉鋼就經(jīng)常偷偷練習(xí)一些自己的獨(dú)門絕技。

    莊表偉 說:

    呵呵

    dlee :

    你可以將我跟他的沖突理解為主要在一個(gè)領(lǐng)域,就是我不認(rèn)為解決他所說的兩個(gè)問題,需要這么重的方案。而且他的解決方案從JS開發(fā)者的角度看來也不是很優(yōu)雅。

    莊表偉 說:

    嗯,這兩點(diǎn),我基本上是同意的

    dlee :

    萬(wàn)春華同志的興趣不在UI組件方面,這使得他偏離了瀏覽器JS誕生的使命。今天我跟醒來說過類似的意思。 我們的分歧不完全在技術(shù)本身上面。因?yàn)槲覀兯伎紗栴}的思路差別很大,所以沒有出現(xiàn)很大的交集

    莊表偉 說:

    嗯,我比較理解你的意思了,但是,我不是很同意...

    dlee :

    你看過他們的代碼了嗎?

    莊表偉 說:

    看了一些

    dlee :

    代碼的模塊程度如何?有沒有可能將醒來說的一些部分完全去掉?

    莊表偉 說:

    哪些部分?

    dlee :

    我覺得他們?nèi)绻鲆恍└忧逦膭澐郑瑒澐殖鲆粋€(gè)最小的core部分,而且像Spring那樣劃分成很多不同的jar,這樣會(huì)更好一些。最糟的情況是要么全有要么全無

     

      醒來 已經(jīng)添加到此對(duì)話中。

     

    dlee :

    你既然對(duì)jsvm非常感興趣,就和醒來先詳細(xì)談?wù)劇N易鳛榕月牶昧恕?/SPAN>

    莊表偉 說:

    呵呵,好的呀

    醒來 說:

    好啊,我 最近剛看了jsvm的源碼

    莊,你覺得jsvm怎么樣

    莊表偉 說:

    我剛開始看他的代碼。說實(shí)話,我覺得他的js代碼寫得非常好,也很干凈、清楚。因此,這樣的一個(gè)人,寫出這樣水平的代碼的人,對(duì)于js的理解,肯定是相當(dāng)深入的。

    醒來 說:

    代碼寫的是真不錯(cuò)

    莊表偉 說:

    我以前曾經(jīng)想當(dāng)然的認(rèn)為,他不了解js,只喜歡java,所以才會(huì)把js,扭曲成java的樣子這樣的想法,肯定是偏見。那么,在承認(rèn)對(duì)方有足夠的智力與經(jīng)驗(yàn)的前提下,再來看他的代碼,我覺得更不該"斷然否定",說他"一無是處"

    醒來 說:

    我在javaeye 上提出了我的意見,我也認(rèn)為他的代碼寫得很不錯(cuò),但是側(cè)重點(diǎn)有點(diǎn)不合時(shí)宜。現(xiàn)在真是有些像java虛擬機(jī)了,基本是一個(gè)classloader + class cache 的實(shí)現(xiàn)

    莊表偉 :

    還有這個(gè):

    a) 獨(dú)立模式:standalone, 該模式下,當(dāng)前頁(yè)面的jsvm獨(dú)立加載,不和系統(tǒng)中其他頁(yè)面的JSVM發(fā)生關(guān)聯(lián)。

    b) 應(yīng)用程序模式:application, 應(yīng)用程序模式下的頁(yè)面會(huì)除了加載jsvm以外,還將構(gòu)造一個(gè)Application的環(huán)境。其他模塊模式的頁(yè)面會(huì)共享Application的資源。

    c) 模塊模式:module, 模塊模式的頁(yè)面必須運(yùn)行在一個(gè)Application模式的頁(yè)面下。該頁(yè)面可以通過application框架共享資源以及訪問全局變量。

    d) 自動(dòng)模式:auto, 頁(yè)面根據(jù)環(huán)境自動(dòng)選擇是獨(dú)立模式還是模塊模式。

    我覺得很有點(diǎn)意思

    醒來 說:

    從名字上來講,jsvm倒是符合本意。但是java的成功不是只靠一個(gè)jvm的,我覺得 jdk 更關(guān)鍵

    莊表偉 說:

    現(xiàn)在的js庫(kù),除了jsvm,都是以一個(gè)Page為單位運(yùn)行的,鮮有"Application"的概念。而VM的提出,我認(rèn)為,為將來合理的Browser Object Cache Layer,提供了可能

    醒來 說:

    我有點(diǎn)懷疑,這樣帶來的復(fù)雜性有沒有必要

    莊表偉 說:

    而且我還希望將來JSVM,能夠更好的支持請(qǐng)求任務(wù)隊(duì)列的管理,這樣的機(jī)制,JS的語(yǔ)法本身提供得并不夠好。還有多線程的管理,JS也沒有像Java那樣的,語(yǔ)法級(jí)的支持。

    dlee :

    我不大相信瀏覽器中的JS將來會(huì)被用在這樣的目的

    醒來 說:

    其實(shí)我覺得,這些應(yīng)該是瀏覽器提供的功能,在瀏覽器未發(fā)展到這個(gè)程度之前,強(qiáng)迫javascript畸形的實(shí)現(xiàn),不一定值得

    莊表偉 說:

    嗯,這是問題的關(guān)鍵...我前面的暢想,的確是我希望將來的JS,能夠支持的一部分

    dlee :

    是的,我們希望將來的JS引擎來提供這些基礎(chǔ)設(shè)施

    莊表偉 說:

    現(xiàn)在JSVM,也許能夠支持一部分,也許還不能夠,所以,說不定哪天JS 2.0出來,JSVM就沒有意義了

    醒來 說:

    所以對(duì)于jsvm的模式,應(yīng)用程序模式還可以理解,模塊模式很難讓人明白有什么用

    莊表偉 說:

    這是一個(gè)思考模式的問題

    假設(shè)你對(duì)于js本身不熟悉,要讓你合理、自然的劃分多個(gè)js文件,合理、自然的在該load的時(shí)候才去load,這就相當(dāng)?shù)馁M(fèi)力

    醒來 說:

    所以我的意見就是,jsvm 希望吸引人來開發(fā),應(yīng)該要給出jsdk 差不多,一個(gè)jsvm 吸引不了人

    莊表偉 說:

    當(dāng)然,更加正確的道路,當(dāng)然是按照js的本性來做,提出某種"js loading design pattener"。但是,在經(jīng)驗(yàn)還沒有被總結(jié)成模式之前,模仿java式的代碼組織,不失為一種方案

    醒來 說:

    load js 的模式其實(shí)現(xiàn)在都是 用一個(gè)同步的xmlhttprequest 去加載js,然后eval。這個(gè) dojo prototype 都有提供基礎(chǔ)支持

    莊表偉 說:

    不是如何loading。而是,我現(xiàn)在有幾百Kjs文件,如何切分成合理的大小,然后在需要的時(shí)候去調(diào)用他們

    醒來 說:

    這個(gè)想法是對(duì)的,也是jsvm值得肯定的地方

    我的主要意見是說它提供的 jsc 的形式有點(diǎn)雞肋,同時(shí)缺乏簡(jiǎn)單高效的工具類,所以吸引不了開發(fā)人員。jsvm2 的代碼里有 1/3 就是為了支持這個(gè)自創(chuàng)的jsc語(yǔ)法

    莊表偉 說:

    這是...敗筆...jsc我也不喜歡,混雜了部分js語(yǔ)法和部分java語(yǔ)法...還不如僅僅規(guī)定一個(gè)必須的頭部,其他的完全采用js語(yǔ)法呢。還有一點(diǎn)我覺得是這個(gè)萬(wàn)兄在那里暢想,就是JSVM打算支持多種語(yǔ)法的設(shè)想,工作量太大了。

    dlee :

    不過萬(wàn)春來同志說這個(gè)可以不用

    醒來 說:

    所以我建議索性拋棄jsc,以萬(wàn)兄的javascript功力,寫一部分有用的工具類,我覺得不會(huì)有人真的愿意用 var map = new HashMap(), map.put(k, v); 這樣的方式寫js

    莊表偉 說:

    對(duì)的

    dlee :

    所以我剛才說:

    我覺得他們?nèi)绻鲆恍└忧逦膭澐郑瑒澐殖鲆粋€(gè)最小的core部分,而且像Spring那樣劃分成很多不同的jar,這樣會(huì)更好一些。最糟的情況是要么全有要么全無。

    醒來 說:

    jsc 是可以不用,但jsvm 加載了接近80kjs就為了支持jsc, 沒有意義啊

    莊表偉 說:

    他現(xiàn)在是有多個(gè)js的,只是他core的部分太大了

    醒來 說:

    莊,如果你去看runtime.js 就知道了,jsvm2其實(shí)把jsc都預(yù)先編譯了,否則效率一定太低

    現(xiàn)在甚至還有一些觀點(diǎn),不要把js分得太多,因?yàn)橐ぐl(fā)太多的http連接,反而響應(yīng)性更不好。畢竟js的加載是同步的 ,這各ajax的異步核心思想有沖突。

    dlee :

    這個(gè)考慮也是很有道理的

    莊表偉 說:

    激發(fā)太多的http連接?還是激發(fā)太多的同步http連接?

    dlee :

    那個(gè)所謂的classloader就是向服務(wù)器請(qǐng)求一個(gè)包含js類的文件,然后evaluate。而且也要考慮evaluate的執(zhí)行效率

    醒來 說:

    每一個(gè)import 就是一個(gè)http 連接。當(dāng)然,jsvm 考慮到了cache

    dlee :

    對(duì)的,就是發(fā)出一個(gè)xmlhttp請(qǐng)求

    莊表偉 說:

    其實(shí),他完全可以將自己的jsdk,做成一個(gè)jsc文件,一口氣load進(jìn)來

    dlee 說:

    不是多個(gè)連接,這個(gè)要看服務(wù)器怎么配置。其實(shí)支持http1.1的瀏覽器和服務(wù)器都是保持長(zhǎng)連接

    醒來 說:

    jsvmcache 也有些問題,他所謂的application模式,在不同的瀏覽器上實(shí)現(xiàn)各不相同,iejs源碼用iehtc 技術(shù)保存的,ff 是存cookiecookie 的容量是有限制的,所以cache 主要是針對(duì) ie

    dlee :

    可能是在同一個(gè)http連接上發(fā)送多個(gè)http請(qǐng)求,這些請(qǐng)求需要排隊(duì)

    莊表偉 說:

    OK,我提一個(gè)方案,你們看是不是可以作為"最佳實(shí)踐"之一:

    對(duì)于多個(gè)異步請(qǐng)求,可以讓他分次異步提交。

    對(duì)于多個(gè)同步請(qǐng)求,應(yīng)該將多個(gè)請(qǐng)求打包以后一次提交。

    這個(gè)作為"請(qǐng)求隊(duì)列管理"的一部分

    醒來 說:

    道理應(yīng)該是這樣,jsvm里好像沒有這樣的控制,import語(yǔ)句也沒有這么智能

    莊表偉 說:

    其實(shí)jsvm應(yīng)該這么做,比如他load一個(gè)jsc文件進(jìn)來,里面的import語(yǔ)句可能有一堆,就應(yīng)該是一口氣load其他的jsc,不該再分多次了

    醒來 說:

    我總覺得 線程/隊(duì)列 這些該是瀏覽器的事情,用js開發(fā)很不保險(xiǎn)

    莊表偉 說:

    你看過我寫的那個(gè)RSSReader的代碼嗎?里面就有一個(gè)請(qǐng)求隊(duì)列的

    醒來 說:

    jsvm做不到,因?yàn)?/SPAN>loadjsc里又有import 語(yǔ)句,這是遞歸的

    莊表偉 說:

    不是遞歸,是分層的

    醒來 說:

    要么js語(yǔ)言升級(jí),要么瀏覽器升級(jí),我總覺得現(xiàn)階段就想讓ajax完全達(dá)到替代桌面應(yīng)用的程度是不可能的

    莊表偉 說:

    這個(gè)當(dāng)然是不可能的...

    醒來 說:

    所以在現(xiàn)階段,還是不要搞復(fù)雜了,多線程和隊(duì)列能用到的地方畢竟不多

    我覺得dlee強(qiáng)調(diào)的對(duì)的,現(xiàn)在需要的是組件

    語(yǔ)言級(jí)別的東西,就讓js語(yǔ)言和瀏覽器標(biāo)準(zhǔn)去慢慢支持吧

    莊表偉 說:

    我理解你們所認(rèn)為的"輕重緩急"了。根本的觀點(diǎn)在于:"急于將瀏覽器中應(yīng)用,推向完全的桌面應(yīng)用,并不現(xiàn)實(shí)"。立足于"更好的瀏覽器端應(yīng)用",而非"盡可能像桌面應(yīng)用的瀏覽器端應(yīng)用",這么說來,當(dāng)務(wù)之急自然是UI控件的完善與豐富

    dlee :

    我覺得瀏覽器中js誕生的使命就是改善交互和UI

    醒來 說:

    對(duì),就是這個(gè)意思

    dlee :

    而且我從項(xiàng)目開發(fā)負(fù)責(zé)人的角度,更希望一個(gè)全面的解決方案。不是什么都需要我去做集成

    莊表偉 說:

    JSVM的問題,不在于他語(yǔ)法上像Java,而在于他的目標(biāo)上像Java

    dlee :

    也可以這樣來理解

    醒來 說:

    ajax 里的cache 應(yīng)該是去cache 數(shù)據(jù),用來cache js代碼,意義多大呢,所以jsvm太技術(shù)化了

    dlee :

    Ajax in Action中,提出了一種獨(dú)占式應(yīng)用。就是像Word一樣,可能每天都要用上幾個(gè)小時(shí)。目前的Ajax技術(shù),包括一些基礎(chǔ)框架,還很難達(dá)到這個(gè)要求。所以確實(shí)需要這樣一類基礎(chǔ)架構(gòu),但是我們認(rèn)為這些支持最好由瀏覽器和JS引擎來提供。

    莊表偉 說:

    看來我們已經(jīng)初步達(dá)成共識(shí)了

    醒來 說:

    js 就是用來操作DOM的,不要讓它承擔(dān)太多重任,xmlhttp本來也不是 js的一部分,瀏覽器的擴(kuò)展而以

    dlee :

    我發(fā)現(xiàn)現(xiàn)在很多人有一個(gè)通病。就跟我在那個(gè)ajaxmodel2框架的討論中說的那樣。毫不思考地就將一種技術(shù)或者架構(gòu)用于設(shè)計(jì)意圖之外的場(chǎng)合。其實(shí)把IFrame用于異步請(qǐng)求也是這個(gè)情況

    醒來 說:

    對(duì)jsvm 的建議就是拋棄jsc,完善它自己的面向?qū)ο蠹軜?gòu),并提供工具類支持,這樣才有可能和 dojo 有競(jìng)爭(zhēng)。所以在國(guó)外是稱為  tricks,  是有貶義的意思,但翻譯成中文,變成竅門,反而有了褒義了

    dlee :

    Ajax in Action的作者稱作hacky的做法,帶有貶義

    dlee :

    Ajax顯得與眾不同的地方不是它所使用的技術(shù)本身,而是通過使用這些技術(shù)所帶來的新的交互模式。我們所習(xí)慣的傳統(tǒng)的Web交互模型并不適合于獨(dú)占式的應(yīng)用,只有打破了這種交互模型,新的可能性才會(huì)慢慢浮現(xiàn)出來。

    這是Ajax in Action的一句話,說得非常有道理。我們看到如此眾多的人都對(duì)Ajax感興趣不是偶然的。現(xiàn)在我們處在web app發(fā)生革命性變化的前夕

    莊表偉 說:

    嗯,我更關(guān)注:慢慢浮現(xiàn)出來的這些可能性中,哪些是正道,哪些是邪道

    醒來 說:

    我是覺得一定要擦亮眼睛,多從用戶的角度想問題

    莊表偉 說:

    這是對(duì)的

    posted @ 2006-03-02 22:05 讀書、思考、生活 閱讀(1877) | 評(píng)論 (1)編輯 收藏
    1、今天,我到新的單位去上班了,地點(diǎn)在張江,是一家做手機(jī)游戲的公司。從我們家這里過去,要花1.5~2個(gè)小時(shí)。還好我在搭車網(wǎng)上找到了一部同去張江的車,每天來回15塊,很不錯(cuò)。
     
    2、到這家公司,我的工作是Server端架構(gòu)設(shè)計(jì),所以我最近急需補(bǔ)充很多Server端架構(gòu)方面的知識(shí)。所我再一次看起了《POSA 2》,又在網(wǎng)上訂了《POSA 3》、《Java并發(fā)編程—設(shè)計(jì)原則與模式(第二版)》、《Effective Java中文版》與《Practical Java(中文版)》。這下又有得要看了。
     
    另外我還加入了一個(gè)Google Groups,叫做:高性能網(wǎng)絡(luò)編程郵件列表
     
    3、3月12日,我很有可能會(huì)到廣州,參加那里的BEA User Group。
    初步的題目是:《Ajax技術(shù)地圖》

    一、  技術(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)系

    SPBMVC之間,應(yīng)該是一種什么關(guān)系,需要有一個(gè)概念上的梳理。

    六、  難題二:瀏覽器端MVC與服務(wù)器端MVC的關(guān)系

    如果在瀏覽器端與服務(wù)器端,都定義出MVC結(jié)構(gòu),顯然存在著沖突,這樣的沖突,該如何調(diào)和。

    七、  思考二:Web服務(wù)器的角色演變

    提出一個(gè)思路,Web Server --> Web Service,也就是在瀏覽器端實(shí)現(xiàn)MVC模式,而在服務(wù)器端,分別實(shí)現(xiàn)Model ServiceView SerivceController Service

    八、  一個(gè)三維的世界

    一個(gè)地圖,并非一個(gè)簡(jiǎn)單的平面,作為一個(gè)三維的世界,我們對(duì)于技術(shù)的理解,又可以分為三個(gè)層次:理論的層面、真實(shí)世界的層面以及作為整理世界一部分的層面。

    九、  在真實(shí)世界中的難題

    介紹一些目前Ajax應(yīng)用開發(fā)中,真正存在的困難,困惑,苦惱,陷阱......

    十、  思考三:對(duì)于整合世界的向往

    C/SB/S能否融為一體?

    開發(fā)工具能否一站購(gòu)齊?

    開發(fā)效率能否更快更輕松?

    十一、          難題三:Ajax的能力限制

    主要談一談Web應(yīng)用無法跨越或者目前無法跨越的一些障礙,比如網(wǎng)絡(luò)編程;比如線程控制;比如UI表現(xiàn)能力等等。同時(shí)也介紹一些前沿的進(jìn)展。

    十二、          難題四:開發(fā)工具的功能整合

    簡(jiǎn)單介紹一下目前各家IDE對(duì)于Ajax的支持。

    十三、          難題五:UI控件的重用與整合

    自己從頭做UI,實(shí)在是太麻煩了,用人家的,又有整個(gè)的麻煩,但是從提升開發(fā)效率來說,控件化開發(fā),又是必由之路……

    十四、          暢想未來

    關(guān)于Ajax技術(shù)的一些暢想。

    因?yàn)榘l(fā)現(xiàn)與曹曉鋼的Topic嚴(yán)重撞車,所以可能還會(huì)做一些修改~~~
    posted @ 2006-03-01 21:58 讀書、思考、生活 閱讀(951) | 評(píng)論 (2)編輯 收藏

    AJAX——新手快車道

     

    前言

     

    AJAX是什么?

     

    首先、AJAX是一種很酷的技術(shù),一旦采用了AJAX,就能讓你的Web頁(yè)面,你的網(wǎng)站,甚至連同你們公司,都變得很酷。在Web2.0的時(shí)代里,不使用一點(diǎn)AJAX技術(shù)的網(wǎng)站,就會(huì)顯得很老土,很落伍。

     

    但是,這樣的理解,其實(shí)是很膚淺的。僅僅是從一個(gè)外行,從一個(gè)使用者的角度出發(fā),來理解AJAX,就像我在本書的第一章AJAX我也行中那樣,開發(fā)出很愚蠢,甚至都沒有資格被稱之為AJAX應(yīng)用的純IEXMLHTTP應(yīng)用。

     

    AJAX更酷的一點(diǎn)在于,對(duì)于傳統(tǒng)的Web開發(fā)人員來說,AJAX所運(yùn)用的,是更加先進(jìn)的,更加標(biāo)準(zhǔn)化的,更加和諧高效的,完整的Web開發(fā)技術(shù)體系。遵循這樣的體系開發(fā)Web應(yīng)用,能讓你的開發(fā)過程變得更加輕松,也能使你們的開發(fā)團(tuán)隊(duì),顯得很酷。在Web2.0的時(shí)代里,還在采用過時(shí)的技術(shù)來開發(fā)Web,會(huì)顯得很老土,很落伍。

     

    AJAX的相關(guān)組成技術(shù),每一個(gè)都已經(jīng)出現(xiàn)了N年以上了,對(duì)這些技術(shù)的組合運(yùn)用,也遠(yuǎn)遠(yuǎn)早于AJAX這個(gè)名詞出現(xiàn)之前。所以,我真正敬佩的,并非提出
    AJAX
    這個(gè)縮寫的Jesse James Garrett。而是那些早在N年以前,就已經(jīng)在探索、實(shí)踐的先行者,他們始終在追求的:是更好的用戶體驗(yàn),以及更好的開發(fā)體驗(yàn)。這樣的精神,才是最可寶貴的,也是最值得我們學(xué)習(xí)的。許多年過去以后,當(dāng)我們?cè)倩仡^來看當(dāng)年的這些熱門技術(shù),也許早已經(jīng)變得老土,變得落伍了。在這樣的歷程中,哪些人會(huì)成長(zhǎng)為高手?會(huì)成長(zhǎng)為大師呢?就是那些永不滿足,永遠(yuǎn)在追求更好的用戶體驗(yàn),永遠(yuǎn)在追求更好的開發(fā)體驗(yàn)的人!

     

    新手如何上路

     

    軟件開發(fā)這個(gè)領(lǐng)域,永遠(yuǎn)都在飛速發(fā)展,大家都必須不斷的學(xué)習(xí)新的知識(shí)、技能、框架、IDE、甚至新的語(yǔ)言。傳說中的骨灰級(jí)高手們,就像傳說中的大俠,任何武器、哪怕是一塊木頭到了他們手里,也能發(fā)揮驚人的威力,人家練了幾十年的看家本領(lǐng),他們隨手使來,也竟然像是打娘胎里就開始練了一樣。為什么?

     

    就算不吹那么玄的,平常我們能夠碰到的那些老手,在學(xué)新東西的時(shí)候,也比那些新手學(xué)得更快,理解得更深,運(yùn)用得更熟練。而新手們呢?往往就會(huì)漫無頭緒,焦頭爛額,以一副張著茫然的大眼睛的經(jīng)典表情,出現(xiàn)在各大論壇的新手求助區(qū)里。他們欠缺的,究竟是什么呢?為什么老手學(xué)新東西,就沒遇到那么多困難呢?

     

    泛泛地說,自然是經(jīng)驗(yàn)上的欠缺。仔細(xì)地說來,又可以分為三個(gè)方面:

     

    一、本質(zhì),一種技術(shù)與另一種技術(shù)之間,往往會(huì)有本質(zhì)上的相通之處,當(dāng)你對(duì)一種技術(shù)的理解與思考越來越深入時(shí),學(xué)習(xí)一種新技術(shù)也會(huì)更加容易。觸類旁通,舉一反三的能力,就是來自于對(duì)于技術(shù)本質(zhì)的追尋。

     

    二、地圖,本質(zhì)上或多或少的相通,也提示著我們技術(shù)之間的相互關(guān)聯(lián),當(dāng)你了解的技術(shù)越多,了解得越是深入,在你的內(nèi)心,就能建立起越發(fā)清晰的技術(shù)地圖。各種知識(shí)都有一個(gè)自然、合理的位置。那么當(dāng)一個(gè)老手要學(xué)習(xí)一門新技術(shù)的時(shí)候,他其實(shí)并非在探索一個(gè)全新的、未知的領(lǐng)域,而是有很多脈絡(luò)可尋,也很多已知可以幫助他們快速了解未知。

     

    三、技巧,面對(duì)同樣的未知,面對(duì)同樣的難題,新手們一籌莫展,而老手們卻掌握著更多的技巧和手段,幫助他們?cè)囂娇赡苄浴⒖s小問題的范圍、迅速定位問題、不犯明顯愚蠢的錯(cuò)誤、甚至能夠列舉出更具命中力的搜索關(guān)鍵詞,而這些技巧,都幫助老手在前進(jìn)的道路上,更少跌倒,即使跌倒,也能更快的爬起來。

     

    作為一本寫給新手的入門書籍,我們希望展現(xiàn)給讀者的,是一個(gè)老手如何學(xué)習(xí)新技術(shù)的過程。我們相信,這樣的一個(gè)學(xué)習(xí)過程,對(duì)于新手來說,是更具有價(jià)值的。

     

    何謂快車道

     

    必須老老實(shí)實(shí)的承認(rèn),我吹牛了!老手雖然會(huì)比新手學(xué)習(xí)得更快一些,但是也同樣會(huì)碰到麻煩,遇到障礙,感覺頭痛。如果沒有真正的專家的指導(dǎo),我不可能如此迅速地將AJAX掌握到目前這樣的程度,要真是讓我自學(xué)三個(gè)月,然后就寫出書來的話,那真是在騙錢了。

     

    老手能夠快速學(xué)習(xí)的另一個(gè)重要的訣竅是:認(rèn)識(shí)很多牛人朋友J

     

    如果沒有李錕與趙澤欣的專家級(jí)指導(dǎo)與幫助,如果沒有與李錕AJAX結(jié)對(duì)編程的體驗(yàn),如果沒有三個(gè)人在MSN上無數(shù)次的長(zhǎng)聊,我想要在短期內(nèi)建立起:

     

    對(duì)于AJAX本質(zhì)的理解;

    對(duì)于整個(gè)AJAX以及相關(guān)技術(shù)地圖的理解;

    對(duì)于AJAX編程開發(fā)所需要的很多技巧、手段的掌握;

    幾乎是不可能的。

     

    如果沒有(N多需要感謝的人)的(N多方面的幫助),我們這本書,也不可能以現(xiàn)在這樣的深度,以(N個(gè)月)內(nèi)完成的速度,送到讀者的面前。

     

    希望這本書,能夠?qū)Υ蠹铱焖賹W(xué)習(xí)AJAX,有所幫助。

     

    這是我原來寫的前言,自我感覺,寫得還是不錯(cuò)的。可惜啊,這最后幾段,現(xiàn)在看來是用不上了。

    posted @ 2006-03-01 21:57 讀書、思考、生活 閱讀(4705) | 評(píng)論 (39)編輯 收藏
      最近MyEclipse推出了支持Ajax的最新版本,Eclipse也有了一個(gè)The AJAX Toolkit Framework (ATF) Project。再加上Sun正式發(fā)布Java Studio Creator 2,其中提供了對(duì)Ajax的支持并且提供了一組易用,易部署的基于Ajax的UI組件。可以想象,支持更加方便的IDE的Web開發(fā)工具的時(shí)代,即將到來。我也來設(shè)想一下,我理想中的Ajax IDE吧。
     
      1、可視化,但不是直接編輯。類似于Dreamweaver,但是應(yīng)該再增加一個(gè)獨(dú)立的DOM Tree。任意選擇一個(gè)DOM節(jié)點(diǎn),就能夠高亮相關(guān)的CSS規(guī)則。任意選擇一個(gè)CSS規(guī)則,就能夠高亮受影響的DOM節(jié)點(diǎn)。開發(fā)工作,是對(duì)于DOM Tree的操作+對(duì)CSS規(guī)則集的管理。而不是直接手動(dòng)去拖拽頁(yè)面元素。
     
      2、智能的CSS優(yōu)化。那么多CSS規(guī)則,甚至是跨頁(yè)面的CSS規(guī)則,有多少是可以重用的,有多少是可以歸并的,有沒有可能設(shè)計(jì)出一個(gè)CSS優(yōu)化算法,鼠標(biāo)一個(gè)Click,一切就完美了。
     
      3、JavaScript的Debug。基本上能夠做到MyEclipse那樣,就非常棒了。
     
      4、代碼智能感知。MyEclipse似乎也能做出這個(gè)效果,就是不知道準(zhǔn)確性是多少。
     
      5、代碼重構(gòu)支持。不止是JavaScript的重構(gòu),還有XHTML、CSS的重構(gòu)......
     
      6、JavaScript基礎(chǔ)庫(kù)生成。如果有這樣一個(gè)Wizard,我能夠選擇針對(duì)的瀏覽器平臺(tái)、版本、想要用到的功能......N多選項(xiàng),然后它就幫我匯集眾家之長(zhǎng),去掉無關(guān)的代碼,在生成一個(gè)我需要的JS文件。這個(gè)世界就近乎完美了。
     
      7、集成各種UI組件庫(kù)。各種好的UI,在線Update,拿來就用。
     
      8、UnitTest的完善支持......
     
    差不多了,就遐想到這里吧...
    posted @ 2006-02-05 22:53 讀書、思考、生活 閱讀(1497) | 評(píng)論 (1)編輯 收藏

    雞年最后一篇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,通過國(guó)外代理登陸成功,否則無法登陸
    • 2006年1月1日23:46山東省濟(jì)南市廣電修改hosts文件,用IE成功登陸.
    • 2006年1月2日6:15山東濰坊市,正常連入.
    • 2006年1月4日16:59,北京,教育網(wǎng),需要代理.用維基提供的145.97.39.*代理訪問很快.
    • 2006年1月6日20:00湖南長(zhǎng)沙.145.97.39.132、145.97.39.134均無法使用.使用144登錄成功.
    • 2006年1月6日20:04,武漢,中國(guó)電信ADSL,只能使用145.97.39.138或140兩個(gè)維基代理;其他維基代理無法找到服務(wù)器,使用145.97.39.130代理服務(wù)器出現(xiàn)404頁(yè)面.
    • 2006年1月9日13:25,江蘇常州中國(guó)電信ADSL不可直接訪問(用[1][2] 訪問成功)
    • 2006年1月11日10:04,武漢,中國(guó)電信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,遼寧沈陽(yáng)遼寧網(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,成都,中國(guó)電信ADSL無法直接訪問,無界瀏覽6.9訪問成功
    • 2006年1月12日10:02,吉林長(zhǎng)春,網(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日香港時(shí)間23:26深圳中國(guó)電信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今天搜索到一個(gè)網(wǎng)站大陸可以直接訪問[4] ,是不是維基的網(wǎng)站啊,看地址像是個(gè)商業(yè)網(wǎng)站,還有SOHU的廣告,是不是假冒網(wǎng)站啊,有人解釋嗎?
    • 2006年1月15日23:34北京網(wǎng)通不可直接訪問在愛問上找到了下面這個(gè)上來的
    • 2006年1月17日0:23北京網(wǎng)通ADSL不能直接訪問通過香港電訊盈科代理速度正常
    • 2006年1月17日17:20吉林長(zhǎng)春網(wǎng)通ADSL不能直接訪問通過torpark代理速度非常快
    • 2006年1月18日22:38福建電信ADSL不可直接訪問通過代理正常
    • 2006年1月19日14:02黑龍江中國(guó)電信不能直接訪問通過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、《一個(gè)饅頭引發(fā)的血案》,狂笑類電影,非常之出色。以至于我居然興起了想看看這部電影的原材料的心思。

    2、《無極》,唯一的長(zhǎng)處是給《饅頭》一片提供了原材料。我那天看了前面30分鐘,實(shí)在是看不下去了。

    3、《小強(qiáng)歷險(xiǎn)記》,出色的構(gòu)思,傳奇式的拍攝,這一切在頒獎(jiǎng)典禮那天達(dá)到了最高潮。然后事情就演變成了一出活劇,黑色得不得了。還是六哥——張立憲的總結(jié)有道理:

    零誠(chéng)意  零新意  零意義  零特技  零演技  零邏輯  零成本
    零床戲  零打戲  零哭戲  零專業(yè)  零職業(yè)  零事業(yè)  零票房

    這42個(gè)字,竟然是一字都不可改,佩服啊!

    4、《金剛》,有無數(shù)的人推薦這是一部好電影,還有好多看到最后哭出來了。我看了以后,一點(diǎn)都不喜歡。這不是一部人道主義的電影,而是一部“猿道主義”的電影。死了那么多的人,也沒見到誰(shuí)難過一下,最后死了個(gè)巨猿,倒變成“悲劇”了。荒謬!

    5、《僵尸新娘》,絕對(duì)好看,創(chuàng)意十足,充滿溫情,人性的光輝由此得以體現(xiàn)。

     

    三、一個(gè)域名

    打算申請(qǐng)一個(gè)域名:www.rsslife.info

    大概的意思是:Rich Smart Simple Life。具體想做什么,暫時(shí)就不透露了。

     

    四、春節(jié)晚會(huì)
    還是那么爛,而且一年比一年?duì)€。小品和相聲都沒法看了。歌舞還不錯(cuò)。

     

    五、原創(chuàng)祝福短信

    狗年新春旺旺旺,

    身體健康棒棒棒。

    吃飯睡覺香香香,

    工資收入漲漲漲。

    原創(chuàng)短信一條,誠(chéng)意拜年,莊表偉。

    posted @ 2006-01-28 23:43 讀書、思考、生活 閱讀(1086) | 評(píng)論 (1)編輯 收藏

      結(jié)構(gòu)(Structure)、表現(xiàn)(Presentation)、行為(Behavior),是Web開發(fā)標(biāo)準(zhǔn)中的一個(gè)重要概念(以下簡(jiǎn)稱SPB)。而模型(Model)、視圖(View)、控制器(Controller)的MVC模式呢,是圖形界面應(yīng)用的重要模式之一,自然也廣泛的用在了Web應(yīng)用的開發(fā)之中。

      最近熱門起來的Ajax技術(shù),又刺激了人們對(duì)于MVC模式的更多思考。本文的很多觀點(diǎn)得到了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)系。

      左邊是一個(gè)標(biāo)準(zhǔn)的SPB模型,結(jié)構(gòu)通過CSS渲染之后,顯示給用戶。JavaScript可以通過DOM API以及DOM Event與結(jié)構(gòu)交互。

      右邊則是我將JavaScript部分放大之后的情況。

     

      大致上,我們寫一個(gè)稍微復(fù)雜一些的Ajax應(yīng)用的時(shí)候,JavaScript部分,就應(yīng)該一分為三。一部分是用來做DOM與Style控制。另一部分則專心與Server打交道,通常就是用XMLHTTP了,然后將獲取的數(shù)據(jù),在瀏覽器中構(gòu)建一個(gè)Model層。再一部分就是表現(xiàn)層的業(yè)務(wù)邏輯,主要需要處理各種Event,做出正確的反饋。

     

      這樣的三個(gè)部分,順理成章的,也就成了Browser中的MVC了。

     

      寫完這點(diǎn)東西之后,我再次看了一下jasonhsu的文章,以及Ajax in Action中的第四章《The page as an application》,發(fā)現(xiàn)我的思路似乎與Ajax in Action中的思路幾乎完全一致,而與jasonhsu的有所差別。

     

      雖然人家已經(jīng)說了,不過我畢竟是自己想通了這一層的,嘿嘿。

    posted @ 2006-01-26 23:52 讀書、思考、生活| 編輯 收藏
      “吃藥”是一句上海話,就類似于“被晃掂”的意思。
     
      大家先看看這段代碼:
    <div id="a">
    </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>
      它在FireFox里能夠正確運(yùn)行,一個(gè)class為test的div,被正確的顯示出來了。但是在IE里面,死活就是不行。
     
      后來我才知道,不能用setAttribute,而是得用setAttributeNode
     
    <div id="a">
    </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()簡(jiǎn)單。但是,要為XML文檔定義一個(gè)性質(zhì)包含實(shí)體引用的性質(zhì)時(shí),應(yīng)該使用setAttributeNode()方法。

      什么叫XML文檔呀?什么叫性質(zhì)包含實(shí)體引用的性質(zhì)呀?反正我在IE里,搞搞HTML文檔,就是出不來,用了setAttributeNode,就成功了。

     

      所以,我“吃了犀牛書的藥”了。

    posted @ 2006-01-25 01:23 讀書、思考、生活 閱讀(814) | 評(píng)論 (0)編輯 收藏
    一個(gè)初步的想法,先簡(jiǎn)單說一下。
     
    1、最初的圖形用戶界面,都是代碼堆出來的,用代碼來畫界面,用代碼來響應(yīng)事件,用代碼來處理事件。
     
    2、OO風(fēng)潮一起,GUI的框架自然也要跟進(jìn),基于控件的GUI開發(fā),大行其道。
     
    3、最初的Web,根本無法與GUI應(yīng)用同日而語(yǔ),反而能夠不受太多OO思潮的干擾。獨(dú)立發(fā)展出了:結(jié)構(gòu)、表現(xiàn)、行為三分離的架構(gòu)模式。也就是XHTMLCSSDOM/ECMAScript
     
    4、基于控件的開發(fā),封裝細(xì)節(jié),因此也各自獨(dú)立。大家通過消息機(jī)制來溝通。這樣就導(dǎo)致有一部分邏輯是被封裝在控件內(nèi)部,另一部分則散布在控件“四周”。
     
    5、DHTML->AJAX->XUL這樣的發(fā)展思路,顯示了另外一種開發(fā)GUI應(yīng)用的可能性。結(jié)構(gòu)與表現(xiàn)分離,要修改界面效果,自然是修改CSS來得方便。結(jié)構(gòu)與行為分離,自然能夠?qū)λ械摹皠?dòng)作部分”集中思考。
     
    個(gè)人認(rèn)為,后一種GUI應(yīng)用開發(fā)的架構(gòu)模式,是更加合理的。
    posted @ 2006-01-22 11:25 讀書、思考、生活 閱讀(1563) | 評(píng)論 (0)編輯 收藏

    記錄MSN上與北京姜偉的對(duì)話: 

    jiangwei說:
    主題標(biāo)引其實(shí)是我們的副業(yè),不過進(jìn)展很快,昨天又把主題關(guān)聯(lián)做完了,效果還不錯(cuò)。
    jiangwei說:
    其實(shí)現(xiàn)在聚類算法挺多的,我們?cè)嚵藥追N,各有優(yōu)缺點(diǎn),現(xiàn)在準(zhǔn)備根據(jù)項(xiàng)目的需要,選擇一種給用戶。
    莊表偉 說:
    哦,我那天還想到一個(gè)思路,我一直認(rèn)為原來的主題詞那樣的“用、代、屬、分、參、族”的結(jié)構(gòu)實(shí)在是過于復(fù)雜了。
    jiangwei說:
    愿聞其詳
    莊表偉 說:
    于是我就想,能不能以這樣一種方式來定義主題詞:
    1、所有的主題詞,都是平行的,沒有高低之分
    2、主題詞之間,只有兩個(gè)關(guān)系:相似度、相關(guān)度;
    3、所有相似度與相關(guān)度的數(shù)據(jù),都是從人們自行定義的tags情況計(jì)算得來的
    4、根據(jù)詞頻統(tǒng)計(jì),計(jì)算出推薦用詞
    莊表偉 說:
    然后,專家就可以休息了
    jiangwei說:
    哈哈,有意思的想法,我仔細(xì)想想。
    jiangwei說:
    所有相似度與相關(guān)度的數(shù)據(jù),都是從人們自行定義的tags情況計(jì)算得來的。我覺得這個(gè)最難。

    莊表偉 說:
    有一個(gè)網(wǎng)站你知道嗎?
    http://del.icio.us/
    jiangwei說:
    知道
    莊表偉 說:
    同一篇文章,有多人收錄,每個(gè)人各自獨(dú)立的設(shè)置自己的tags
    莊表偉 說:
    相似度,就是“兩個(gè)tags,分別被不同的用戶,用于同一篇文章的概率”
    相關(guān)度,就是“兩個(gè)tags,被同時(shí)用于一篇文章的概率”
    jiangwei說:
    我當(dāng)時(shí)同keso爭(zhēng)論的就是如果同一個(gè)概念,如果不采用受控語(yǔ)言來表達(dá),如何被廣大用戶解析和理解的問題。
    莊表偉 說:
    比如一篇文章,一個(gè)人定義的tags是:“軟件、Windows”,另一個(gè)人定義的tags是:“編程、Windows”
    莊表偉 說:
    那么,軟件與windows之間,編程與windows之間,都有了相關(guān)度
    莊表偉 說:
    而在軟件與編程之間,就有了相似度
    jiangwei說:
    這需要一個(gè)中間橋梁,你這里的是windows,如果用戶有的用windows,有的用視窗,有的用微軟平臺(tái),有的用window,有的用windowsxp,等等,怎么辦?
    莊表偉 說:
    因?yàn)槭嵌嗳耸珍洠裕陀幸粋€(gè)詞頻的數(shù)據(jù),對(duì)外展示一篇文章的主題詞時(shí),就顯示為用戶最多用戶選擇的,也即是推薦詞庫(kù)中的詞了。
    莊表偉 說:
    在民主與集中之間,可以有一個(gè)算法的橋梁,并不是絕對(duì)不同的
    jiangwei說:
    我看了365key,感覺里面的tags還沒有真正發(fā)揮作用。
    莊表偉 說:
    http://del.icio.us/
    干凈很多,非常舒服,keso自然是不用的
    jiangwei說:
    365key那個(gè)網(wǎng)站我感覺黃賭毒太多,真想不到后臺(tái)是劉韌和keso他們。
    莊表偉 說:
    唉,那是因?yàn)樵谝粋€(gè)“追求點(diǎn)擊率”的國(guó)家
    莊表偉 說:
    365key有兩個(gè)排行榜,一個(gè)是收藏榜,一個(gè)是點(diǎn)擊率榜,如果只有收藏榜的話,365key就干凈了
    莊表偉 說:
    但是,他們哪里舍得去掉這么個(gè)點(diǎn)擊榜呢?
    莊表偉 說:
    http://spaces.msn.com/members/zbw25/Blog/cns!1pA6-3FOo9yNp_4lmEHxdDqA!836.entry
    jiangwei說:
    我現(xiàn)在有想法將365key結(jié)合我們的東西用于政府網(wǎng)站平臺(tái)中,你覺得前景如何?
    莊表偉 說:
    這是寫的一篇新的blog,里面也有一些創(chuàng)意的
    莊表偉 說:
    那還不如將RSS、tags,引入政府內(nèi)部網(wǎng)呢
    jiangwei說:
    是的,就是這個(gè)思路,rss、tag
    莊表偉 說:
    但是是用于內(nèi)部網(wǎng),就是給內(nèi)網(wǎng)的公務(wù)員、領(lǐng)導(dǎo)們看的
    莊表偉 說:
    還有一個(gè)好的東西,也可以引入政府內(nèi)網(wǎng),就是像baidu新聞,那樣的RSS關(guān)鍵詞訂閱。
    jiangwei說:
    我們想得完全一樣啊,這個(gè)東西就是我們即將用于北京市公務(wù)員門戶和北京市領(lǐng)導(dǎo)決策系統(tǒng)中的東西。
    莊表偉 說:

    jiangwei說:
    思路同你是完全相同的
    莊表偉 說:
    這個(gè)東西,非常的Web2.0啊
    莊表偉 說:
    推向公眾,我認(rèn)為,也是能夠賺大錢的。
    jiangwei說:
    是的,我就是想把web2.0用于這兩個(gè)項(xiàng)目,看看實(shí)際效果到底如何
    jiangwei說:
    這個(gè)項(xiàng)目的中標(biāo)單位,################
    jiangwei說:
    但是他們都會(huì)用我們的主題標(biāo)引和主題關(guān)聯(lián)技術(shù)
    jiangwei說:
    其中一個(gè)應(yīng)用是每天抓取網(wǎng)上的新聞,然后聚類和關(guān)聯(lián),給領(lǐng)導(dǎo)和公務(wù)員看。
    莊表偉 說:
    不錯(cuò)的
    jiangwei說:
    抓新聞的那家號(hào)稱巨牛,專門抓動(dòng)態(tài)網(wǎng)頁(yè)和數(shù)據(jù)庫(kù)
    jiangwei說:
    我們下周就要聯(lián)調(diào)了
    莊表偉 說:
    呵呵,已經(jīng)快做完了呀
    jiangwei說:
    但是我覺得信息可視化這方面還沒有做好,我準(zhǔn)備在這上面再下下功夫
    莊表偉 說:
    信息可視化?
    jiangwei說:
    就是如何圖形化地展現(xiàn)這些信息及其關(guān)聯(lián)
    jiangwei說:
    包括后臺(tái)對(duì)這些新聞的統(tǒng)計(jì)和分析
    jiangwei說:
    比如:一周新聞關(guān)注熱點(diǎn),一周公務(wù)員關(guān)注熱點(diǎn)之類的。
    莊表偉 說:
    http://home.wangjianshuo.com/cn/20050616_ajax_eeaec.htm
    莊表偉 說:
    給你看個(gè)blog
    jiangwei說:
    這些都很有啟發(fā),你有這么多創(chuàng)意,干嗎不自己寫一個(gè)結(jié)合上述優(yōu)點(diǎn)的東東出來。
    莊表偉 說:
    唉,人的精力是有限的呀
    莊表偉 說:
    現(xiàn)在有出版社在約我寫一本AJAX新手入門的書,正在努力寫作過程中
    jiangwei說:
    希望早日拜讀大作。其實(shí)我們的精力也很有限,都放到中文智能處理應(yīng)用領(lǐng)域了。其實(shí)這些創(chuàng)意從技術(shù)上看都不難實(shí)現(xiàn),但是如何整合應(yīng)用,如何被大多數(shù)人(不是少數(shù)精英)接受,就不是那么容易了,我現(xiàn)在也只是想在下范圍(政府內(nèi)網(wǎng))中嘗試一下。
    莊表偉 說:
    我們大概會(huì)在3月以前寫完,具體什么時(shí)候出來就不知道了。
    莊表偉 說:
    王建碩的那個(gè)隨手標(biāo)注的AJAX應(yīng)用,倒是很值得引入政府內(nèi)部網(wǎng),在Web頁(yè)面上,隨手劃劃,就能批注了。
    jiangwei說:
    是的,而且實(shí)現(xiàn)起來也不難。
    莊表偉 說:
    是啊,領(lǐng)導(dǎo)們肯定會(huì)喜歡的
    jiangwei說:
    但是在政府里面的應(yīng)用,有很多不是技術(shù)問題,就比如這個(gè),我腦子里面想的就不僅僅是好玩,而是它到底給政府工作會(huì)帶來什么
    莊表偉 說:
    能夠統(tǒng)計(jì)到“關(guān)注點(diǎn)與關(guān)注程度”
    jiangwei說:
    王建碩是365key的作者嗎?
    莊表偉 說:
    不是呀,他是kijiji的創(chuàng)辦者
    jiangwei說:
    現(xiàn)在在北京嗎?我看了他的blog,覺得同你一樣,很有深度啊
    莊表偉 說:
    呵呵,應(yīng)該是在上海的
    jiangwei說:
    可惜可惜,不能當(dāng)面交流請(qǐng)教
    莊表偉 說:
    他是一個(gè)很出名的blogger,比我出名太多了
    jiangwei說:
    看材料他在微軟干過6年
    莊表偉 說:
    是啊,牛人
    莊表偉 說:
    http://forum.javaeye.com/viewtopic.php?t=15308
    莊表偉 說:
    這好這里有一個(gè)我寫的blog,還有人家的評(píng)論
    jiangwei說:
    里面的“互助式搜索”,提法真好!!
    莊表偉 說:

    jiangwei說:
    “inverted table中 每個(gè)詞,每個(gè)場(chǎng)景 每篇文檔都是獨(dú)立的”這是現(xiàn)有搜索問題的實(shí)質(zhì)。
    jiangwei說:
    也就是沒有語(yǔ)境
    jiangwei說:
    全新的客戶端軟件+全新的搜索服務(wù)模式+互助式的搜索協(xié)作機(jī)制=下一代搜索技術(shù),完全同意。
    莊表偉 說:
    哈哈,總算是找到知音了
    jiangwei說:
    因?yàn)槲乙彩沁@樣想的,也找到知音了
    莊表偉 說:
    弄一個(gè)這樣的軟件,咱們就能成為下一個(gè)Google!!
    jiangwei說:
    是很有可能的
    jiangwei說:
    “標(biāo)記主題詞看起來可行, 但實(shí)際上我想難度很大.
    并不是所有用戶對(duì)這種標(biāo)記主題詞的"貢獻(xiàn)"感興趣.”你對(duì)這個(gè)怎么看?
    莊表偉 說:
    這就要用到你們的智能輔助標(biāo)引了
    莊表偉 說:
    用戶如果不想自己動(dòng)腦子的,只需要認(rèn)可機(jī)器的選擇即可
    jiangwei說:
    這是知識(shí)管理的一個(gè)問題,每人都希望得到別人的,但是卻不愿奉獻(xiàn)自己的。
    莊表偉 說:
    但是,他總是希望能夠管理自己的知識(shí)的
    莊表偉 說:
    為了管理自己的知識(shí)而設(shè)置tags,不只是貢獻(xiàn)給別人
    jiangwei說:
    我現(xiàn)在在設(shè)想一種機(jī)制,奉獻(xiàn)得越多,得到的越多。也就是說,你奉獻(xiàn)的tag數(shù)量越多,被引用得越多,你越有能力查詢到更多的人和信息。
    莊表偉 說:
    這在公眾中大概可行,在政府中肯定不可行
    莊表偉 說:
    奉獻(xiàn)tags數(shù)量最多的秘書,權(quán)限不夠
    jiangwei說:
    是的,我感覺是這可能是一種與google和百度現(xiàn)在的利潤(rùn)模式不同的商業(yè)模式。
    莊表偉 說:
    對(duì)的,我們可以給他一個(gè)新的名字,叫做“社會(huì)化搜索”
    莊表偉 說:
    也可以縮寫為SNS
    jiangwei說:
    我們的最新版本中,已經(jīng)加入了搜索的功能,現(xiàn)在我們對(duì)外介紹的時(shí)候,有時(shí)候稱為“智能搜索客戶端”
    jiangwei說:
    不是可以強(qiáng)調(diào)標(biāo)引功能
    jiangwei說:
    在這種方式下,用戶實(shí)際上是用文章找文章。我稱為“文索未文”
    莊表偉 說:
    我想起來了,你當(dāng)時(shí)的那個(gè)PPT,用了N多自造成語(yǔ),實(shí)在是精彩
    jiangwei說:
    實(shí)踐證明,盡管現(xiàn)在還是調(diào)用的google和百度,但是精度和相關(guān)度確實(shí)很高。
    莊表偉 說:
    能夠理解
    jiangwei說:
    如果google和百度能夠針對(duì)這個(gè)技術(shù)進(jìn)行優(yōu)化或者在排序策略上進(jìn)行調(diào)整,效果肯定會(huì)非常好。我自己現(xiàn)在用luccent檢索,就是想用試驗(yàn)證明這點(diǎn)。
    莊表偉 說:
    你寫不寫blog的?
    jiangwei說:
    不寫
    莊表偉 說:
    唉,可惜啊
    jiangwei說:
    好的想法都是在msn上同朋友交流的。
    jiangwei說:
    原來知識(shí)管理網(wǎng)站有個(gè)朋友讓我寫,我發(fā)覺還是不習(xí)慣。
    莊表偉 說:
    blog不是寫文章,而是把自己的想法記下來
    莊表偉 說:
    隨時(shí)想到了,就記一點(diǎn),漸漸的就寫習(xí)慣了
    jiangwei說:
    其實(shí)我在搜索、標(biāo)引、信息可視化、知識(shí)管理和數(shù)據(jù)挖掘上,是有很多想法的。
    莊表偉 說:
    甚至我有個(gè)朋友,自己的BLOG上,都是貼的MSN對(duì)話
    jiangwei說:
    呵呵,你也可以貼咱們的對(duì)話啊,我沒有意見。
    莊表偉 說:
    對(duì)于以后整理自己的思路,很有幫助的

    posted @ 2006-01-14 23:48 讀書、思考、生活 閱讀(431) | 評(píng)論 (0)編輯 收藏
    我以前說過一段話:“花費(fèi)6/7的工作量,去保證那1/7的,有價(jià)值的工作。這不是太浪費(fèi)了嗎?”
     
    結(jié)果純粹思維居然不同意:“老大,你真的是孤陋寡聞了。人均900行/月,已經(jīng)是比較高的productivity了。我們公司人均300行,照樣是500強(qiáng),照樣銷售幾百億美刀。“花費(fèi)6/7的工作量,去保證那1/7的,有價(jià)值的工作。這不是太浪費(fèi)了嗎?”,你又錯(cuò)了,如果那1/7的工作有問題的話,你恐怕花100/7都補(bǔ)不回來。好好看看軟件工程的書吧,特別是和software cost相關(guān)的章節(jié)。”
     
    還有這么一段話:“老大,你的思維不會(huì)還停留在認(rèn)為只有代碼才是真正有價(jià)值的東西,或者說只有編碼才是真正的開發(fā)工作,或者打心眼里還是認(rèn)為一來就開始編碼最好的層次上吧。”
     
    我的確是比較無言以對(duì),只能抄點(diǎn)東西給他看看,鑒于純粹思維同志,比較喜歡中英文夾雜式的表述,我也搞點(diǎn)花樣:
     
    個(gè)體與交互過程 over processes and tools 
    能夠工作的軟件 over comprehensive documentation 
    客戶合作 over contract negotiation 
    隨機(jī)應(yīng)變 over following a plan
     
    為什么要這樣中英文夾雜呢?因?yàn)槟切┯⑽氖羌兇馑季S同志相當(dāng)熟悉的,而這些中文可能是他根本沒有想到過的!
     
    關(guān)于PMP,我倒是從來沒有覺得一個(gè)PMP有什么了不起,學(xué)習(xí)PMP,只是讓我更加深刻的認(rèn)識(shí)到,以“工程方式管理軟件開發(fā)項(xiàng)目”,是何等的緣木求魚
     
    至于PV、EV、AV這種紙上談兵的東西,我都已經(jīng)忘光了。所以呢,你不認(rèn)我是個(gè)PMP,就不認(rèn)吧,我現(xiàn)在也的確不是個(gè)夠格的PMP了。
     
    我現(xiàn)在的已經(jīng)進(jìn)步了,我的確是認(rèn)為:

    代碼才是真正有價(jià)值的東西!
    posted @ 2006-01-14 14:13 讀書、思考、生活 閱讀(2928) | 評(píng)論 (10)編輯 收藏
    [安替]我的態(tài)度:關(guān)于微軟事件和美國(guó)國(guó)會(huì)可能的立法
     
    今天有美國(guó)媒體打電話詢問我,說美國(guó)國(guó)會(huì)有議員即將發(fā)起針對(duì)類似雅虎、微軟等和中國(guó)政府合作公司處罰的立法提議,問我什么持什么態(tài)度。我在這里發(fā)表一個(gè)公開聲明,解釋我的立場(chǎng)。
     
    對(duì)于微軟封我博客,我的態(tài)度反復(fù)對(duì)媒體說過了。1)微軟此種行為,侵犯了我的言論自由,我表示抗議。2)微軟在沒有警告的情況下,刪除我的全部博客,不給我任何機(jī)會(huì)備份,這種對(duì)用戶的惡劣態(tài)度實(shí)在摧毀了我之前對(duì)微軟的信任。3)我保留對(duì)微軟采取進(jìn)一步行動(dòng)的權(quán)力。
     
    后來微軟竟然后來解釋說是為了遵從當(dāng)?shù)胤睿@等于把我們這一批因?yàn)橛懻撔戮﹫?bào)事件而被刪除空間的作者陷于發(fā)表非法言論之“犯罪嫌疑人”之處境;因?yàn)閴毫Χ讌f(xié)是一錯(cuò),因?yàn)檠陲椡讌f(xié)行為而構(gòu)陷受害人于不義是更是錯(cuò)上加錯(cuò)。
     
    對(duì)于微軟這種行為,中國(guó)人不能對(duì)之懲治,是中國(guó)人的恥辱。我們尚不能有任何方法在中國(guó)保護(hù)自己的言論自由,這也正是我們這輩人仍舊需要繼續(xù)努力下去的根本原因。總有算帳那天,只要我還活著,我說過,像微軟、雅虎此種不義行為,就一定會(huì)被懲治,別僥幸能被大家忘掉,未來中國(guó)的基礎(chǔ)教育普及費(fèi)用,恐怕都要從這些大公司的賠償款中出:賺錢之日請(qǐng)先想想未來。我們能活著,并且不失去理想,就是相信歷史,相信正義之神必然會(huì)眷顧中華,讓悲苦者平反,讓受害者申張。
     
    至于美國(guó)國(guó)會(huì)議員要立法如何如何,這完全是美國(guó)人民的事情。我不覺得中國(guó)人的言論自由是美國(guó)國(guó)會(huì)能捍衛(wèi)得了的,一個(gè)偉大國(guó)家公民的言論自由需要他國(guó)國(guó)會(huì)來庇護(hù),這種想法本身就說明了這個(gè)國(guó)家離我們盼想的偉大有多么遙遠(yuǎn)。我的博客被封以及我對(duì)言論自由的抵死捍衛(wèi),不能自然為美國(guó)國(guó)會(huì)的相關(guān)立法背書。
     
    說得再清楚點(diǎn):我需要的是中國(guó)國(guó)會(huì)的立法,我需要的是中國(guó)人來立法捍衛(wèi)中國(guó)人的言論自由。今天不能,明天必然會(huì)能。這是我們活下去的唯一光榮和夢(mèng)想。
     
    一個(gè)國(guó)家之所以偉大,就是因?yàn)槠渲羞€有一批人不愿意放棄民族的理想,并且愿意扎根、犧牲、奉獻(xiàn)。我們今天學(xué)習(xí)華盛頓的政治、紐約的經(jīng)濟(jì)和加州的文化,完全就是因?yàn)槲覀儗?duì)自己的民族有著堅(jiān)定的盼想——總有一天,我們生活在南京、北京、香港和臺(tái)北的兒女,能共同享受自由、民主、富裕、和平的生活。而這一切的一切,都需要我們中國(guó)人自己來努力爭(zhēng)取,因?yàn)橹挥形覀儾拍芸坦倾懶牡伢w會(huì)到彼此的甘苦。
     
    在美國(guó)的法庭申張正義,不代表正義也在國(guó)人心中得以申張。雅虎、微軟是否被美國(guó)法庭懲治,這實(shí)在不是我們能關(guān)心了的,我們實(shí)在需要關(guān)心的是,對(duì)中國(guó)人自己的權(quán)利,我們中國(guó)人能保護(hù)多少,甚至說,能減少侵犯多少。有一個(gè)網(wǎng)友說的好,恥辱其實(shí)是我們自己的。
     
    另外,當(dāng)全球化和政治打包在一起的時(shí)候,我不認(rèn)為任何黑白一刀切處理能事實(shí)有利于中國(guó)人自由權(quán)利的增長(zhǎng)。一方面微軟以封博客的方法阻礙中國(guó)人的言論自由,但另外一方面MSN空間在這一年實(shí)際擴(kuò)張了中國(guó)人用博客言說的能力和意愿,而MSN Messenger也影響了互聯(lián)網(wǎng)信息的傳播方法,這是資本追逐市場(chǎng)所造成的實(shí)際兩面效果。美國(guó)人如何判斷這個(gè)問題,如何加以懲罰,實(shí)在是美國(guó)人自己的問題,但我個(gè)人以為,如果完全阻斷妥協(xié)的公司進(jìn)入中國(guó)市場(chǎng)的機(jī)會(huì),那至少在短期內(nèi),中國(guó)網(wǎng)民不會(huì)由此變得更加自由。另外,必須區(qū)分雅虎的出賣和微軟的妥協(xié),這是完全不同的事情。
     
    我們處在一個(gè)極其復(fù)雜的處境中,正是如同對(duì)經(jīng)濟(jì)制裁是否能改善一國(guó)民主狀況的問題一樣,90年代
    的中國(guó)和伊拉克,有過正反兩方面的反證。這種尷尬和復(fù)雜,恰恰是我們國(guó)人的恥辱,真不足外人道。我只能在此默默和朋友們重念我們自己的夢(mèng)想:愿有一天,在中華大地上,公平如大水滾滾,公義如江河滔滔。此等聲音雖然微小,但在我們心中卻堅(jiān)如磐石。
    簡(jiǎn)評(píng):一直對(duì)安替頗有些不屑,但是他這篇文章寫得實(shí)在是好,特此轉(zhuǎn)貼!
    posted @ 2006-01-14 13:00 讀書、思考、生活 閱讀(428) | 評(píng)論 (0)編輯 收藏
    <SCRIPT LANGUAGE="JavaScript">
    function t(){
        
    var t=document.getElementById("test");
        t.innerHTML
    ="<p>222</p>";
    }
    </SCRIPT>
    <id="test">111</p>
    <INPUT TYPE="button" value="test" onclick="t();">
    這段代碼,在IE5,IE5.5,IE6里執(zhí)行都會(huì)報(bào)錯(cuò)。叫做未知的運(yùn)行錯(cuò)誤,try...catch出來是“[object error]”。

    在FireFox中,能夠完全正常運(yùn)行。在Opera 8.5中,也能正常運(yùn)行。

    估計(jì)的原因是,IE中的<p>,不能接受嵌套<p>標(biāo)簽。
    posted @ 2006-01-13 20:04 讀書、思考、生活 閱讀(395) | 評(píng)論 (0)編輯 收藏
      我的Blog在最近一段時(shí)間的更新頻率,真是愧對(duì)大家了。
     
      現(xiàn)在我的腦子里,與技術(shù)有關(guān)的,主要就是兩件事,在單位,就想著公司的技術(shù)架構(gòu)的事情。在家里,就每天晚上要寫2~3小時(shí)的AJAX的書。與AJAX相關(guān)的技術(shù),最近一直在學(xué)習(xí)、思考,但是又不便在Blog中提前透露,估計(jì)要等到第1、2章全部寫完之后,才能把樣章放出來,給大家評(píng)價(jià)一下。
     
      兒子現(xiàn)在是越來越好玩了,寫兩條有趣的事情,大家開心一下吧:
     
      1、那天他在騎自己的小三輪車,然后故意翻到在地。他趟在地上叫到:“救護(hù)車,快點(diǎn)來,救護(hù)車,快點(diǎn)來。把我拉到那邊去,搶救一下。”
     
      2、前兩天去南京爬城墻,我們?yōu)榱斯膭?lì)他自己走路,就走一段路,給他一粒優(yōu)酪糖,并且夸他:“乖小孩。”回到上海以后,他昨天就突然抱著我的腿,大聲說到:“我是乖小孩,給我一粒糖。”
    posted @ 2006-01-05 22:56 讀書、思考、生活 閱讀(432) | 評(píng)論 (1)編輯 收藏
      2005-8-25,我寫完了《OO喪鐘》系列的最后一篇。在很長(zhǎng)的一段時(shí)間內(nèi),大家也都不來睬我了。直到最近,四個(gè)多月過去了,突然關(guān)注的人又多起來了。
     
      先是徐昊的一組《喪鐘為誰(shuí)鳴?》大大的點(diǎn)中了我的薄弱之處,還有ajoo的重量級(jí)馬后炮。我也心悅誠(chéng)服的表示了慚愧。
     
      然后事情就有點(diǎn)奇怪了。抄幾段話給大家看看:
     
    cm4ever:
    看了半天,覺得沒什么新意,而且標(biāo)題嘩眾取寵。
    正如前面很多網(wǎng)友所說,你所提出的新語(yǔ)言的部分特性,在一些開源項(xiàng)目中早有人研究。人家都沒好意思說自己非常先進(jìn),強(qiáng)大,更多的只是默默無聞,踏踏實(shí)實(shí)的研究。更不說象MS這樣擁有n多語(yǔ)言設(shè)計(jì)大拿的公司,集眾人之力辛苦好幾年才搞出一個(gè)c#。在你身上,我只看到中國(guó)軟件浮躁的一面。

     

    wangzx:
    首先,我覺得你太過自信了,因?yàn)檫€沒有看到你的具體的內(nèi)容.
    OO是靈丹妙藥嗎?OO大師們也沒有這么說過,從結(jié)構(gòu)化過渡到OO,其實(shí)是一件很自然的事情,就像C++只是C + + 一樣,OO也不過是Structure++,當(dāng)然,這么一個(gè)++對(duì)軟件界的影響是足夠深遠(yuǎn)的。

    任何誤解了OO的人,老沉迷于表面的概念之中,或批評(píng)OO、或贊許OO,其實(shí)可參考性本不大。我不知道那一位軟件的高手在考慮問題的時(shí)候,要首先把OO來往自己的問題上套的。如果它能夠找到更為合適的方法,比如說DSL、AI、腳本語(yǔ)言,總之,是那種合適用那種。當(dāng)然,很多通用的問題不見得有成熟的解決模式,OO就自然成為解決這類通用問題的一個(gè)選擇。

     

    VillimWong:
    想問一句?你見過治百病的藥嗎?有誰(shuí)說過OO是萬(wàn)能藥?但是它確定是靈丹妙藥,對(duì)我們目前面前面對(duì)的大多數(shù)問題。這里可以明確地是樓主先給我們下了套。不過還是期待LZ說出點(diǎn)更有意義的東西出來。

     

    Alec:
    ???
    你要表達(dá)什么?
    想清楚了再說

     

    大熊在天涯:
    What are you wanting to say? Nothing so far.

     

    趙小刀:
    你在搞什么?現(xiàn)把事情做了再說。風(fēng)聲大雨點(diǎn)小。。炒作自己呢吧。。。

     

    Ariex_LoA:

    OO僅僅是提出了一種新的思維方法,而不是萬(wàn)靈藥,沒有人說它包治百病,如果有人說過,那么他是傻瓜,如果有人相信,傻瓜again,偶很遺憾的認(rèn)為,作者不過是一個(gè)OO時(shí)代的狂熱者,因?yàn)樽詈竺允Я朔较蚨鴳嵟春轔O。OO不是一切,只是一種思維方法

    重要的時(shí)刻……期待你一大堆問題提出后的下文……

     

      我可以肯定的說,真正看完了我的系列文章的朋友,估計(jì)只有徐昊、ajoo他們寥寥幾個(gè)。而后來的這些個(gè)批評(píng)者呢?沒有,他們僅僅是看了一個(gè)開頭,就準(zhǔn)備批判了。

      ajoo說得不錯(cuò):反正不是老莊浮躁,就是你浮躁,這點(diǎn)我敢確信。

     

      還是回到6月份的時(shí)候吧,我當(dāng)時(shí)為什么要起這樣一個(gè)標(biāo)題呢?為了吸引眼球,的確是這樣的,沒有這樣的標(biāo)題,我的思想很難被盡可能多的朋友看到。那天跟徐昊聊天,我自己也說:不過也還是得怪我自己,當(dāng)初為了吸引更多人的注意力,起了這么大一個(gè)標(biāo)題,也難怪人家要抓我的痛腳。

      所以呢,我也有浮躁的地方,不過比我浮躁的人,更是大把啊。

     

    ps:來的人,估計(jì)是看來最近一期《程序員》的介紹以后來的,Google-->Click Link-->Write。

    posted @ 2005-12-28 15:42 讀書、思考、生活 閱讀(398) | 評(píng)論 (1)編輯 收藏

     

    nàn:災(zāi)難;禍害,人為而產(chǎn)生的禍害

    天災(zāi)人禍,層出不窮。地震、海嘯、颶風(fēng)、戰(zhàn)亂、疾病、禽流感、礦難、空難、中外爆炸、GFW&備案制造的網(wǎng)難。

    nán:困難;艱難

    整個(gè)中國(guó)的國(guó)家政策正在發(fā)生重大的調(diào)整,從以往的政策傾斜于優(yōu)勢(shì)發(fā)展產(chǎn)業(yè),到現(xiàn)在力圖縮小社會(huì)差距,傾斜于西部、三農(nóng)、弱勢(shì)群體、教育、醫(yī)療衛(wèi)生、民工。無數(shù)的既得利益者阻撓這樣的改革,中央政府在深水區(qū)里舉步維艱。

     

    相關(guān)鏈接:Postshow發(fā)起2005“年度漢字”評(píng)選活動(dòng)

    tags:

    posted @ 2005-12-26 17:43 讀書、思考、生活 閱讀(335) | 評(píng)論 (0)編輯 收藏
      徐昊終于出手了,最近的一組重量級(jí)的文章《喪鐘為誰(shuí)鳴?》,直指當(dāng)初我的那篇《敲響OO時(shí)代的喪鐘》。 
      現(xiàn)在我也可以很負(fù)責(zé)任的說,當(dāng)初我的批判對(duì)象,實(shí)在是過廣了。OO的領(lǐng)域其實(shí)非常的大,而我對(duì)于OO的了解,卻始終不出Java、C++的范圍。當(dāng)徐昊跟我談起Pure OO的鼻祖SmallTalk的時(shí)候,我還是只是懵懵懂懂的感到,這不過是一個(gè)相當(dāng)古怪邏輯的OO,跟現(xiàn)在的主流OO,不可同日而語(yǔ)。
     
      后來才逐漸理解到,我所向OO開的跑,90%只應(yīng)該打在Static Type OO的身上。當(dāng)初夸下了海口,如今只能羞愧萬(wàn)分,還是學(xué)習(xí)得不夠多啊!
     
      特意抄錄一段ajoo的重量級(jí)馬后炮,以自我警醒:
     
    ajoo 寫道:
    其實(shí),這篇文章還應(yīng)該進(jìn)一步界定為:給沒有類型推導(dǎo)的,泛型支持有限的,基于名字而非結(jié)構(gòu)的子類型系統(tǒng)的,靜態(tài)類型面向?qū)ο笳Z(yǔ)言敲響的喪鐘.(說穿了不過就是java, c#, c++等寥寥幾個(gè)俗語(yǔ)言罷了)

    老早跟老莊說讓他劃定討論范圍或者定義的時(shí)候,就是看到老莊話說的挺大,結(jié)果討論來討論去不過就是java, c++那點(diǎn)東西.文不對(duì)題.不過可能老莊認(rèn)為所謂的"面向?qū)ο螅⒈厝痪褪莏ava這個(gè)樣子,所以下定義屬于多此一舉。


    批判oo而不研究ruby們,smalltalk們,ocaml們;
    批判靜態(tài)強(qiáng)類型而看不見haskell們,clean們,oz們,那就最好小心一點(diǎn),把標(biāo)題變成"給我目前所知的OO敲響喪鐘"。

     

      再次特別感謝徐昊和ajoo。

    posted @ 2005-12-22 21:50 讀書、思考、生活 閱讀(1090) | 評(píng)論 (2)編輯 收藏

      兩年前曾經(jīng)有一段時(shí)間,我還挺喜歡看許知遠(yuǎn)主筆的《經(jīng)濟(jì)觀察報(bào)》。后來實(shí)在是厭煩了他們那種不管有病無病都在那小聲呻吟的文風(fēng)。從此徹底戒了所有的經(jīng)濟(jì)類報(bào)紙和雜志。但是確實(shí)我也接受了其中的不少思想,比如“中產(chǎn)階級(jí)”。

      我基本上還是贊同這樣的論點(diǎn)的:中產(chǎn)階級(jí)是這個(gè)社會(huì)的中堅(jiān)力量,是民族的精英群體,是國(guó)家的進(jìn)步發(fā)展的主要?jiǎng)恿Γ前捕▓F(tuán)結(jié)的和諧因素。這樣的同意其實(shí)很直覺,因?yàn)槲易哉J(rèn)為自己也是“中產(chǎn)階級(jí)”的一份子,自然也負(fù)有這一階層的使命感。

      很久都沒有再想過這方面的問題了。

      直到前兩天正好看到了上海電視臺(tái)新聞?lì)l道的七分之一。這一期講述的,是“代課教師”。三個(gè)多月前,甘肅省渭源縣委副書記李迎新,將一份《渭源縣代課教師狀況調(diào)研》寄給了甘肅省委與教育部。其中所描述的代課教師的狀況令人震驚!

      渭源縣有600余名鄉(xiāng)村代課教師每月僅拿著40元到80元不等的工資。每月拿40元工資的又占了代課教師的70%,部分代課教師這樣的工資已拿了20年!

      北寨鎮(zhèn)張家堡小學(xué)代課教師王政明,62歲,代課47年,至今每個(gè)月的工資是40元。因?yàn)楦緵]有能力養(yǎng)家糊口,自己的女兒都輟學(xué)在家了。而他卻培養(yǎng)出了76個(gè)大學(xué)生。但是在他來說,教書已成為生命的一部分:“寒暑假時(shí),不用來學(xué)校我心里就會(huì)空空的,非要來學(xué)校轉(zhuǎn)幾圈才踏實(shí)。”

    每天,王老師都要護(hù)送小學(xué)生回家。

     

      代課教師劉秉章已經(jīng)32歲了,也因付不起聘金至今單身。幾次相親中,他頗受刺激,他告訴記者:“幾乎每相親一次,女方得知我是代課教師,甩頭就走。還有的拋下一句話,你40元一月的工資,是你養(yǎng)女人還是女人養(yǎng)你?”他出去打工過,本來都想不再回來教書了。結(jié)果開學(xué)了,他到學(xué)校去轉(zhuǎn)轉(zhuǎn),看到那些孩子,卻又舍不得再走了!而記者去采訪他時(shí),他腳上的皮鞋,還是他父親出去打工,在外面撿回來再補(bǔ)一補(bǔ)給他穿的。

    代課教師劉秉章赤貧的家

      同樣20年來拿40元/月工資的會(huì)川鎮(zhèn)本廟君安希望小學(xué)的代課教師謝毓新,生活壓力比李建新更大。他的兒子正在讀大學(xué),每年的學(xué)費(fèi)要四五千元,他已經(jīng)連本加息借了2萬(wàn)元了。李迎新問,如果轉(zhuǎn)不了正怎么辦,他嘴唇蠕動(dòng)了一陣說:“實(shí)話告訴你,我真有點(diǎn)堅(jiān)持不住了。”

     

      李迎新在一次同學(xué)聚會(huì)的餐桌上說:“代課教師20年來拿著每月40元的工資,你們知不知道?農(nóng)村教育已經(jīng)很危險(xiǎn),你們知不知道?”他越說越激動(dòng),指著他們那桌豐盛的飯菜說:“這樣一桌,對(duì)我們來說只是三四百元,對(duì)代課老師來說,就是一年的工資啊!”說到此處,他的淚水奪眶而出,頓時(shí)一桌無語(yǔ)。

     

      誰(shuí)才是支撐這個(gè)社會(huì)的中堅(jiān)力量呢?是我們?還是他們?

      這還只是整個(gè)教育制度的部分圖景,另外一部分圖景,正好我也在前天的實(shí)話實(shí)說里看到了。這一期的主題是《擇校之痛》。其中教育專家楊東平教授的幾段話,說得特別好。

      “‘擇校熱’的主要原因,并不在于家長(zhǎng),而在于我們的教育政策出了些問題。也就是說,通過這種重點(diǎn)學(xué)校制度,示范學(xué)校制度,人為地制造和加大學(xué)校差距,從而造成家長(zhǎng)的集體恐慌。”

      “我們過去有個(gè)概念,就是必須通過抓重點(diǎn),以點(diǎn)帶面,好像能夠提高教育水平,實(shí)際上現(xiàn)在回過頭來看,這個(gè)想法是有問題的。”

      “教育應(yīng)該是公平的、平等的、均衡的教育,不應(yīng)該是分為等級(jí)的。”

      “現(xiàn)在的重點(diǎn)學(xué)校制度,它形成了一個(gè)非常強(qiáng)大的經(jīng)濟(jì)利益的機(jī)制,也就是說,圍繞重點(diǎn)學(xué)校形成了一種利益鏈,或者叫利益集團(tuán)。形成了非常大的經(jīng)濟(jì)利益。這些學(xué)校通過擇校,可以獲得非常高昂的經(jīng)濟(jì)收入。教育部門等等,都能從中獲得好處。”

      “我們現(xiàn)在的重點(diǎn)學(xué)校制度,變成了家長(zhǎng)的權(quán)力和金錢的競(jìng)爭(zhēng),所以這種教育制度,就成為凝固,或者加大社會(huì)差距的一種制度。”

     

      大家有沒有發(fā)現(xiàn)這兩件事情其中的關(guān)聯(lián)呢?背后的是同樣的國(guó)家政策。都是一種典型的梯度發(fā)展、傾斜發(fā)展的策略。因?yàn)檫@樣的政策,造成了強(qiáng)的越強(qiáng)、弱的越弱;富的越富、貧的越貧。富者連阡陌,貧者無立椎。就是我們看得見的未來!

      當(dāng)財(cái)富向少數(shù)人集中起來的時(shí)候,有些無比荒唐的,燒錢的傻事,就會(huì)有人干出來了。2.5億元人民幣拍了個(gè)《無極》,陳凱歌在接受記者采訪的時(shí)候,居然還說:“我們已經(jīng)很節(jié)約了,人家美國(guó)人拍同樣的大制作,至少幾個(gè)億美金”。許知遠(yuǎn)也搞了個(gè)《生活》雜志。定價(jià)50元,重的可以砸死一頭豬!帶三個(gè)表就評(píng)價(jià)到:“一部《無極》和一本《生活》雜志,有多少錢是花在這種貪圖自戀的狂歡上,自戀到這份上,估計(jì)和自私也就差不多了。”

     

      想想那些代課教師吧!你們這幫畜生糟蹋的這些錢,拿去干些什么不好?代課教師王政明,代課47年,總收入還不到2萬(wàn)塊錢哪!

     

      我們這些“中產(chǎn)階級(jí)”,社會(huì)中堅(jiān),干了些什么呢?

     

    相關(guān)鏈接:

    經(jīng)濟(jì)觀察報(bào)

    中國(guó)中產(chǎn)階級(jí)真相-搜狐文化

    講奉獻(xiàn)還是要吃飯,誰(shuí)剝奪了代課老師的生存尊嚴(yán)

    擇校之痛

    帶三個(gè)表:自私的冒險(xiǎn)

    posted @ 2005-12-20 18:07 讀書、思考、生活 閱讀(568) | 評(píng)論 (4)編輯 收藏
      目前的四大山頭,還處于互不競(jìng)爭(zhēng)的形態(tài),而且大家都有當(dāng)年國(guó)共合作時(shí)期的精神,互相加入對(duì)方的組織。
     
      JavaEye(http://forum.javaeye.com):以BBS論壇為交流形式,站長(zhǎng)是Robbin,成立最早,人數(shù)最多,寶貝最多。當(dāng)然,灌水的也最多。開放式的會(huì)員注冊(cè)機(jī)制,但是必須經(jīng)過漫長(zhǎng)的15天等待,才能發(fā)言。不過瀏覽是完全自由的。
     
      BJUG(http://www.bjug.org):以Google Group提供的Maillist為交流形式,主要的管理者是冰云,以北京Java用戶為主,以定期聚會(huì)交流技術(shù)作為加強(qiáng)凝聚力的手段,目前有100多個(gè)會(huì)員,已經(jīng)早就不再局限于北京Javer了。加入BJUG并不容易,必須有介紹人,否則是進(jìn)不去的。全球Java User Group中的Top 50。
     
      一座千年的妖精旅店(http://blogsite.3322.org/qq2/history.cgi):以QQ群聊天為交流形式,主要的管理者是江南白衣,里面高手眾多,不過也讓我們看到了高手們大噴口水的本色場(chǎng)面。雖然白衣始終不渝的告誡大家要提高聊天質(zhì)量,但是跑題是經(jīng)常發(fā)生的。同樣很難加入,必須有人介紹,就算進(jìn)去了,人緣混得差的,也還會(huì)被踢出來。可以說是最封閉的山頭了。但是這樣的山頭大有好處,真有什么難事,在里面喊一聲,真正的大俠就會(huì)出來救你的。
     
      BlogJava(http://www.tkk7.com/):以專業(yè)技術(shù)Blog為發(fā)布形式(Blog本來就不是很利于交流,但是很利于觀點(diǎn)、心得與資源的發(fā)布)。主要的管理者是dudu,但是現(xiàn)在江南白衣也加入了BlogJava,正在四處拉人加入那里。目前一派欣欣向榮的景象。普通Bloger申請(qǐng)需要等待批準(zhǔn),認(rèn)識(shí)白衣或者其它管理員的,可以走后門。
     
      基本上我的理解還是很片面的,沒有被提到的網(wǎng)站、站長(zhǎng)、社團(tuán)、群眾小團(tuán)體、組織、幫會(huì),大家多見諒。尤其應(yīng)該算一個(gè)山頭的CSDN Java頻道,目前的確還算不上一個(gè)山頭,遺憾ing......
    posted @ 2005-12-16 09:14 讀書、思考、生活 閱讀(3342) | 評(píng)論 (26)編輯 收藏
    老百姓就是那些發(fā)表自己觀點(diǎn)的人
    專家就是那些發(fā)表大家觀點(diǎn)的人
    權(quán)威就是那些改變大家觀點(diǎn)的人
                          --莊表偉
     
      我關(guān)注的bloger很多,關(guān)注的播客卻很少,畢竟國(guó)內(nèi)說漢語(yǔ)的播客,質(zhì)量好的實(shí)在是太少了。比較關(guān)注有一個(gè)叫“胖大海”北京爺們。他的廣播我倒是常常去聽聽。說實(shí)話,這個(gè)哥們實(shí)在是水平有限,不過砍翻幾個(gè)、砍暈一堆的口才也是有的。最近聽到他的一個(gè)《專家又見專家》,倒是頗可以探討、探討。
     
      這個(gè)段子,胖大海在其中也就是攻擊了一個(gè)東西:一位教育界人士卻稱:“現(xiàn)在的教材都是經(jīng)過專家研究設(shè)計(jì)的,封面精美、插圖多,容易引起學(xué)生的閱讀興趣,也符合學(xué)生的年齡特點(diǎn),黑白的教材則沒有這個(gè)效果。”
     
      那么,這樣的說法究竟有沒有道理呢?--我不知道。
     
      客觀一點(diǎn)來說,什么樣的課本,如何編排,如何設(shè)計(jì),插圖多少,彩圖多少,才能更多的引起學(xué)生的閱讀興趣,這個(gè)問題,我根本就沒法回答。在教育心理學(xué)這個(gè)領(lǐng)域,我完全是個(gè)外行。拿到一本書,我也只能夠發(fā)表自己的意見,我是不是喜歡,我是不是有閱讀的興趣。
     
      至于這樣一本教材,是不是能夠引起大多數(shù)學(xué)生的興趣,這樣的問題,我根本無法回答。胖大海那樣的反駁,其實(shí)根本就站不住腳,因?yàn)樗覀兇蠖鄶?shù)人都一樣,不過是個(gè)圈外的老百姓。對(duì)于這種某本書是否適合學(xué)生的問題,根本沒有發(fā)言權(quán)的。
     
      有兩種領(lǐng)域的專家,一種是在有是非的領(lǐng)域的專家,那種專家都得靠真本事的,說話做事,得刀刀見血,否則人家一眼就能看出你是耍花槍。另外一種是在無是非的領(lǐng)域的專家。在這種領(lǐng)域,就好混多了。
     
      打個(gè)比方,對(duì)于那種說不清是非的事情,比如:“這件衣服好不好看”這樣的問題,老百姓只有資格說:“我覺得不好看!”。而專家卻有資格說:“我認(rèn)為市場(chǎng)不會(huì)看好這樣的設(shè)計(jì)。”聽聽,多有派。這就是專家!如果拋開咱們作為小老百姓的不服不憤。人家專家的話,也的確可能很有道理。為什么呢?因?yàn)樽鳛樵谝粋€(gè)行當(dāng)里打滾了多年的老人,他自然有資格作為大眾偏好的代言人,來發(fā)表“具有普遍意義上的言論”。
     
      比如說教育專家,他的確有資格說:什么樣的教材學(xué)生會(huì)更加喜歡,而什么樣的教材效果會(huì)比較差。當(dāng)然,混入專家隊(duì)伍的偽專家,不在此列。就像那些電臺(tái)里的假醫(yī)生一樣,他們推薦的藥,您一樣都不要信。
     
      其實(shí),可怕的不是專家,大多數(shù)專家混到目前這樣的一個(gè)身份,也都不容易。就算沒有真才實(shí)學(xué),至少也我們見多識(shí)廣一點(diǎn)。聽聽他們的建議,其實(shí)是不妨的。怕就怕那種“職務(wù)型專家”。他有那個(gè)說話的權(quán)限,僅僅是因?yàn)樗谀莻€(gè)位置,而他在那個(gè)位置,完全可能是因?yàn)榕紶栆蛩亍W罱跓崃矣懻摰闹袊?guó)院士制度,就有專家說:“少那一票,他就什么都不是,多了那一票,他就好像什么都懂了,什么評(píng)審會(huì)都要請(qǐng)他去。。。”
     
      院士制度雖然有點(diǎn)荒唐,但是人家至少是由投票選出來的,本身的資歷,科研水平也是夠一定水準(zhǔn)的。還有一些職務(wù)專家呢?比如我最近看到的“上海虹口區(qū)人民政府網(wǎng)”,那個(gè)難看啊。一個(gè)首頁(yè)有九個(gè)地方在晃來晃去,根本就是讓人眼暈。以我多年做政府網(wǎng)站的經(jīng)驗(yàn),這樣的網(wǎng)站,一定是出自“某某有水平的領(lǐng)導(dǎo)兼專家”的指點(diǎn)。真可憐那些開發(fā)人員啊。
     
      至于權(quán)威呢,那就厲害了,他一說話,不但你會(huì)認(rèn)為他是對(duì)的,而且還會(huì)認(rèn)為自己過去是錯(cuò)的。反正,他一句能頂你一萬(wàn)句就是了。
    posted @ 2005-12-12 16:40 讀書、思考、生活 閱讀(509) | 評(píng)論 (2)編輯 收藏
      最近思考的問題,其實(shí)都是圍繞著Web2.0的。Web2.0是什么呢?無數(shù)的人可以有無數(shù)的回答,我的理解是:Web2.0意味著用戶體驗(yàn)更好的Web應(yīng)用。最近業(yè)界也頗發(fā)生了幾件大事,我來隨手點(diǎn)評(píng)一下。
     
      1、WebWork與Struts合并了。
     
    Robbin的評(píng)價(jià)相當(dāng)正面:
    Web層方面我現(xiàn)在非常看好Struts Ti。Webwork從技術(shù)上是非常前衛(wèi)的,即將發(fā)布的2.2版本提供了很不錯(cuò)的AJAX功能,并且易學(xué)易用,它的主要問題在于文檔缺少,社區(qū)小,用戶少。現(xiàn)在Struts Ti結(jié)合了Webwork的先進(jìn)技術(shù)和Struts的龐大社區(qū),再…
     
    Michael Chen的評(píng)價(jià)則相當(dāng)負(fù)面:
    與其說兩者的結(jié)合,我情愿極端的看成,這是webwork自己的放棄。這其中也許存在不少的原因,個(gè)人能力上的,外部環(huán)境上的。但在我看來,webwork,這個(gè)象征著靈活,先進(jìn),優(yōu)雅等等完全可以用一系列美好的形容詞的框架,已死。用戶能做出的選擇將會(huì)更少,web框架之間的競(jìng)爭(zhēng)開始重量級(jí)升級(jí),那些小型的,美麗的框架將會(huì)由于沒有商業(yè)公司或者社區(qū)的支持而死得無聲無息。這個(gè)世界回歸到了壟斷的世界。
     
      為什么有這么大的反差?其實(shí)是在對(duì)WebWork的AJAX擴(kuò)展上,有了分歧。robbin對(duì)于WebWork的這一進(jìn)步同樣評(píng)價(jià)很高。而Michael Chen和DLEE這些原本就做過不少AJAX應(yīng)用的朋友就覺得是丑陋的。對(duì)于 WebWork Ajax 支持的失望(dlee),而Michael Chen則附議到:“深有同感。不過我的觀點(diǎn)在美感方面。前些日子scud在BJUG的聚會(huì)上做了一個(gè)關(guān)于Webwork2.2的topic,其中談到webwork的ajax的支持。在我看來,那些remoteDiv, a, form的ajax標(biāo)簽,使用起來實(shí)在是丑陋不堪。當(dāng)時(shí)跟冰云說,webwork現(xiàn)在的team leader一定不是 Richard Oberg了,否則他怎么能容忍這么丑陋的設(shè)計(jì)呢?”
     
      再進(jìn)一步問:“為什么對(duì)于WebWork的AJAX支持的評(píng)價(jià)上,有這么大的差別呢?”我的看法是:這就是立場(chǎng)不同所導(dǎo)致的了。究竟是站在傳統(tǒng)Web框架的立場(chǎng)來看待AJAX呢?還是站在AJAX的立場(chǎng)來看待傳統(tǒng)的Web開發(fā)。
     
      站在傳統(tǒng)Web框架的角度,“Ajax 其實(shí)不過是一堆 JavaScript、HTML 和膨脹的邏輯混合在一輛巨大的失事火車?yán)锩妗!?dlee翻譯的WebWork作者的一段話。)對(duì)于他們來說,AJAX就是一個(gè)必須閉著眼睛吞下去的一個(gè)蒼蠅。以這樣的態(tài)度弄出來的東西,能不丑陋嗎?
     
      站在AJAX的角度,來看傳統(tǒng)Web開發(fā),這個(gè)方面目前的確還不夠明朗。打個(gè)比方,企業(yè)應(yīng)用架構(gòu)模式(PoEAA)由Martin Folwer總結(jié)出來以后,大家都覺得心里有底,腳下有根了。而現(xiàn)在呢?Web應(yīng)用架構(gòu)模式(PoWAA)呢?這個(gè)東西大家原來是有一套的,當(dāng)AJAX出現(xiàn)之后,成熟之后,普及之后,我們也同樣期待這有人來總結(jié)出新一代的,Web應(yīng)用架構(gòu)模式。注意是架構(gòu)模式而非設(shè)計(jì)模式。這樣的模式,現(xiàn)在似乎還沒有出現(xiàn)。只不過站在AJAX開發(fā)者的立場(chǎng)來看,總結(jié)出這樣的新模式,才是正途。
     
      我現(xiàn)在因?yàn)橐獪?zhǔn)備寫一本AJAX方面的書,自然也就開始思考這方面的問題,在和李錕、澤欣等朋友的討論中,也在思考這樣的問題,舉個(gè)例子,AJAX之后的MVC,控制層是不是可以完全放在客戶端,而服務(wù)器端僅僅是一個(gè)模型層。說實(shí)話,還沒有想清楚......
     
      2、Java Web Alignment Group成立
      這件事情讓江南白衣相當(dāng)?shù)呐d奮。在他的N個(gè)blog里都發(fā)布了這個(gè)Good News。據(jù)說有一堆大佬(達(dá)到36個(gè)之多)是這個(gè)Group的成員。我在白衣的blog下留了一句話: 突然想到一個(gè)場(chǎng)景,鹿鼎記里的江湖群豪,前明志士們聚在一起開的那個(gè)“殺龜大會(huì)”。為什么會(huì)有這樣的聯(lián)想呢?因?yàn)槲覐膩韺?duì)于這種所謂的大聯(lián)合不抱幻想。
     
      根本的原因在于,技術(shù)的事情,不是人多力量就大的,不是聯(lián)合了就能夠統(tǒng)一的,小舢板不是捆在一起就成立“航空母艦”的。為什么現(xiàn)在Java Web Framework如此分裂?為什么幾十個(gè)框架斗不過一個(gè)Ruby on Rails?RoR的勝利,不是豐富的勝利,不是強(qiáng)壯的勝利,而是簡(jiǎn)單性的勝利。你幾十個(gè)框架合在一起,只會(huì)更加復(fù)雜,更加煩瑣,更加丑陋。這樣的聯(lián)合,根本就是連失敗的原因都沒想清楚。36個(gè)大佬,能在一起設(shè)計(jì)出一個(gè)框架來?Java界的權(quán)威們,誰(shuí)服過誰(shuí)了?
     
      現(xiàn)在傳統(tǒng)的Java Web Framework,一方面在面對(duì)各系其它語(yǔ)言的Rails的框架沖擊,一方面又面對(duì)著AJAX新思維的沖擊,新的架構(gòu)模式尚未出現(xiàn)...。要搞出一個(gè)新的、Java的、快捷的、Web開發(fā)框架,任重而道遠(yuǎn)啊!
     
      在QQ群里,江南白衣也頗有些想拉起大旗做一個(gè)框架的意思,現(xiàn)在還在七嘴八舌的階段,嗯,我還是很期待的!
     
      3、微軟推出SSE
     
      說實(shí)話,我看到這個(gè)消息還是很高興的,因?yàn)槲以缭?月底5月初的時(shí)候,就已經(jīng)提出了雙向RSS的概念。《BBS-Blog-Wiki的未來》《BBS-Blog-Wiki的未來-文字解說》,最后一段話就說到:另外對(duì)于RSS的改造,也將從單向接收的功能,進(jìn)化為雙向數(shù)據(jù)同步的功能。是不是比MS還早啊
     
      其實(shí)這也不算啥,我的朋友Wolf,他們的網(wǎng)站叫做“i170”,在他們的客戶端,已經(jīng)早就實(shí)現(xiàn)了雙向RSS同步了。
     
      我們其實(shí)不慢,只是宣傳的本事不夠......
    posted @ 2005-12-01 10:25 讀書、思考、生活 閱讀(2566) | 評(píng)論 (7)編輯 收藏
    romza在BJUG的maillist里提出了一個(gè)問題,Web開發(fā)中的Component,能不能夠通過OSGi這樣的插件體系,來進(jìn)行組織,以提高代碼的可重用性。
     
    這個(gè)帖子引起了廣泛而深入的討論,我也在很后面加入了進(jìn)去,說了一點(diǎn)。
     
    飛馳的話題呼嘯而過,我稍一遲疑,就趕不上趟了。
     
    但是這里面的話題,又的確是我非常感興趣的(嗯,跑題了那么遠(yuǎn),但是還在我的興趣范圍內(nèi)),所以的確是應(yīng)該出來聊聊我的看法,特別是徐Rx同志多次提到了我的DJ...
     
    1、徐Rx,我認(rèn)為你不應(yīng)該為自己的表達(dá)能力過多辯護(hù),還把責(zé)任推到我們中華民族偉大的中文上來。看著你的帖子,我好幾次都差點(diǎn)暈過去,百分之50中文單詞勾兌百分之50的英文單詞。這樣的句子,能讓人讀懂嗎?
     
    2、幾次昏過去之后,我又強(qiáng)迫自己醒過來接著看帖子,我認(rèn)為徐Rx還是講得很正確的,除了再次想把我的DJ和語(yǔ)義網(wǎng)拉上關(guān)系之外。
     
    3、回到最初的話題,romza的需求可以理解,但是你所猜測(cè)的那個(gè)解決方案(插件體系結(jié)構(gòu))我認(rèn)為不是一條正路。提高軟件的重用性,自然是大家多年來一直追求的目標(biāo),但是不同的應(yīng)用領(lǐng)域,應(yīng)該有不同的重用規(guī)范。彼此之間可以參考,但是很難照搬。就我對(duì)Web開發(fā)的理解,在AJAX還沒有大規(guī)模改變Web開發(fā)的世界之前,瀏覽器的運(yùn)作模式是非常單調(diào)的(請(qǐng)求-響應(yīng))模式,響應(yīng)的輸出,無非就是文本,在這樣的世界里,Web模板是最自然的解決方案。比如buaawhl的Fastm,或者我的Fastm+。但是當(dāng)AJAX的概念大面積的進(jìn)入人們的視線之后,傳統(tǒng)的思維就必須修正了,由此而引發(fā)的一系列的思考,我倒現(xiàn)在也沒有完全想好,也許Micheal
    Chen可以出來談?wù)劇5牵F(xiàn)有類似于AjaxTags這樣的用Tags給Web1.0打補(bǔ)丁的方式,我認(rèn)為是丑陋的。
     
    4、再說面向?qū)ο笈c面向方面的問題,在只有Object的世界里,對(duì)象就是唯一的可以重用的積木。這個(gè)積木從其本質(zhì)來說,就是有缺陷的,所以要想在OO的基礎(chǔ)上重用,就會(huì)很辛苦(參見我的《喪鐘》系列)。但是貿(mào)然引入Aspect,也并非解救之道。就像AJAX出現(xiàn)之后,我們必須重新思考Web開發(fā),而不是打補(bǔ)丁一樣。Aspect的概念出現(xiàn)之后,我們現(xiàn)在的用法,也不過是用Aspect給Object打補(bǔ)丁。這樣的做法,在我看來,一樣是丑陋的。
     
    5、AOSD我看了一下,那老頭舉的例子,簡(jiǎn)直就是在說夢(mèng)話。要像他那樣做面向方面的分析設(shè)計(jì),系統(tǒng)肯定是做不出來的。
     
    6、說說我的DJ,在我看來,強(qiáng)行將一些行為劃入Object,而另一些劃入Aspect,是不平等的。這些行為不該有這樣的高低貴賤之分。在DJ之中,他們都是某一個(gè)Channel。語(yǔ)義是:"Channel就是行為插入數(shù)據(jù)的管子"。每一個(gè)管子之間是平等的,而我們需要一個(gè)更加強(qiáng)壯的機(jī)制,來管理這些行為之間的相互干擾,以及對(duì)于數(shù)據(jù)的交叉讀寫。
     
    7、前面拐拐龍底咚說的:"一下子想起了久違的DB觸發(fā)器",實(shí)在是深得我心。我一直認(rèn)為,在確保數(shù)據(jù)安全方面,OO的做法是愚蠢的,而DB的觸發(fā)器是一種更加靈活的方案。但是傳統(tǒng)數(shù)據(jù)庫(kù)中的觸發(fā)器,缺少對(duì)行為相互干擾之間的管理,而是純粹只關(guān)心了數(shù)據(jù)的安全。因此,我一直在設(shè)想,如果我的DJ能夠成為某種PL/SQL的直接擴(kuò)展,也許是更加自然的一種實(shí)現(xiàn)方案。
     
    8、徐Rx的C/C++回憶我也很贊同,我曾經(jīng)跟一個(gè)朋友說過一句話:"框架就是弱語(yǔ)言,而語(yǔ)言就是強(qiáng)框架"。我現(xiàn)在所在的公司,做的那個(gè)樂酷網(wǎng)絡(luò)電視錄像機(jī),背后的業(yè)務(wù)邏輯支撐框架,就是按我的DJ的思路來做的,叫做DOOP。面向動(dòng)態(tài)對(duì)象的編程。應(yīng)該這么說,是先有了DOOP的開發(fā)實(shí)踐,才有了后來更進(jìn)一步語(yǔ)言化的打算。
     
    9、我對(duì)于DJ的定位,是一種業(yè)務(wù)邏輯層的描述語(yǔ)言,而其它的方面,它肯定都不擅長(zhǎng),比如界面層,比如網(wǎng)絡(luò)層。因此,我的看法是,在現(xiàn)在的多層架構(gòu)的體系下,拋開"確切所處的層次來談重用",肯定是用不好的。也可以這么說,你不可能找到一個(gè)方案,能夠一舉解決整個(gè)系統(tǒng)的重用性問題。必須區(qū)分技術(shù)領(lǐng)域、區(qū)分系統(tǒng)層次,區(qū)分不同的規(guī)模尺度。然后才能來談重用。這樣才可能成功的。
    posted @ 2005-11-28 22:45 讀書、思考、生活 閱讀(1128) | 評(píng)論 (2)編輯 收藏

      罌粟是一種植物,通過不斷的提煉,最終成為高純度的海洛因。從最初的種植每畝罌粟能賺幾千塊,到加工1公斤能賺1萬(wàn)元,等運(yùn)到廣州大概能賺4萬(wàn),如果能運(yùn)到美國(guó),每公斤能賣到百萬(wàn)美元以上。這么賺錢的買賣,對(duì)于寫IT這個(gè)行業(yè)的軟件編程這樣書,有什么啟發(fā)呢?

     

      1、純度——“藝到精純品自高”

      寫軟件編程的書,也得有不懈的追求,也得向著完美不斷的前進(jìn)。更重要的是,別兌水,得有很多很多的真材實(shí)料。提高書的品質(zhì),才是王道。

     

      2、目標(biāo)用戶——“銷售給最有購(gòu)買力的用戶才能賺最多的錢”

      作為一個(gè)在JavaEye混的人,我也非常鄙視那些來問“低級(jí)問題”的家伙。他們太懶了,在現(xiàn)在搜索引擎如此發(fā)達(dá)的條件下,竟然有人不能自己找到答案。但是,對(duì)于圖書寫作者和出版商來說,他們就是用戶啊,他們的購(gòu)買力×懶惰程度,就決定了咱們的利潤(rùn)高低啊。所以,寫書一定要針對(duì)目標(biāo)用戶,狠下功夫。

     

      3、吸引力——“要讓讀者覺得爽,爽了還想再爽”

      一本好書,應(yīng)該是能夠讓人一口氣讀完的,這樣的書不容易寫,但是一旦寫出來,就肯定能賺錢。一本好書,應(yīng)該是能夠讓人讀完之后還想再進(jìn)一步的,這樣的書更不容易寫,但是如果能夠做到的話,那咱就吃穿不愁了


    題外話:

    1、dlee(李錕)最近寫了一篇blog,推薦一看:

    http://www.tkk7.com/dlee/archive/2005/11/26/21503.html

     

    2、我的MSN Spaces的blog的訪問量,超過20萬(wàn)了,特此慶賀:

    posted @ 2005-11-27 23:40 讀書、思考、生活 閱讀(689) | 評(píng)論 (0)編輯 收藏
      為了準(zhǔn)備寫AJAX的書,我又開始了新一輪的搜索工作。這樣的工作我現(xiàn)在是越來越熟練了突然想到,關(guān)于借助網(wǎng)絡(luò)自學(xué)這件事情,我還是挺有發(fā)言權(quán)的,今天就寫寫這個(gè)吧。
     
    一、資源
     
      1、搜索引擎,僅有Google是不夠的。我現(xiàn)在常用的搜索引擎是一個(gè)集合搜索引擎,叫做http://www.okgo.cn/。這個(gè)網(wǎng)站的確是不錯(cuò),可以搜到網(wǎng)頁(yè)、博客、BT、論壇、軟件、文檔、圖書等等等等。
     
      2、RSS搜索,okgo也是不夠的。再推薦幾個(gè):
    http://blogsearch.google.com
     
      3、網(wǎng)絡(luò)書簽共享,這里也有很多好東西:
    http://www.365key.com/  首頁(yè)不用看了。
     
      4、電驢搜索,可以搜到很多電子書
     
      5、數(shù)字圖書館,還有很多,不過大多是要錢的,就不多推薦了
    http://www.ssreader.com/ 超星圖書館
     
      6、論壇,有高手的地方,一定有好東西,AJAX相關(guān)的:
     
      7、專業(yè)站點(diǎn),比如AJAX相關(guān)
     
      8、wiki
    http://zh.wikipedia.org/  如果必要,總要想盡一切辦法去訪問的。
    http://www.ajaxpatterns.org/  專業(yè)領(lǐng)域的Wiki。
     
      9、maillist,相關(guān)主題的郵件列表,進(jìn)階學(xué)習(xí)時(shí),往往是需要訂閱的。
     
      10、開源軟件基地
    http://open-open.com/  java-source的中文版
     
      11、QQ群
      12、MSN好友
    能夠直接問到人,但是也容易招人煩,慎用,建議長(zhǎng)期潛伏。
     
     
    各位看看,還有什么要補(bǔ)充的?
     
    第一部分只是介紹資源,接下來我還打算談?wù)勅绾稳腴T,次序怎樣等等話題。
    posted @ 2005-11-25 10:17 讀書、思考、生活 閱讀(2163) | 評(píng)論 (9)編輯 收藏
      上周六跟dlee碰頭,沒想到他還記得我的那篇BLOG,居然帶了《About Face 2.0》來給我。這本書得好好看看的。
     
      禮拜一,我在蔚藍(lán)書店訂的三本書終于送來了,《人類群星閃耀的時(shí)刻》我看了前三個(gè)故事,感覺挺一般的,沒有老白說的那么好,書太花哨了,有點(diǎn)喧賓奪主。還是六哥說的有道理,關(guān)鍵得把美編的創(chuàng)作欲摁住!
     
      巴老的《隨想錄》我也看了幾篇,實(shí)在是好。巴老是那種無技巧寫作的人。他把自己毫無保留的,完全真誠(chéng)的袒露在你面前,正如他自己說的“我把心交給了讀者”。這樣的人,寫出來的書,讓我想起郭靖的降龍十八掌。天下至剛至正的武學(xué),就是這樣的。
     
      今天,我郵購(gòu)的《讀庫(kù)0600》也終于到了,果然是“素雅清新”,極能勾起我的閱讀欲望,今天晚上睡前就看它了。
     
      這些都是紙制的要看的書。另外還要看一堆中英文的技術(shù)資料。因?yàn)槲乙呀?jīng)答應(yīng)出版社,要寫一本《AJAX》方面的新手入門的書。需要學(xué)習(xí)、理解的技術(shù),真是多得不得了。
    1、基礎(chǔ)知識(shí):XMLHTTP、XML、DOM、XHTML、CSS、JavaScript。
    2、Web設(shè)計(jì)、網(wǎng)站重構(gòu)、面向使用的軟件等等指南性書籍。
    3、N多AJAX的框架、Lib的代碼。
     
    有得忙了
    posted @ 2005-11-23 23:51 讀書、思考、生活 閱讀(402) | 評(píng)論 (1)編輯 收藏
    <2005年11月>
    303112345
    6789101112
    13141516171819
    20212223242526
    27282930123
    45678910

    常用鏈接

    留言簿(20)

    隨筆檔案

    友情BLOG

    搜索

    •  

    最新評(píng)論

    閱讀排行榜

    評(píng)論排行榜

    主站蜘蛛池模板: 看亚洲a级一级毛片| 免费无码又爽又高潮视频| 亚洲人成网站影音先锋播放| 久久国产精品免费一区二区三区 | 国产成人精品日本亚洲直接 | 亚洲精品动漫人成3d在线| 香蕉97碰碰视频免费| 国产特级淫片免费看| 香蕉视频亚洲一级| 免费一级国产生活片| 深夜a级毛片免费无码| 免费真实播放国产乱子伦| 国产精品亚洲а∨无码播放麻豆| 国产精品免费视频播放器| AV激情亚洲男人的天堂国语| 日批日出水久久亚洲精品tv| 深夜福利在线视频免费| 久久精品国产亚洲5555| av午夜福利一片免费看久久| 青青草原亚洲视频| 免费人成在线观看视频高潮| 无码专区—VA亚洲V天堂| 亚洲免费视频网站| 亚洲熟妇无码爱v在线观看| 国产又黄又爽又猛免费app| 亚洲精品国产精品| 免费中文字幕一级毛片| 久久精品成人免费国产片小草| 亚洲日本一区二区三区在线| 国产免费无码一区二区| 亚洲色大成网站WWW久久九九| 白白色免费在线视频| 亚洲av区一区二区三| 一级毛片免费毛片毛片| 久久亚洲精品无码观看不卡| 中文日本免费高清| 亚洲Av无码精品色午夜| 91热成人精品国产免费| 亚洲AV成人噜噜无码网站| 国产成人精品日本亚洲专| 午夜网站免费版在线观看|