前言
寫這篇部落格的動機很簡單,就是我週末閒的無聊,爬了github上star數前1000的js專案的所有檔案的名稱,看看大佬們都喜歡給檔案和目錄取什麼名字,我跟著學兩招也好顯得我比較專業。
注意是js專案啊,你要是搞java的搞PHP的,也跟著學搞不好會被拿去祭天。
統計結果
排除掉了.babelrc
,package.json
,.github
這類檔案,得到了93117個檔名。
然後我對檔名計數,同一個專案中多次出現的名稱只計算一次。也就是1000個專案中,出現頻次最高的名稱也不會超過1000。
結果這裡寫不下,可以點選這裡看所有結果,我畫了個圖大家感受一下就行了
有點意外,出現次數最多的是test
,565次,其次才是是src
,556次
顧名思義,src
是原始碼,test
就是測試,同樣js
,css
,img
這些目錄名都很直觀。
但是也有一些不太直觀的名字在這些專案中也大量出現,比如legacy
,benchmarks
,fixtures
等等。
常用名稱
下面列出了一些常用的名稱,並不是按出現頻次排序,但是列出來的都是出現頻次非常高的 單複數形式都出現了的只列出次數最多的 注意,都是目錄名稱,不是檔名
-
src,source
原始碼,用src
居多 -
test,__tests__
測試檔案,也經常用__test__
,facebook的測試框架jest
預設的測試檔案目錄就是__test__
-
docs
文件 -
lib
庫檔案,library的縮寫 -
dist
用來放打包編譯後的檔案,應該是distribution的縮寫 -
build,scripts
構建指令碼 -
utils,tools,helpers
工具程式碼 -
controllers,views,middlewares,models
MVC對應的models,views,controllers,還有中介軟體middlewares -
router
路由 -
server
用來放服務端程式碼 -
adapters
介面卡,介面卡模式是一種很常用的設計模式
栗子:github.com/hubotio/hub… -
legacy
一般用來放相容歷史版本或相容舊瀏覽器的程式碼
栗子:github.com/julianshapi… -
config
配置檔案 -
benchmarks
benchmarks測試,又叫基準測試或效能測試。用來測試版本的效能變化 -
unit,spec
單元測試,一般在test
目錄下 -
e2e
端對端測試,一般在test
目錄下 -
assets,vendor
資源,一般用來放圖片或css檔案 -
static
靜態資源 -
examples,demo
示例 -
component
元件 -
plugins
外掛 -
bin
命令指令碼,命令列工具經常會用到 栗子:github.com/vuejs/vue-c… -
common
公用的檔案 -
packages
很多專案會打包出多個npm包,用來減小體積,一般會用packages
來放不同的包 栗子:github.com/babel/babel… -
misc
雜項,miscellaneous的縮寫
栗子:github.com/babel/babel… -
core
核心檔案
栗子:github.com/mrdoob/thre…
還有一大堆,總共500多個,我不一一解釋了,有興趣可以點選看統計結果
後話
其實大部分檔名看名字就能知道意思,也有一些是約定俗成的縮寫。 相比之下更有意義的是對變數和函式名稱的分析,我下次把這些專案的所有js檔案內容爬下來然後再做一個分析。
部落格都會先發布在github上,期待後續的同學點個star哦
我的部落格 github.com/hujiulong/b…