請(qǐng)忍住,編程中別自作聰明
人人都有很高的欲望在編程中表現(xiàn)自己的聰明。你想賣弄一下,用你高超的技巧寫(xiě)出一段最奇巧的代碼。它讓你得到少有的成就感。然而,我發(fā)現(xiàn),對(duì)于大多數(shù)人來(lái)說(shuō),這對(duì)于一個(gè)項(xiàng)目的長(zhǎng)期維護(hù)工作來(lái)說(shuō)并不是一件好事。
比如像Ruby這樣的語(yǔ)言,非常的靈活強(qiáng)大,使用這種語(yǔ)言耍聰明非常容易。而就像人們常說(shuō)的更大的能力伴隨的是更大的責(zé)任。所以,下面有一些對(duì)年輕程序員的諫言:在你的個(gè)人項(xiàng)目,娛樂(lè)項(xiàng)目中寫(xiě)出最奇巧的代碼,以此來(lái)滿足你的成就感,但在給客戶做的項(xiàng)目中,你有責(zé)任讓代碼通俗易懂,請(qǐng)寫(xiě)出常規(guī)的代碼。
下面是一個(gè)小例子,比較奇巧的代碼和常規(guī)代碼的區(qū)別。
奇巧的代碼
- def address_is_empty?(customer)
- [customer.street, customer.city, customer.state, customer.zip].any?{|prop| prop.nil? || prop.squish.empty? }
- end
你能理解嗎?
譯文鏈接:http://www.aqee.net/resisting-the-temptation-to-be-clever/