近幾周一直在加班,主要的工作內(nèi)容就是修改已離職人員代碼中的bug五嫂。
每天白天都有想罵街和砸電腦的沖動(dòng)肯尺,然而看著一個(gè)個(gè)bug修復(fù)则吟,跳過前人埋下的坑锄蹂,將整體代碼架構(gòu)重新梳理優(yōu)化,又有一種玩游戲時(shí)闖過一個(gè)個(gè)關(guān)卡的快感得糜。
造成這種bug橫飛的局面主要原因就是我在帶開發(fā)小組的時(shí)候朝抖,只關(guān)注了項(xiàng)目的進(jìn)度和軟件的主要功能流程,忽略了代碼具體實(shí)現(xiàn)細(xì)節(jié)治宣,因?yàn)殚_發(fā)人員也是有多年開發(fā)經(jīng)驗(yàn),項(xiàng)目起初的時(shí)候我看他們代碼寫都還可以坏怪,也給他們交待了一些代碼規(guī)范的要求,之后因?yàn)槊τ谡硇枨蠛蛥⑴c其它項(xiàng)目的工作打掘,就在沒看過他們的代碼鹏秋。
他們的工作完成后,我會(huì)看主要功能點(diǎn)枝誊,看功能點(diǎn)都實(shí)現(xiàn)了就沒做詳細(xì)檢查惜纸,就將工作標(biāo)記為“已完成”然后轉(zhuǎn)給開發(fā)人員進(jìn)行測(cè)試。
因?yàn)槲規(guī)Я藘蓚€(gè)開發(fā)人員都是外包公司新入職的員工祠够,入職不久到我們公司就參與到該項(xiàng)目粪牲,在過了三個(gè)月試用期之后,可能他們以為公司的工作比較累落君,就在轉(zhuǎn)正的時(shí)候提出了加薪亭引,外包公司人事主管 沒有答應(yīng),他們就沒有提交轉(zhuǎn)正資料纹冤,另找了其它起薪比現(xiàn)在高的工作购公。公司也沒有去留他們,他們就直接走了宏浩,留下了我認(rèn)為寫的還不錯(cuò)的代碼绘闷。
他們?cè)诘臅r(shí)候较坛,項(xiàng)目測(cè)試工作還沒有開始扒最,所以問題沒有暴漏。他們走后項(xiàng)目正好也開始了公司的內(nèi)測(cè)和客戶安排的第三方軟件測(cè)試法竞,bug不斷的涌現(xiàn)了出來强挫,因?yàn)闆]有多余的開發(fā)人員,我只能自己去修改bug呆细,此時(shí)才開始去看他們的代碼八匠,不看還好,一看立馬懵B了坑夯。
主要的問題有下面幾個(gè):
代碼命名比較任性抡四,有的控件名稱和變量直接用aa、bb淑履、cc沒有實(shí)際含義的字符命名藻雪。
函數(shù)的名稱和實(shí)際功能不符,比如有個(gè)返回值為void的InsertEntity的函數(shù),我以為只執(zhí)行了插入實(shí)體捷绒,其實(shí)里面寫了好多查詢邏輯將結(jié)果賦值給了公共變量暖侨。
函數(shù)從其它類模塊拷貝另一個(gè)類中,只進(jìn)行了邏輯的修改京郑,函數(shù)的命名沒有修改,更逗的是代碼注釋都沒有修改跟狱,比如一個(gè)班級(jí)的類你一看里面方法都是寫的和繳費(fèi)類相關(guān)的方法注釋户魏。
對(duì)面向?qū)ο笫怯玫牟缓茫瘮?shù)沒有進(jìn)行很好的封裝关翎,寫的時(shí)候固然省事鸠信,造成的結(jié)果就是代碼量過多,可讀性查爽茴。
好在這周的時(shí)間將他們的代碼模塊整理完畢了贞铣,但是在此過程中我也看了下項(xiàng)目中其它同事的代碼,那也是有些亂窍奋,我總結(jié)的上述問題酱畅,在他們的代碼中都有出現(xiàn),因?yàn)槭菐啄甑耐铝私讯海伊私獾剿麄兊乃讲恢掠谶@樣餐蔬,我就在吃飯的時(shí)候,隨口問了問仗考,你代碼中的這些問題你知道嗎词爬?他說“知道呀,現(xiàn)在不是忙嗎锅锨?哪有時(shí)間去做的那么細(xì)”,我又找部門經(jīng)理聊了聊“他說必指,他也很無奈顾画,時(shí)間比較緊研侣,就先不去計(jì)較那些細(xì)節(jié)了”。
做項(xiàng)目我們都知道“范圍庶诡、時(shí)間、成本扯俱、質(zhì)量”這寫點(diǎn)是互相制約的喇澡,我覺得不能為了圖快晴玖、圖敢進(jìn)度而去忽略了必要的質(zhì)量把控過程,比如代碼的走查呕屎,在項(xiàng)目上線的時(shí)候修復(fù)質(zhì)量問題同樣會(huì)花費(fèi)時(shí)間秀睛、成本。
我認(rèn)為項(xiàng)目開發(fā)階段就忽略質(zhì)量把控環(huán)節(jié)椭迎,無異于飲鴆止渴田盈,這次我也嘗到了苦果,還是那句話”步子邁得大了容易扯著蛋“,還是一步步來药蜻,該做的環(huán)節(jié)不能省瓷式。