濟(jì)南軟件開(kāi)發(fā):如何看待軟件開(kāi)發(fā)中的代碼重構(gòu)?
2016-03-28 15:00:35 訪問(wèn):
在軟件開(kāi)發(fā)過(guò)程中我們經(jīng)常會(huì)遇到這樣一個(gè)情況,軟件開(kāi)發(fā)人員時(shí)常會(huì)對(duì)代碼進(jìn)行重構(gòu),代碼重構(gòu)對(duì)于開(kāi)發(fā)人員來(lái)說(shuō)可能比較省時(shí)省力,但是對(duì)于軟件測(cè)試人員來(lái)說(shuō)無(wú)疑是個(gè)困難。其實(shí)重構(gòu)并不是完全打翻重來(lái),最開(kāi)始的設(shè)計(jì)也并非一無(wú)是處,軟件開(kāi)發(fā)是一個(gè)過(guò)程,軟件使用的人群、環(huán)境都可能在進(jìn)行中發(fā)生變化,當(dāng)初設(shè)計(jì)中的一些假設(shè)、條件都會(huì)變化,這就需要根據(jù)新的狀況做出調(diào)整。重構(gòu)是代碼層面的重設(shè)計(jì),代碼是軟件的實(shí)現(xiàn)方式,設(shè)計(jì)做出調(diào)整,代碼當(dāng)然也要調(diào)整。
對(duì)開(kāi)發(fā)人員來(lái)說(shuō)
1、重構(gòu)前要提出重構(gòu)的理由
雖然大部分重構(gòu)都是基于改進(jìn)代碼的良好愿望,但是若每次開(kāi)發(fā)人員換了模塊或者項(xiàng)目就要重寫(xiě)一遍相關(guān)程序,對(duì)于公司的資源是多么大的浪費(fèi)!
2、重構(gòu)前一定要通知到測(cè)試人員
測(cè)試人員最不能接受的其實(shí)不是重構(gòu),而是開(kāi)發(fā)人員重構(gòu)了代碼卻沒(méi)有通知測(cè)試人員,有時(shí)改動(dòng)兩行代碼的順序,或者注釋掉一句認(rèn)為冗余的代碼,開(kāi)發(fā)人員都覺(jué)得不能稱其為重構(gòu),一般就是順手就改了,但其實(shí)都有可能引入新的缺陷。所以要求開(kāi)發(fā)人員重構(gòu)前通知測(cè)試人員,最好都列舉出來(lái),而且,有的重構(gòu)因?yàn)橛绊懨娲?,?huì)影響測(cè)試時(shí)間的長(zhǎng)短或者測(cè)試重心,也需要及時(shí)通知測(cè)試人員及早計(jì)劃和安排。
對(duì)測(cè)試人員來(lái)說(shuō)
1. 以積極的心態(tài)去面對(duì)重構(gòu)
重構(gòu)雖然有風(fēng)險(xiǎn),短期內(nèi)也許需要更多測(cè)試的投入來(lái)保障。但從另一個(gè)角度也是一件好事,因?yàn)樗辽俦砻髁?strong>改進(jìn)代碼質(zhì)量的意愿。改進(jìn)代碼質(zhì)量不也是測(cè)試人員希望的嗎?
2. 通過(guò)積極推動(dòng)自動(dòng)化的方式,將重構(gòu)后回歸測(cè)試的代價(jià)降低
這里說(shuō)的自動(dòng)化測(cè)試并不僅僅是測(cè)試人員常用的功能層面的測(cè)試,還包括開(kāi)發(fā)人員的單元測(cè)試。在一個(gè)自動(dòng)化測(cè)試框架的保障下,重構(gòu)不一定會(huì)需要太多額外的測(cè)試代價(jià)。
對(duì)管理人員來(lái)說(shuō)
由開(kāi)發(fā)組長(zhǎng)主動(dòng)安排某個(gè)版本集中進(jìn)行重構(gòu),而非從下到上,由每個(gè)開(kāi)發(fā)人員在各個(gè)版本隨機(jī)提出重構(gòu),避免每次都進(jìn)行大規(guī)模的回歸測(cè)試。
重構(gòu)也是對(duì)原有代碼的完善,消除代碼中的腐臭味,讓代碼更健壯、效率更高、更易維護(hù),這是軟件開(kāi)發(fā)的規(guī)律決定的,沒(méi)有人能一次寫(xiě)出完善的代碼。所以面對(duì)軟件開(kāi)發(fā)中重構(gòu)的一些問(wèn)題我們都應(yīng)積極去解決?,F(xiàn)在濟(jì)南軟件開(kāi)發(fā)的公司那么多,想要完全管理的好也不是一件容易的事情,對(duì)于軟件公司來(lái)說(shuō),開(kāi)發(fā)過(guò)程中的管理也需要有條理性的進(jìn)行。
選購(gòu)指南:
本公司主要為山東地區(qū)的商業(yè)、企業(yè)單位及個(gè)人提供各類定制開(kāi)發(fā)服務(wù),如:濟(jì)南軟件定制開(kāi)發(fā)、濟(jì)南APP定制開(kāi)發(fā)、O2O軟件、微信定制開(kāi)發(fā)以及BOSS業(yè)務(wù)支撐平臺(tái)、公司管理系統(tǒng)、濟(jì)南管理軟件等整體的信息化解決方案,能夠滿足各種大中小型商業(yè)、企業(yè)及個(gè)人的需要。