KISS(Keep it simple, stupid!)原则
简单性(避免复杂性)应该永远当作是一个重要的目标。写简单的代码,不但花费的时间少,错误少,而且修改起来也容易。
KISS原則,stupid是“笨”、“愚蠢”的意思,文中並沒有把這個翻譯出來。那句英文的意思,是“保持簡單和愚蠢”,所謂大巧若拙,即是此意。我也經常說“寫直接代碼”,其實“直接代碼”並非我的獨特說法,很多編程規範和建議上都是這麼說的,也是這個意思。
之所以特意挑這個出來說,是因為據我觀察,這裡太多人熱衷於玩技巧了,熱衷寫簡短代碼而不是直接代碼,以技巧高深為榮,能夠直白說出的事情非要繞個圈子說,以別人不懂為能。最典型的例子,是那種用移位代替乘除法的,以及用異或算符交換變量値的,很多人(包括某些“大拿”)都熱衷於推介和使用這類技巧,明明是乘除法不用,非要放棄直接邏輯寫移位代碼叫讀者花費時間思考到底這段代碼的邏輯是真移位還是在做乘除運算(讓讀者遲疑也屬於編碼大忌),他們覺得人家直接寫乘除法就沒技術含量了,殊不知移位算法受限於數據類型是有符號還是無符號,不是萬用的,而異或交換,除了不直接,也祗適用於整型,到別的數據類型,還得老老實實地用中間變量交換,如此則屬於“何必異類”範圍。諸如此類的例子,都正犯KISS原則。學編程以學出那些屠龍術為能,那是走火入魔了。
最後,附送1樓沒有提到兩條箴言給大家:
1.對於那些快速算法,我們總是可以拿一些速度差不多但是更容易理解的算法來替代它們。
2.當你為了加速,把一頁代碼變成幾條簡單的指令時,請不要忘了增加注釋,以使源碼的行數保持為一個常量。(代碼規模守恆定律)
[
本帖最后由 TonyDeng 于 2015-10-12 16:09 编辑 ]