Hibernate獲得成功的10大理由
發(fā)表時(shí)間:2024-06-01 來源:明輝站整理相關(guān)軟件相關(guān)文章人氣:
[摘要]下面是對(duì)Hibernate開發(fā)工作的個(gè)人想法,正是這些工作使得Hibernate如此迅速的得到廣泛的歡迎。 1、飛快的版本發(fā)布 保持活躍的開發(fā)速度,經(jīng)常進(jìn)行版本發(fā)布,甚至幾天之內(nèi)就從前一個(gè)版本開發(fā)到下一個(gè)版本。這樣是保證軟件遠(yuǎn)離Bug的最好的辦法,也可以讓用戶感到很放心,確信Hiberna...
下面是對(duì)Hibernate開發(fā)工作的個(gè)人想法,正是這些工作使得Hibernate如此迅速的得到廣泛的歡迎。
1、飛快的版本發(fā)布
保持活躍的開發(fā)速度,經(jīng)常進(jìn)行版本發(fā)布,甚至幾天之內(nèi)就從前一個(gè)版本開發(fā)到下一個(gè)版本。這樣是保證軟件遠(yuǎn)離Bug的最好的辦法,也可以讓用戶感到很放心,確信Hibernate的開發(fā)十分活躍,另外這樣做也有一大好處,就是可以發(fā)現(xiàn)哪些功能是用戶真正需要的。
2、回歸測(cè)試
我想現(xiàn)在整個(gè)Java社區(qū)一定都很重視自動(dòng)回歸測(cè)試。如果軟件的功能和設(shè)計(jì)有比較大的修改,那么一個(gè)綜合性的test suite對(duì)于軟件可維護(hù)性和穩(wěn)定性來說實(shí)在是太重要了。我們應(yīng)該有這樣的意識(shí):如果對(duì)軟件的一個(gè)新功能沒有進(jìn)行回歸測(cè)試,我們根本就不該去做它。
3、把一個(gè)功能做到最好
要么不做,要做,就一定做到最好。那些我們做不到最好的功能,我們根本不去做,扔給其他軟件去做吧。
4、避免過度設(shè)計(jì)
浪費(fèi)大量的時(shí)間和精力進(jìn)行軟件功能的抽象和擴(kuò)充軟件的靈活性,還不如多花點(diǎn)時(shí)間來解決你的用戶面臨的實(shí)際問題呢!簡(jiǎn)單一點(diǎn)! 軟件能跑起來就OK,不要嘗試去解決你的用戶根本不關(guān)心的問題。就算你的軟件設(shè)計(jì)的不夠優(yōu)雅也沒有關(guān)系,反正還是initial階段嘛!以后再 refactor,你應(yīng)該關(guān)注的問題是及時(shí)的把有用的功能給做出來。
5、集權(quán)
在你需要由民主投票來下決定之前,至少你已經(jīng)把軟件輪廓做好了。軟件開發(fā)需要由一兩個(gè)開明的人來領(lǐng)導(dǎo),這樣可以保證軟件開發(fā)的連貫性而不至于產(chǎn)生太大的分歧,可以保證開發(fā)團(tuán)隊(duì)集中火力把要實(shí)現(xiàn)的功能做到最好。我覺得,OSS軟件最大的風(fēng)險(xiǎn)就是意見不統(tǒng)一,攤子鋪的太大,結(jié)果最后搞的什么都沒有做好。
。ㄗg者按:非常贊同,凡是成功的OSS軟件,都是在某個(gè)牛人已經(jīng)把軟件做好了之后,發(fā)布出來,然后由大家往里面添加功能的,并且在牛人的領(lǐng)導(dǎo)下不斷進(jìn)步。缺乏牛人的OSS軟件都不算很成功,比如Mozilla)
6、文檔
沒有什么比文檔更重要的了。如果你的用戶不知道你的軟件有這么一個(gè)功能,就等于沒有這個(gè)功能,干脆把它去掉得了,省得給源代碼增加復(fù)雜度。
7、避免標(biāo)準(zhǔn)化
好的標(biāo)準(zhǔn)可以帶來軟件的互用性和可移植性,壞的標(biāo)準(zhǔn)能夠窒息軟件創(chuàng)新!“支持XXX標(biāo)準(zhǔn)”根本就不是真實(shí)的用戶需求,特別是當(dāng)這個(gè)XXX標(biāo)準(zhǔn)是那些在其位不謀其政“所謂”的專家委員會(huì)制訂出來的。(譯者按:莫非指Sun,IBM等幾個(gè)big name?)最好的軟件是在不斷的嘗試,不斷的出錯(cuò),不斷的經(jīng)驗(yàn)積累的過程中產(chǎn)生的。 事實(shí)上的標(biāo)準(zhǔn)往往更加貼近用戶需求。
8、10分鐘之內(nèi)把Hibernate跑起來
潛在的Hibernate的用戶在他們下載了Hibernate,第一次使用的時(shí)候根本就不可能花半個(gè)小時(shí)那么多時(shí)間來安裝、配置和 troubleshooting,他們?cè)缇蛦适Я藢?duì)Hibernate的興趣了。我們的口號(hào)就是新用戶(假設(shè)有足夠的JDBC知識(shí))5分鐘之內(nèi)把 Hibernate的Demo跑起來,而他們能夠在1個(gè)小時(shí)之內(nèi)寫出“Hello World”式的最簡(jiǎn)單的Hibernate程序并且正常運(yùn)行。
9、開發(fā)人員的責(zé)任感
用戶總是不可避免的碰到問題,開發(fā)團(tuán)隊(duì)有責(zé)任有義務(wù)提供幫助。用戶讓我們知道了文檔的漏洞,用戶讓我們知道了測(cè)試用例的小bug。此外,沒有用戶來用我們的Hibernate,我們還開發(fā)它做什么,不是浪費(fèi)時(shí)間嗎!
有個(gè)關(guān)于bug的笑話:用戶根本不介意發(fā)現(xiàn)新功能的bug(譯者按:Windows的用戶好像都是如此),只要你能迅速的改掉bug!柏(zé)任感”意味著 bug修復(fù)應(yīng)該在1周之內(nèi)。從收到bug報(bào)告到bug修復(fù)代碼提交到CVS上要做到平均在24小時(shí)左右,這才是一個(gè)理想的目標(biāo)。
10、易用的、可更新的wiki網(wǎng)頁(yè)
<>