開(kāi)發(fā)筆記11 2012-5-14 周一
當(dāng)系統(tǒng)到了收尾階段,各個(gè)模塊組裝起來(lái)后,測(cè)試,發(fā)現(xiàn)問(wèn)題,開(kāi)發(fā)人員修改BUG。這個(gè)時(shí)候,一個(gè)現(xiàn)象是常常修改一個(gè)小BUG,又牽出另一個(gè)新的小BUG,甚至把已經(jīng)好了的功能改壞掉。
測(cè)試人員苦惱,主管人員火大,開(kāi)發(fā)人員郁悶委屈。
測(cè)試人員:剛才才測(cè)試一次,都好了,一改又出現(xiàn)這么多老問(wèn)題,又要回歸測(cè)試一次,煩死了。
主管人員:白癡!怎么老動(dòng)到好了的功能,明天我要去客戶機(jī)房安裝,..........
開(kāi)發(fā)人員:項(xiàng)目這么緊,催命似的,修改錯(cuò)了有什么稀奇!你牛你來(lái)做,.............
作為一個(gè)主管,我也會(huì)訓(xùn)人;作為一個(gè)程序員,我也會(huì)出這樣的問(wèn)題。
做了這么多年開(kāi)發(fā),雖然從來(lái)沒(méi)有寫(xiě)出個(gè)有價(jià)值的程序來(lái),但基本的普通的需求還是實(shí)現(xiàn)了不少,加上現(xiàn)在公司特小,開(kāi)發(fā)、測(cè)試、項(xiàng)目管理我都有參與,還是比較理解這三方人員的處境。
畢竟問(wèn)題是開(kāi)發(fā)人員引起的,我要談?wù)勯_(kāi)發(fā)人員的問(wèn)題。很多開(kāi)發(fā)人員修改BUG,一通亂改,根本不顧及已有的代碼是否有耦合,痛痛快快改完,隨便測(cè)試一下,眼睛只注意這個(gè)BUG本身,完全對(duì)周圍功能視而不見(jiàn),然后往SVN上一svn commit,bug系統(tǒng)上關(guān)閉了,完事大吉。這種家伙又常常開(kāi)發(fā)經(jīng)驗(yàn)不豐富,十有八九把周圍修改到,產(chǎn)生功能變化或錯(cuò)誤。更有甚者,有些極少數(shù)家伙,根本不單元自測(cè),很自信,常常這種人脾氣還很大,測(cè)試人員發(fā)火,他還來(lái)氣。
底層邏輯功能如此,頁(yè)面部分更是如此。邏輯功能,勤快的寫(xiě)了CPPUNIT或JUNIT,能避免很多問(wèn)題,當(dāng)然覺(jué)悟和速度高到寫(xiě)了足夠的CPPUNIT或JUNIT了,這些個(gè)問(wèn)題其實(shí)很少發(fā)生在他身上了。但是頁(yè)面部分,我沒(méi)見(jiàn)過(guò)什么好方法回歸Html、JS、CSS、標(biāo)簽雜合出來(lái)的web頁(yè)面,不過(guò)既然是頁(yè)面,應(yīng)該所見(jiàn)即所得,很容易看出修改到的問(wèn)題,可是他們就不把目光一動(dòng)多幾個(gè)像素!
開(kāi)發(fā)者,如果你真的技術(shù)還可以,模塊緊湊性做好,修改時(shí)小心產(chǎn)生不良副作用,做完了之后有一定的單元測(cè)試,隨便來(lái)個(gè)簡(jiǎn)單的回歸測(cè)試,常常你就沒(méi)有那么多反復(fù)。
很多開(kāi)發(fā)人員總是把出錯(cuò)的原因歸結(jié)于項(xiàng)目時(shí)間緊,其實(shí)是自己功力不夠、習(xí)慣太差!
技術(shù)不是力量,使用好技術(shù)才是力量,能使用好是需要人具有好素養(yǎng)和好心態(tài)的,寫(xiě)出驚天動(dòng)地的系統(tǒng)是天才們的杰作,實(shí)現(xiàn)一個(gè)普通的業(yè)務(wù)系統(tǒng),你我都能勝任,問(wèn)題是你心到不到,方法對(duì)不對(duì),習(xí)慣好不好。
孔子說(shuō)過(guò):不患無(wú)位,患所以立。