計算機科學只存在兩個難題:緩存失效和命名


計算機科學只存在兩個難題:緩存失效和命名。

命名的藝術

 

“計算機科學只存在兩個難題:緩存失效和命名。” ——Phil KarIton

前言

命名一直是我編程過程中很頭痛的事,有時為了一個恰當的名稱是想了又想,還忍不住Google一下。命名真是一門藝術,好的命名那叫一個高大上。今天總結一些前端命名的規范,梳理一份自己的命名想法,從以下4種代碼風格的命名規范部分獲取靈感:

1. Google JavaScript代碼風格指南

2. Crockford代碼規范

3. Dojo Javascript 編程規范

4. jQuery核心風格指南

PS:未列出來的,代表沒對此種命名做規范。

JavaScript

1. 變量

Google JavaScript代碼風格指南 小駝峰命名規則
Dojo Javascript 編程規范 小駝峰命名規則
jQuery核心風格指南 小駝峰命名規則

這里有一點要澄清的事,網上很多Dojo Javascript 編程規范的資料說”變量名稱必須為小寫字母“,我半天不敢相信,直接找上Dojo官網文檔,里面根本就沒這么說,而是說是混合大小寫(就是小駝峰)。

——所以結論是,變量用”小駝峰命名規則“。

2. 常量

Google JavaScript代碼風格指南 大寫字母,單詞間加下划線,例:var SECONDS_IN_A_MINUTE = 60;
Dojo Javascript 編程規范 大寫字母,單詞間加下划線 或 大駝峰命名規則

好吧,其實Dojo Javascript 編程規范根本沒說”大寫字母,單詞間加下划線“,只是說了大寫字母,我看得不順眼加的,我就喜歡這種。

——所以結論是,常量用”大寫字母,單詞間加下划線“。

3. 函數

Google JavaScript代碼風格指南 小駝峰命名規則,例:functionNamesLikeThis
Dojo Javascript 編程規范 小駝峰命名規則,必須為動詞或者是動詞短語。例:obj.getSomeValue()
jQuery核心風格指南 小駝峰命名規則

這一次我非常贊同Dojo Javascript 編程規范命名方式,就必須要是動詞或者是動詞短語。函數也是方法,叫法不同而已。

——所以結論是,函數名用”小駝峰命名規則,必須為動詞或者是動詞短語“。

4. 類

Google JavaScript代碼風格指南 大駝峰命名規則,例:ClassNamesLikeThis
Dojo Javascript 編程規范 大駝峰命名規則

JavaScript本身沒有類這種東西,只不過是模擬出來的,本質還是個函數。不過命名的確是要不同, 另外構造函數命名跟類相同。

——所以結論是,類名用”大駝峰命名規則“。

5. 枚舉變量

Google JavaScript代碼風格指南 大駝峰命名規則,例:EnumNamesLikeThis
Dojo Javascript 編程規范 大駝峰命名規則

這個沒什么爭議。

——所以結論是,類名用”大駝峰命名規則“。

CSS

CSS的編寫有幾個准則:

1. 短ID或類命名,但確保他們不要太過隱晦,或直白(如#blue-button)。

2. 大型項目使用前綴,如#xyz-help, .xyz-column(分模塊)。

3. 單詞直接間隔使用”-“(NEC規范文檔里面就是用”-“)。

    即使是不用,使用其他駝峰式或下划線,那就必須統一風格,別一會用這用那。

自問自答

1. CSS,class或id的單詞間隔是使用橫杠或者下划線或駝峰式?

我覺得當中選擇了一種,那么整個風格就統一成那種, 不要像風像雲又像雨,什么都用。我建議是用橫杠,看起來舒服一些。

2. 文件名要不要駝峰式,首字母要大寫嗎?

首先文件名必須簡明扼要,別又臭又長。有很多方式:

1. 全部小寫,單詞間用下划線。例: photo_gallery.js

2. 全部小寫,單詞間用橫杠。例: photo-gallery.js

3. 全部小寫,單詞間不使用任何字符分割。例: photogallery.js

4. 小駝峰式。例: photoGallery.js

這個我真沒有確定要用哪一種,哪一種是最靠譜的,但應該是沒有以大寫字母開頭的。

3. 私有變量、函數要用下划線前綴嗎?

Dojo Javascript 編程規范 是規定必須要下划線前綴的,其他規范並沒有要求。而我覺得使用下划線前綴是比較好的,它很大的優點是很明確區分了公共變量和私有變量,一目了然(還有一點淡淡的逼格)。

 

總結

Crockford代碼規范並沒有對命名規范的說明,興許是我沒找到。相反的,Dojo Javascript 編程規范對於命名規范這部分着實詳盡,里面很多可借鑒地方,我取了一點東西。還有HTML的本身就不建議使用自定義標簽,所以也沒什么命名問題,至於屬性,統一風格就行了。

我在文章里面最常說的是統一風格,現實團隊協作時候,開始能先統一下規范,對整體代碼風格非常有好處的,自己看起來也舒服。最后命名需慎重,盡量簡明扼要、清晰易懂。

 

參考文獻

1. 《翻譯:谷歌HTML、CSS和JavaScript風格規范》 by 張鑫旭

2. 《Google JavaScript代碼風格指南

3. 《Crockford 編程規范》 by 阮一峰

4. 《規范自己的JavaScript書寫 – Dojo Javascript 編程規范》by 彬Go

 

本文為原創文章,轉載請保留原出處,方便溯源,如有錯誤地方,謝謝指正。

本文地址 :http://www.cnblogs.com/lovesong/p/5423425.html

 
分類:  javascript


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM