編寫優(yōu)秀代碼的10個(gè)技巧
作為程序員,寫代碼是需要一種崇高無(wú)上的精神來(lái)支撐的,寫出優(yōu)秀的代碼,更需要你有深厚的底蘊(yùn)和良好的編碼習(xí)慣。在介紹寫優(yōu)秀代碼的10個(gè)技巧之前,我們先來(lái)探討一下什么樣的代碼才是優(yōu)秀的代碼。
穩(wěn)定可靠(Robustness)
可維護(hù)且簡(jiǎn)潔(Maintainable and Simple Code)
高效(Fast)
簡(jiǎn)短(Small)
共享性(Reusable)
可測(cè)試性(Testable)
可移植性(Portable)
面對(duì)以上的目標(biāo),我們總結(jié)了以下10個(gè)寫代碼的技巧,希望對(duì)你有所幫助。
1、百家之長(zhǎng)歸我所有
其實(shí)寫代碼的方式有很多,每個(gè)人都有自己的風(fēng)格,但是眾多的風(fēng)格中總有一些共性的、基本的寫代碼的風(fēng)格,如為程序?qū)懽⑨?、代碼對(duì)齊,等等。是不是編程規(guī)范?對(duì)就是編程規(guī)范。
2、取個(gè)好名字
取個(gè)好的函數(shù)名、變量名,***按照一定的規(guī)則起名。還是編程規(guī)范。
3、凌波微步,未必摔跤
這里我用“凌波微步”來(lái)形容goto語(yǔ)句。通常,goto語(yǔ)句使程序跳來(lái)跳去,不容易讀,而且不能優(yōu)化,但是在某種情況下,goto語(yǔ)句反而可以增強(qiáng)程序的可讀性。Just go ahead,not go back。
4、先發(fā)制人,后發(fā)制于人
Defensive Coding指一些可能會(huì)出錯(cuò)的情況,如變量的初始化等,要考慮到出現(xiàn)錯(cuò)誤情況下的處理策略。測(cè)試時(shí)要多運(yùn)行幾個(gè)線程。有些程序在一個(gè)線城下運(yùn)行是正常的,但是在多個(gè)線程并行運(yùn)行時(shí)就會(huì)出現(xiàn)問(wèn)題;而有些程序在一個(gè)CPU運(yùn)行幾個(gè)線程是正常的,但是在多個(gè)CPU下運(yùn)行時(shí)就會(huì)出現(xiàn)問(wèn)題,因?yàn)閱蜟PU運(yùn)行線程只是狹義的并行,多CPU一起運(yùn)行程序,才是真正的并行運(yùn)算。
5、見(jiàn)招拆招,滴水不漏
這里的Error Case(錯(cuò)誤情況),是指那些不易重視的錯(cuò)誤。如果不對(duì)Error Case進(jìn)行處理,程序在多數(shù)情況下不會(huì)出錯(cuò),但是一旦出現(xiàn)異常,程序就會(huì)崩潰。
6、熟習(xí)劍法刀術(shù),所向無(wú)敵
用“劍法刀術(shù)”來(lái)形容一些API是因?yàn)樗鼈兌际墙?jīng)過(guò)了很多優(yōu)秀開(kāi)發(fā)人員的不斷開(kāi)發(fā)、測(cè)試,其效率很高,而且簡(jiǎn)潔易懂,希望大家能掌握它,熟悉它,使用它。是不是象我們的ULIB。
7、雙手互搏,無(wú)堅(jiān)不摧
這里的測(cè)試不是指別人來(lái)測(cè)試你的代碼,而是指自己去測(cè)試。因?yàn)槟闶菍懘a的原作者,對(duì)代碼的了解最深,別人不可能比你更了解,所以你自己在測(cè)試時(shí),可以很好地去測(cè)試哪些邊界條件,以及一些意向不到的情況。
8、活用斷言
斷言(assertion)是個(gè)很好的調(diào)試工具和方法,希望大家能多用斷言,但是并不是所有的情況下都可以用到斷言。有些情況使用斷言反而不合適。
9、草木皆兵,不可大意
是指在寫代碼時(shí),要小心一些輸入的情況,比如輸入文件、TCP的sockets、函數(shù)的參數(shù)等等,不要認(rèn)為使用我們的API的用戶都知道什么是正確的、什么是錯(cuò)的,也就是說(shuō)一定要考慮到對(duì)外接口的出錯(cuò)處理問(wèn)題。
10、***境界,無(wú)招勝有招
意思就是說(shuō)盡量避免寫太多的代碼,寫的越多,出錯(cuò)的機(jī)會(huì)也越多。***能重用別人開(kāi)放的接口函數(shù)或直接調(diào)用別人的api。
本文鏈接:http://www.apkbus.com/android-11386-1.html















 
 
 









 
 
 
 