在我先前的博客中,我主要講了我們的編碼風(fēng)格應(yīng)該適應(yīng)我們所處的業(yè)務(wù)領(lǐng)域。即不同的業(yè)務(wù)領(lǐng)域需要不同編碼風(fēng)格的軟件。例如,為防御體系寫的軟件必須強(qiáng)健穩(wěn)定,因?yàn)橐淮伪罎⒖赡芫蜁?huì)終結(jié)它的生命周期,而為市場(chǎng)交易寫的軟件,則必須可維護(hù),并且還可以添加廣告,通常這些項(xiàng)目和軟件的生命周期都非常短,所以這些軟件還必須可以重復(fù)使用。

  雖然我之前從沒(méi)看到過(guò)它被應(yīng)用于這些業(yè)務(wù)領(lǐng)域,但是關(guān)于編碼優(yōu)先順序這一觀點(diǎn)卻并不是最近才出來(lái)的。我第一次看到這一觀點(diǎn)是在Steve Maguire寫的一本由微軟出版社于1997年出版的書上,書名叫做《Debugging the Development Process》。

  在這本書中,Steve論述了關(guān)于在編寫軟件時(shí),我們應(yīng)該建立優(yōu)先順序的觀點(diǎn)。他列舉的他認(rèn)為需要考慮的優(yōu)先事項(xiàng)包括:

  現(xiàn)在說(shuō)說(shuō)那個(gè)時(shí)候的背景——1997年,那時(shí)的CD-RW驅(qū)動(dòng)器和媒介剛問(wèn)世,內(nèi)存還很昂貴,處理器還很慢,語(yǔ)種選擇還是C / C++。

  隨著時(shí)間的推移,現(xiàn)在的Java程序員通常毋需再考慮規(guī)模和速度,所以上面的列表可以縮減為:

 下面我們要討論的是上面這個(gè)列表是否還適用于今天,具體為……

 1.安全性

  雖然寫著的是“安全性”,但是Steve真正想說(shuō)的是編程范例和算法。有些技術(shù)是比其他的要來(lái)得更安全,例如,使用查表返回值比使用邏輯驅(qū)動(dòng)來(lái)計(jì)算數(shù)值要安全。我們?cè)O(shè)計(jì)時(shí)也需要考慮到安全性這一特點(diǎn)。

 2.可測(cè)試性和穩(wěn)健性

  對(duì)我來(lái)說(shuō),這兩者差不多。從定義上講,經(jīng)過(guò)充分測(cè)試的代碼就會(huì)比較穩(wěn)健。如果你正在使用測(cè)試驅(qū)動(dòng)開發(fā)(TDD),那么你也可以將這一條從列表中刪除,這是因?yàn)樗鼈冊(cè)诖诉M(jìn)程中是固有的。如果你是不喜歡使用TDD的程序員大軍中的一員,那么這一條應(yīng)該保留……

 3.可維護(hù)性

  這一條可以反映出一個(gè)人的代碼風(fēng)格、思維條理和清楚表達(dá)自己的能力。在風(fēng)格方面,大家可以借鑒Uncle Bob在《Clean Code>中的描述,這也是我最喜歡的書籍之一。Uncle Bob的風(fēng)格……怎么說(shuō)呢,整體感覺(jué)就是干凈。方法和類都很短,服從SRP和整潔的布局。這也是優(yōu)秀軟件的關(guān)鍵屬性。

 4.簡(jiǎn)單

  代碼簡(jiǎn)單是我們共同的目標(biāo)追求,但是這并不意味著寫出來(lái)的代碼是被過(guò)分簡(jiǎn)化的,我們只需要做到,代碼雖然最簡(jiǎn)化,沒(méi)有裝飾、沒(méi)有鍍金,也不具備以后可能需要添加的功能,但是依然可以完成工作。這種最簡(jiǎn)化代碼的觀點(diǎn)已然成為了敏捷社區(qū)的核心思想,甚至Shane Warden和James Shore也在他們的《The Art of Agile Development》一書中,花費(fèi)了一整章的篇幅來(lái)描述這一觀點(diǎn),包括它的概念,如“once and only once”以及“you ain’t gonna need it”。

 5.可重用性

  這一點(diǎn)我就不多說(shuō)了,我們總是希望現(xiàn)在寫的代碼以后還可以再次使用,省時(shí)省力。

 綜上所述

  首先,自1997年以來(lái),很多事情都發(fā)生了變化,這是毋庸置疑的。但是在我看來(lái),一些好的觀點(diǎn)依然值得我們學(xué)習(xí)和借鑒……

  英文原文:A Ranking Order for Coding Priorities 翻譯:codeceo

  哈爾濱品用軟件有限公司致力于為哈爾濱的中小企業(yè)制作大氣、美觀的優(yōu)秀網(wǎng)站,并且能夠搭建符合百度排名規(guī)范的網(wǎng)站基底,使您的網(wǎng)站無(wú)需額外費(fèi)用,即可穩(wěn)步提升排名至首頁(yè)。歡迎體驗(yàn)最佳的哈爾濱網(wǎng)站建設(shè)