人人都有很高的欲望在編程中表現自己的聰明。你想賣弄一下,用你高超的技巧寫出一段最奇巧的代碼。它讓你得到少有的成就感。然而,我發現,對于大多數人來說,這對于一個項目的長期維護工作來說并不是一件好事。
比如像Ruby這樣的語言,非常的靈活強大,使用這種語言耍聰明非常容易。而就像人們常說的更大的能力伴隨的是更大的責任。所以,下面有一些對年輕程序員的諫言:在你的個人項目,娛樂項目中寫出最奇巧的代碼,以此來滿足你的成就感,但在給客戶做的項目中,你有責任讓代碼通俗易懂,請寫出常規的代碼。
下面是一個小例子,比較奇巧的代碼和常規代碼的區別。
奇巧的代碼
def address_is_empty?(customer)
[:street, :city, :state, :zip].any?{|method| customer.send(method).nil? || customer.send(method).squish.empty? }
end
常規代碼
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/