在我的程序員生涯中,悟出了以下的一個(gè)程序編碼流程;期間也接觸了很多其它的理論和想法,但是我還是覺(jué)得這是最適合我的。
大致的樣式是這樣的:
第一步:多思考
有多少朋友會(huì)覺(jué)得,噼噼啪啪鍵盤(pán)節(jié)奏的快慢代表了程序生產(chǎn)力的高低?如果你也是這樣想的,我希望你能在遇到問(wèn)題時(shí),先放一放,靜心想一想。
如果思考的時(shí)候,覺(jué)得無(wú)從下手,不妨先問(wèn)問(wèn)自己:究竟要做什么? 一旦安靜下來(lái),這個(gè)問(wèn)題的答案將會(huì)使我們辨清方向或者重新考慮問(wèn)題的處理方法。
下一步,我會(huì)建議思考這個(gè)問(wèn)題:自己是否把簡(jiǎn)單問(wèn)題復(fù)雜化了? 嘗試用最簡(jiǎn)單的辦法來(lái)解決問(wèn)題是每個(gè)程序員應(yīng)該為之努力的目標(biāo)。但當(dāng)我們掌握了足夠多的學(xué)識(shí)時(shí),用如此簡(jiǎn)單的方法來(lái)解決問(wèn)題是否大材小用了?如果這樣想,或許最后找上我們的卻是一堆堆越來(lái)越復(fù)雜的問(wèn)題。嘗試轉(zhuǎn)一下思路,用簡(jiǎn)單的辦法解決問(wèn)題會(huì)導(dǎo)致最壞結(jié)果是什么呢?是比不能解決問(wèn)題更差嗎?學(xué)會(huì)跳出牛角尖,這一點(diǎn)很重要。
因此,在遇到問(wèn)題時(shí),不妨多問(wèn)問(wèn)自己以上幾個(gè)問(wèn)題。而當(dāng)進(jìn)行到一個(gè)瓶頸位置,進(jìn)退維谷時(shí),我會(huì)考慮進(jìn)入下一步。
第二步:多做
我覺(jué)得這是最有趣的一步。因?yàn)楹芏鄷r(shí)候,編程對(duì)于我們來(lái)說(shuō)更像是打游戲,不是嗎?但是要避免過(guò)猶不及。正如前述,當(dāng)發(fā)覺(jué)做了無(wú)用功時(shí),應(yīng)該適當(dāng)轉(zhuǎn)變思路,并再次提醒自己:是否朝著既定的方向前進(jìn)。
然后,我們接著做下一步。
第三步:多測(cè)試
實(shí)不相瞞,這一步不僅沒(méi)有編碼那么趣味盎然,甚至還十分讓人煩惱。
但是,沒(méi)有測(cè)試環(huán)節(jié)的項(xiàng)目,我建議還是在個(gè)人的開(kāi)源項(xiàng)目中進(jìn)行吧;因?yàn)椴唤?jīng)過(guò)測(cè)試而發(fā)布的,應(yīng)該沒(méi)有多少人敢用。
除了煩惱,測(cè)試可能也是編碼過(guò)程中最復(fù)雜的一個(gè)環(huán)節(jié)了。有別于編程那樣的所見(jiàn)即所得,要找出最優(yōu)的測(cè)試方案可得花上成倍的努力。測(cè)試的特點(diǎn)就是充滿不確定性。
有的朋友采用的是測(cè)試驅(qū)動(dòng)的開(kāi)發(fā)方法,我的看法是:這是好的,但請(qǐng)堅(jiān)持到底。對(duì)于我來(lái)說(shuō),如果是高度算法集中的項(xiàng)目,我也會(huì)采用該方法。
第四步:再來(lái)一遍
問(wèn)題的解決很多時(shí)候都不是一蹴而就的,一遍下來(lái)的循環(huán)和反饋是至關(guān)重要的。打造軟件的過(guò)程是一個(gè)不斷學(xué)習(xí)的過(guò)程,不斷學(xué)習(xí)加強(qiáng)技術(shù)和問(wèn)題處理的能力。一個(gè)好的策略是遵循計(jì)劃->執(zhí)行->反思的過(guò)程來(lái)進(jìn)行。
小結(jié)
以上就是我個(gè)人的一些有關(guān)編碼流程的見(jiàn)解。時(shí)至今日,隨著越來(lái)越多的便捷開(kāi)發(fā)工具的推出,以上這四步流程走得更順暢了。所以,請(qǐng)不妨試試吧。
英文出自:Dzone