# 命名規范
說到命名規范,個人認為包含了目錄,文件以及變量的命名。提前先說一句,命名規則沒有誰對誰錯,在項目中保持一致才是關鍵。
混亂或錯誤的命名不僅讓我們對代碼難以理解,更糟糕的是,會誤導我們的思維,導致對代碼的理解完全錯誤。相反,良好的命名,則可以讓我們的代碼非常容易讀懂,也能向讀者正確表達事物以及邏輯的本質,從而使得代碼的可維護性就大大增強,讀命名好的文章是非常流暢的,會有一種享受的感覺。
### 目錄
由于Windows, OSX下文件名不區分大小寫(linux是區分的),所以命名我們建議還是以全部小寫為主,個人習慣連字符使用`-`中劃線。比如: `my-project-name`
項目中的子目錄一般按照作用,使用常用單詞表示,有復數的情況,使用復數命名法,比如: `scripts`, `styles`, `images`和`data-modules`
### 文件
文件的命名我個人也是推薦使用`-`中劃線進行連接。和目錄的連接字符保持一致。但是linux系統文件推薦的文件命名一般是下劃線。
### 變量
變量命名有兩種方式:
- 下劃線命名法: `my_variable`
- 駝峰式命名法: `myVariale`
當然不同語言也是有不同的規范,網上也有很多大公司的命名規范可以參考。
### JavaScript
變量推薦駝峰式命名法
### CSS
推薦使用中劃線進行連接,CSS 語法本身就使用連字號作為連接(比如 `font-family`,`text-align`等)。
### 總結
良好的命名,以及良好的命名習慣,由于我們總是對每個概念的名稱要求非常苛刻,我們會思考這個名稱所表達的概念是否正確,該名稱是否正確表達了事物的本質或正確反映了某個行為的邏輯。所以,這種對命名的良好思考習慣,可以反過來幫助我們糾正之前的一些錯誤設計和代碼實現;比如,你之前有一個地方可能命名不太準確,然后你發現后面有另一個地方需要用這個名字,且更合理。所以你會發現這個名字對前面的地方就不適合了,從而你會去思考前面的地方可能需要用其他的名字,或者你會發現前面的地方的設計根本就是有問題的。這種就是名字可以促使你思考你的設計是否正確的例子。
### 參考資料
- [對代碼命名的一點思考和理解](http://blog.jobbole.com/77051/)
- [linux 文件名命名規則](http://xu020408.blog.163.com/blog/static/26548920097209315756/)
- 介紹
- 程序員基礎知識
- 字符編碼
- 技術名詞
- 語義化版本
- 命名規范
- 書寫文檔
- 開源協議
- 目錄結構
- 正則表達式
- 平凡之路
- 數據結構與算法
- 堆和棧
- 浮點數類型
- XML和JSON
- 算法學習之路
- 排序算法
- 代碼架構
- 設計模式
- 常用的Javascript設計模式
- 面向對象編程
- 繼承
- 多態
- 封裝
- 面向接口編程
- 代碼評審
- 六種量化你代碼的方式
- 程序員必備的代碼審查(Code Review)清單
- 服務器部署
- AWS簡介
- 網絡知識
- HTTPS, SPDY和 HTTP/2性能的簡單對比
- HTTP狀態碼
- 懂點設計
- 佳作賞析
- 無縫平鋪
- Sketch學習
- 設計與實現的平衡
- 寫點東西
- 使用gitbook
- 合格的PM
- 一個好的產品經理
- 產品經理的技能
- 團隊合作
- 關于招聘
- 培訓新人
- 領導能力
- 獲取知識
- MOOC
- Podcasts
- 英語學習
- 設計學習
- 前端學習
- iOS學習
- 游戲開發
- 關注健康
- 過勞檢測
- 關于睡眠
- 提升效率
- 學會閱讀
- 學會提問
- 善用搜索
- 學會寫作
- 時間管理
- 知識管理
- 文件管理
- 密碼管理
- 制作視頻
- 制作PPT
- 論音樂對效率的影響
- 程序員效率指南
- SOHO
- 創業資源
- Hacker
- 保護隱私
- 關于工作
- 找工作前需要思考的問題
- 原則與技巧
- 關于簡歷
- 其他方面
- 硬件相關
- 常用軟件
- Windows
- 硬件配置
- 系統安裝
- 常用軟件
- Mac
- 通用設置
- 權限問題
- alias設置
- 常用軟件
- 開發環境
- 快捷鍵設置
- 常用終端命令
- dotfiles
- Android
- 常用軟件
- 如何登錄美國區GooglePlay
- 開發工具
- git
- EditorConfig
- node
- shadowsocks
- ST3--Windows篇
- ST3--Mac篇
- gulp
- 字體的選擇
- Emacs
- WebStorm
- tmux
- Sketch
- Sketch中文學習資料
- Trello
- 使用Trello管理項目的經驗
- git進階
- 15分鐘學會使用Git和遠程代碼庫
- GitHub秘籍
- JetBrains
- IDE設置
- 附錄
- 計算機科學與技術
- 網站
- 書籍
- 工具