# 目录结构
不管大型还是小型项目,清晰的目录结构是开发过程的好的开始。以我常用的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设置
- 附录
- 计算机科学与技术
- 网站
- 书籍
- 工具