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