一直有朋友發(fā)email來(lái)索要那本OpenDoc的源代碼,這里一并給出下載地址。
http://m.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 讀書、思考、生活 閱讀(108361) |
評(píng)論 (11) |
編輯 收藏
?
?
我寫的總結(jié)
?
如果和超級(jí)女生這樣的大賽相比的話,
Ajax
大賽應(yīng)該被稱之為“
Ajax
小賽”吧。
250
名初賽選手,
10
多名復(fù)賽選手,三個(gè)來(lái)自于一個(gè)網(wǎng)站“
Ajax
中國(guó)”的評(píng)委。這樣的比賽意義在哪里呢?
?
僅僅看數(shù)量,是看不出來(lái)的。
?
Ajax
是
Web
應(yīng)用的一種,而且可以肯定的說(shuō),是
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ì)于參賽選手而言,這些工作,都得靠一己之力來(lái)完成,在
2
個(gè)多月之內(nèi),做出來(lá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ì)接踵而來(lái),而我們這些人將會(huì)自豪的宣稱,我們從一開始就不是旁觀者,而是實(shí)實(shí)在在的參與者,和有力的推動(dòng)者!
?
看著選手們的代碼,我們的信心更加充足,這些
Ajax
的愛好者和參與者們,不僅是熱忱的,更是踏實(shí)的。不但是嚴(yán)肅認(rèn)真的,更是勇于創(chuàng)新的。由這樣的一群人來(lái)推動(dòng)
Ajax
在中國(guó)的發(fā)展,實(shí)在是一個(gè)極好的開始。
?
而
Ajax
大賽,正是這樣一個(gè)機(jī)會(huì),使得這一群中堅(jiān)力量,能夠集結(jié)、凝聚,進(jìn)而取得更加卓越的成就。這就是我對(duì)于這個(gè)比賽意義的理解。
? 說(shuō)實(shí)話,稍微吹了一點(diǎn)
posted @
2006-07-14 21:35 讀書、思考、生活 閱讀(30229) |
評(píng)論 (0) |
編輯 收藏
“出來(lái)混,總是要還的。”這話說(shuō)得真好。我最近的blog寫得太少了,想寫的東西,其實(shí)又實(shí)在是不少,一日復(fù)一日的堆積心里,又想寫,又不想寫,難受呀。
這篇blog原本還是打算在Word 2007里寫的, 后來(lái)作為草稿發(fā)上來(lái),發(fā)現(xiàn)還有不少不如意的地方,還是在線寫吧。
想說(shuō)的事情挺多的,一件一件的說(shuō)吧。
一、敏捷中國(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按理我早就該寫了,但是卻一直沒有寫出來(lái)。有兩個(gè)原因,一個(gè)是那天老馬在開講之前,熊節(jié)是打算在邊上當(dāng)翻譯的,誰(shuí)知道交大的同學(xué)們牛啊,紛紛表示,不必翻譯,都聽得懂的,我一個(gè)學(xué)俄語(yǔ)的人,在那里抗議也沒什么用,大家都一副聽力很好的架勢(shì),老馬在上面嘰里呱啦的講著,下面的同學(xué)們不時(shí)的笑著……我呢,也只能隨著大家的笑聲,沖著老馬空洞的笑著……;第二個(gè)原因呢,是個(gè)原本打算等CSDN的演講的翻譯出來(lái),我也好引用一下,誰(shuí)知這一等,就是半個(gè)月,我都已經(jīng)換了一個(gè)工作了。
說(shuō)實(shí)話,那天老馬的演講,我沒聽懂,不過因?yàn)樗谀抢铿F(xiàn)場(chǎng)coding,所以我還是看懂了一些代碼。Ruby的代碼給人留下了深刻的印象,而且我不知道是不是Martin故意裝作是一個(gè)初哥,反正看起來(lái)他對(duì)ruby的語(yǔ)法也不怎么熟悉,不過ruby厲害的地方就在于,你就算是個(gè)初哥,邊試邊弄,也能把程序鼓搗出來(lái)。
原本的計(jì)劃是介紹Ruby DSL的,不過時(shí)間明顯的不夠用,關(guān)于DSL的部分反而講得很少,還好這兩天armlinux-w翻譯了一篇專講Ruby DSL的文章過來(lái):《用Ruby 創(chuàng)建領(lǐng)域特定語(yǔ)言》。當(dāng)時(shí)看到Martin演示的,用Ruby語(yǔ)言描述的配置文件時(shí),腦子里頗有些想法,也寫了問題交上去問,不過老馬也來(lái)不及一一回答,后來(lái)想想,提的那個(gè)問題,也沒有經(jīng)過自己的深入思考與實(shí)踐,不提也罷。
倒是我提的另外一個(gè)問題,頗有些價(jià)值,當(dāng)時(shí)正好交大的林德樟老師也在,我以前就對(duì)林老師的那句語(yǔ)錄有所不滿《XP是草書,UP是正楷,先草書后正楷,就會(huì)亂套》。在自己的Blog上也和林老師的門徒們吵過架,如今Martin教主本人既然來(lái)了,我等看客正應(yīng)該把這仗挑起來(lái)才是。于是我就提了一個(gè)問題,讓兩位專家都來(lái)評(píng)價(jià)一下這句話。可惜的是,后來(lái)他們兩人的精彩交鋒,我也沒怎么聽懂,還是林老師還用中文闡述了一遍自己的觀點(diǎn),我算是了解了一下他的邏輯。
原來(lái)我以為,林老師這樣的說(shuō)法,是出于在校教師“和稀泥”的考慮。這下我才了解到,原來(lái)林老師是真的這么認(rèn)為的。而他這么一種說(shuō)法的依據(jù),還是慣常的“中國(guó)國(guó)情論”。或者稱之為“補(bǔ)課論”。因?yàn)槊绹?guó)人是現(xiàn)有軟件工程,才有極限編程,而我們現(xiàn)在的軟件產(chǎn)業(yè)還落后人家?guī)资辏圆话衍浖こ踢@一課不上,是不行的。然后林老師還頗有些“攻擊力”的詢問Martin,當(dāng)初你先寫了UML,后來(lái)又寫了XP,不也是這樣一個(gè)心路歷程嗎?老馬如何回答,我也沒有聽懂,但是在我看來(lái),林老師混淆了三個(gè)概念,一個(gè)是國(guó)家級(jí)的軟件產(chǎn)業(yè)的發(fā)展水平,一個(gè)是企業(yè)級(jí)的軟件開發(fā)的管理水平,一個(gè)是開發(fā)人員的技術(shù)與理論水平。這三個(gè)不同的水平被他攪在一起,用于支撐自己的說(shuō)法,實(shí)在是???????所以,會(huì)后我又追上去問林老師,我提出了三個(gè)概念混淆了云云,沒想到林老師相當(dāng)和藹可親的對(duì)我說(shuō):“嗯,你說(shuō)的沒錯(cuò)”,然后又說(shuō)到關(guān)于大學(xué)的軟件教育的問題,我在說(shuō)很多剛畢業(yè)的學(xué)生,對(duì)于軟件開發(fā)的理解,往往停留于知識(shí)點(diǎn)的積累上,而沒有去思考,我打算把這些知識(shí)點(diǎn),組合起來(lái)運(yùn)用,以達(dá)到什么目的。很多學(xué)生,只是說(shuō)我知道什么什么,而不會(huì)說(shuō),我會(huì)做什么什么。林老師又和藹可親的對(duì)我說(shuō):“嗯,你說(shuō)的沒錯(cuò)。我一直跟學(xué)生們說(shuō),學(xué)校和企業(yè)是完全不同的,真正的知識(shí),只能在企業(yè)里才能學(xué)到。”然后我又說(shuō),其實(shí)軟件學(xué)院應(yīng)該多推薦學(xué)生去企業(yè)實(shí)習(xí),還有就是多鼓勵(lì)學(xué)生參與Open Source的項(xiàng)目呀。林老師還是和顏悅色的對(duì)我說(shuō):“是啊,不過現(xiàn)在的企業(yè),要他們肯接收學(xué)生實(shí)習(xí),不容易的。在美國(guó),每年暑期都會(huì)有大量的實(shí)習(xí)生招聘,這其實(shí)就是企業(yè)在做慈善呀。再說(shuō)現(xiàn)在的大學(xué)老師,對(duì)Open Source的了解,也很少的呀。”然后,我就跟林老師告辭了。作為一個(gè)老師,他給我留下了很好的印象,但是,我更加悲觀的發(fā)現(xiàn),要通過學(xué)校教育,提高軟件開發(fā)人員的素質(zhì),好難啊!
會(huì)后大家又找了一家小飯店FB了一下,CSDN的霍泰穩(wěn)也來(lái)了,我還給他們提了一個(gè)建議,以后CSDN最好能夠搞一個(gè)系列的活動(dòng),不斷的把世界各地的軟件大師們請(qǐng)到中國(guó)來(lái),巡回演講,收取門票,整理成每年基本的《軟件大師在中國(guó)》這樣書出版,還有視頻光盤也可以賣錢,各位大師的中文Blog也都建在CSDN,應(yīng)該是一樁雙贏的好事啊,就看他們是不是打算做了。
(待續(xù))
posted @
2006-06-20 23:05 讀書、思考、生活 閱讀(28466) |
評(píng)論 (6) |
編輯 收藏
最近一直在討論招人的事情,如何判斷一個(gè)人的水平,怎么樣才算是沒有bug,等等等等。也看到一些并不怎么有趣的反對(duì)意見,比如:
不要出來(lái)搞笑說(shuō):
沒有bug的程序?????????
靠,站著說(shuō)話不腰疼。那個(gè)公司可以做出沒有bug的軟件來(lái)?
當(dāng)然,沒有寫過程序的人不出bug!!
估計(jì)這位同志不會(huì)寫代碼,是個(gè)理論專家。
還是不要這么狂的好。
我估摸按你的標(biāo)準(zhǔn),你是肯定不會(huì)被別人錄用的!
123說(shuō):
你是編程的嗎?
無(wú)“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)去吧
說(shuō)實(shí)話,這兩個(gè)名字我看都不是用戶名,而且很可能是同一個(gè)人,就是所謂的troller。我說(shuō)的沒有bug,是交給我的demo沒有bug,這樣的要求很高嗎?我還沒有出算法題,要求應(yīng)聘者的算法效率呢??jī)H僅要求一個(gè)正確實(shí)現(xiàn)簡(jiǎn)單功能的程序,很過分嗎?
?
在JavaEye還看到另外一篇帖子《
大伙能進(jìn)來(lái)討論下“跳槽”的問題》,有一個(gè)小伙子,對(duì)自己的代碼有感情,對(duì)人有感情,對(duì)公司有感情,所以當(dāng)公司遇到困難的時(shí)候,一時(shí)間舍不得走。這樣正常的事情,居然頗遭到不少人的冷嘲熱諷,和各種“善意”的勸誡。
?
我就覺得非常奇怪,一個(gè)程序員,如果對(duì)自己寫的代碼沒有感情,怎么可能寫出漂亮的代碼來(lái)?同樣的道理,如果一個(gè)程序員,對(duì)自己的工作質(zhì)量沒有追求,又怎么可能成為高水平的程序員?一個(gè)前來(lái)應(yīng)聘的人,為了得到offer而寫的demo,就這種情況下,在寄出代碼之間都不認(rèn)認(rèn)真真的檢查檢查,這樣粗心大意的家伙,我怎么敢招?
?
總而言之一句話:“對(duì)代碼有感情,對(duì)質(zhì)量有追求”,這是成為好程序員的基本前提。
posted @
2006-06-18 02:23 讀書、思考、生活 閱讀(28093) |
評(píng)論 (14) |
編輯 收藏
我寫了一篇blog叫做《
招人不難》,很多朋友很贊同,也有的朋友不同意我的意見,他們很懷疑:“有bug的一律不要?沒有BUG的代碼是不存在的...blabla”
?
?
我們今天就來(lái)談?wù)劊粋€(gè)程序員,什么時(shí)候可以交出自己的代碼,并且可以自豪的對(duì)別人說(shuō):“我的代碼里面,沒有bug!”。
?
先說(shuō)傳統(tǒng)的做法,一個(gè)負(fù)責(zé)的程序員,應(yīng)該在交出代碼之前,自己跑好多次自己的代碼,左看右看,上看下看。直到交出去的時(shí)候,沒有一個(gè)人能夠發(fā)現(xiàn)其中的問題。這樣的能力一般只有天才才能具備,我以前
遇到過一個(gè)。但是,如果我企圖以這樣的標(biāo)準(zhǔn)來(lái)招人的話,那就是在發(fā)瘋,怎么還敢說(shuō)“招人不難”?
?
說(shuō)說(shuō)可行的辦法吧。一個(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ì)說(shuō),那如果他的測(cè)試用例很簡(jiǎn)單呢?豈不是不能說(shuō)明什么問題?怎么不能說(shuō)明問題呢?首先可以說(shuō)明:這是一個(gè)會(huì)寫測(cè)試用例的程序員!其次,我會(huì)看看他的測(cè)試用例的代碼,大概覆蓋了多少的功能特性。當(dāng)然,這是更進(jìn)一步的能力判斷。但是至少,他的代碼已經(jīng)達(dá)成了他自己的設(shè)計(jì)了呀。
?
所以:“有bug的一律不要”,意味著,你最好能夠自己證明自己沒有bug,否則,我如果找到一個(gè)bug,你就沒戲了。
posted @
2006-06-11 10:34 讀書、思考、生活 閱讀(29311) |
評(píng)論 (10) |
編輯 收藏
孟老師最近有點(diǎn)煩,
面試了一個(gè)剛畢業(yè)大學(xué)生,結(jié)果發(fā)現(xiàn)那家伙一問三不知。隨后的跟帖也是常見的感嘆:
“現(xiàn)在的大學(xué)生過于浮躁”
“真不明白本科都在學(xué)什么”
還有一位臺(tái)灣同胞說(shuō):“本來(lái)還以為只有在臺(tái)灣有這種情形,原來(lá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ú)非是談?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、代碼最能夠說(shuō)明問題,其他一切判斷都要在我看過他的代碼之后。一個(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ǔ)是,你自己的代碼水平要夠高。很多公司根本就沒有這樣的水平,只能靠筆試來(lái)判斷人家的水平。
?
我工作過的公司,曾經(jīng)有一個(gè)小伙,他的代碼,縮進(jìn)不是靠Tab,而是“按下空格鍵,任代碼隨意后退”,他的代碼,彎彎曲曲,難看至極。前兩天,他跟我說(shuō)“我筆試得了90多分,當(dāng)場(chǎng)拿到了4.5K的Offer。”可見,筆試是毫無(wú)意義的測(cè)試手段。
?
btw:還有問題,這樣招人效率不是很高,也比較累,緊急招人的情況不適用。當(dāng)然,緊急招人的項(xiàng)目,通常肯定是搞不好的。
posted @
2006-05-30 16:11 讀書、思考、生活 閱讀(29063) |
評(píng)論 (36) |
編輯 收藏