程式碼如人

發表於2019-05-11
風格
我們日常說的編碼規範,經常指的是 Style Guide,正確的翻譯是編碼風格。
既然是風格,就沒有對錯。就如現實生活中,我們每個人都有自己的穿著打扮一樣。可能有些人打扮土一點,但土就土,並不影響什麼。
很有意思的是,風格也沒有孰優孰劣。比如郭敬明的打扮,很多人很喜歡,會為其尖叫為其瘋狂。但在我看來,郭敬明的相貌讓我非常討厭,這還是男人嗎?太銼啦。
別去爭辯,喜歡和對錯無關,風格亦無高低之別。
編碼風格如此,文字排版風格也是一樣。
規範
風格之外,也有規範。比如穿著打扮,光怪陸離都沒問題,但在公眾場合不能不穿。規範經常很少很少,但的的確確存在。
對於 JavaScript 語言來說,通用的編碼規範基本沒有,有的話只有一條:要能執行。除此之外,還會有一些:
1,JavaScript 檔案的編碼必須是 UTF-8 。 

2,JavaScript 中不能出現 URL 硬編碼。
……
以上規範都是針對具體公司具體場景下的要求,除了以上這些規範,其他都是編碼風格問題。
社會中的規範,是為了維護基本秩序和道德底線。編碼規範,則是為了避免錯誤。
態度
程式設計師經常有個壞習慣:拿到別人的程式碼,喜歡首先按照自己的風格格式化一下。特別是用 Vim 的程式設計師,有些 Vim 程式設計師不光喜歡格式化他人的程式碼,還會在檔案頭留下作案憑證。
好的習慣是這樣的:
@agentzh: 給他人的開源專案提交補丁也是一樣:儘可能多地做足功課,弄清楚該專案使用的程式碼風格和測試集的組織,甚至是 git 提交日誌的書面格式,儘量讓我寫的東西酷似專案作者本人寫出的東西,這樣可以節約對方的時間,是對他的最大尊重。
這就如我們去朋友家裡做客,你可能會很不喜歡朋友家裡的裝修風格,但你最好不要自帶顏料桶去幫朋友重新裝修。道理不用多說,對他人的風格我們要懂得尊重,無論是在現實生活中,還是在寫程式碼時。
當然,認可的規範還是得遵守。比如別在公共場合裸奔,別在一個 UTF-8 團隊把檔案存成 GBK 編碼。
對待規範,要嚴格遵守。對待風格,要懂得尊重。
關鍵
一旦你擁有了開放的心態,一旦你開始懂得去欣賞他人的風格,你會發現世界是五彩繽紛的,你會開始越過一些表象,關注起一些真正值得關注的。
比如一個長得很醜的人,當你不再去看外表時,你會發現某些情況下醜人是會發光的,那種光十分漂亮,比很多帥哥漂亮百倍千倍。你會開始懂得生活,懂得真愛。
編碼也如此。不再去糾結四空格還是兩空格後,你會看到
1,程式碼的邏輯抽象是否正確? 

2,程式碼背後的資料模型是否可以優化?
3,這段程式碼是否應該放在這個檔案裡? 

4,這個模組的職責是否過大?
5,這個設計模式是否用得太僵硬? 

6,某個功能點是否應該用 CSS 而不是 JS 來實現?
7,這段程式碼是否忘了寫單元測試?……
一旦你開始能從他人的程式碼中,去糾結以上各種問題而不是程式碼風格時,你的功力經常就會大增。牛逼的程式設計師有個不怎麼對外說的祕密:
去更多地看程式碼,看優秀的程式碼。迫不得已才自己去寫少量程式碼。
最後
程式碼如人,風格的差異很正常,彼此尊重。相愛是靈魂的碰觸,別停留在表象。
檢視完整內容,請點此處
回覆

相關文章