# 目錄結構
不管大型還是小型項目,清晰的目錄結構是開發過程的好的開始。以我常用的web項目為例,搭建一下目錄結構.
### 總覽
~~~
├── src
│ ├── js
│ │ ├── main.js
│ │ ├── plugins.js
│ │ └── vendor
│ │ └── modernizr-2.8.3.min.js
│ ├── css
│ │ └── main.css
│ ├── img
│ ├── favicon.ico
│ ├── humans.txt
│ ├── index.html
│ ├── 404.html
│ ├── apple-touch-icon.png
│ ├── browserconfig.xml
│ ├── crossdomain.xml
│ ├── robots.txt
│ ├── tile-wide.png
│ └── tile.png
├── test
│ ├── file_content.js
│ └── file_existence.js
├── dist
│ ├── 404.html
│ ├── LICENSE.txt
│ ├── apple-touch-icon.png
│ ├── browserconfig.xml
│ ├── crossdomain.xml
│ ├── css
│ │ ├── main.css
│ │ └── normalize.css
│ ├── favicon.ico
│ ├── humans.txt
│ ├── img
│ ├── index.html
│ ├── js
│ │ ├── main.js
│ │ ├── plugins.js
│ │ └── vendor
│ │ ├── jquery-1.11.2.min.js
│ │ └── modernizr-2.8.3.min.js
│ ├── robots.txt
│ ├── tile-wide.png
│ └── tile.png
├── CHANGELOG.md
├── CONTRIBUTING.md
├── LICENSE.txt
├── README.md
├── gulpfile.js
├── package.json
~~~
目錄結構清晰是首要目標,至于命名只要能達到表意的目的即可。
### src
此目錄專注于開發,存放的都是源文件,不需要壓縮合并。目錄下主要分為:
- css(styles): 樣式文件
- js(scripts): 腳本文件
- img(images): 圖片素材
- font(fonts): 存放字體
- 其他: 按照分類不同劃分目錄
文件名上面,簡寫的話都使用單數形式,全稱的話使用復數形式。
### dist
此目錄為編譯生成目錄,用于部署環境,目錄結構和src保持一致。
### test
此目錄為測試目錄,存放和項目測試相關的文件。
### doc
如果存在文檔說明,放置在此目錄下。
### 其他根目錄文件
根目錄下的其他文件,一般還有:
- .editorconfig: 代碼樣式統一格式文件
- .jscsrc:
- .travis.yml:
- .jshintrc: jshint配置文件
- csscomb.json: csscomb配置文件
- .gitignore: git忽略文件
- .gitattributes: git屬性文件
- .bowerrc
- bower.json
- package.json
- gruntfile.js/gulpfile.js
### 參考資料
- [Baidu EFE team](https://github.com/ecomfe)
- [Baidu EFE team: spec](https://github.com/ecomfe/spec)
- [HTML5-boilerplate](https://github.com/h5bp/html5-boilerplate)
- 介紹
- 程序員基礎知識
- 字符編碼
- 技術名詞
- 語義化版本
- 命名規范
- 書寫文檔
- 開源協議
- 目錄結構
- 正則表達式
- 平凡之路
- 數據結構與算法
- 堆和棧
- 浮點數類型
- 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設置
- 附錄
- 計算機科學與技術
- 網站
- 書籍
- 工具