代码规范
开发涉及到很多不同的编码规范,主要是Java、html、js、css、SQL等,这些代码需要遵循本身的规范
后端目录规范
iuap平台组件和示例工程均采用Maven来构建、管理,推荐使用Maven工程的标准工程结构来组织。
1.1 后端工程基本结构
目录结构 | 描述 |
src/main/java | 工程的java源码文件 |
src/main/resources | 源码资源文件,比如:配置文件、多语资源文件等 |
src/main/filters | 过滤器资源目录,解决多套环境开发配置问题 |
src/main/webapp | web资源目录,与最终生成的war包结构一致 |
src/main/metadata | iuap元数据资源文件 |
src/test/java | 测试用例的源码文件 |
src/test/resources | 测试用例的资源文件 |
src/test/filters | 测试用例的过滤器 |
src/it | 集成测试代码所在的目录,主要是供别的插件使用 |
src/assembly | 组件(Assembly)描述符所在的目录 |
src/site | 站点文件 |
LICENSE.txt | 项目的许可文件 |
NOTICE.txt | 该项目依赖的库的注意事项 |
README.txt | 项目的readme文件 |
工程统一采用UTF-8编码,配置文件、属性配置文件统一采用UTF-8编码。示例如下:
注意事项: 1:src/main/resources包下的配置文件和属性文件会在maven打包的时候,打入到对应的jar包或者war包中,jar类型的组件中,尽量不要将配置文件打入jar包,请开发人员注意。如果是调试类型的配置文件,如jetty-context.xml、webdefault.xml等,建议放置在src/test/resources下,如下图:
2:pom文件中引用依赖时候注意,尽量同group下的组件,以属性的形式定义版本,避免切换版本时候多处修改
3:项目上如果遇到三方依赖组件的版本冲突问题,需要手动调整排除的组件,保证最终打包产品的三方组件无重复版本。可以借助工具中的pom文件的依赖关系查看来解决。
1.2 Web目录结构
一级目录 | 二级目录 | 三级目录 | 含义 |
style | 样式文件目录 | ||
global.css | 全局公共样式文件 | ||
default | 默认皮肤样式 | ||
css | |||
images | |||
theme1 | 皮肤1 | ||
theme2 | 皮肤2 | ||
vender | jquery、bootstrap等 | 各种前端框架的存放位置,包括jquery,bootstrap等 | |
uui | iuap前端框架 | ||
config | 配置文件目录,如放置requirejs的配置文件 | ||
components | comp1 | ||
(公共应用组件) | css | 组件样式文件 | |
js | 私有第三方框架 | ||
images | 图像文件 | ||
themes | 组件皮肤,自己内部处理 | ||
res | 国际化资源目录 | ||
pages | page1 | ||
(应用页面) | style | 样式目录 | |
res | 国际化资源目录 | ||
image | 图片目录 | ||
js | 私有第三方框架 | ||
WEB-INF | lib | jar包存放目录 | |
classes | 类编译输出路径 | ||
conf | 配置文件预留目录,采用Spring的配置文件方案,建议放在WEB-INF的classes目录| | ||
temps | 临时生成文件的放置位置 | ||
templates | 模板 | ||
index.html | 系统首页 | ||
static | 公共静态资源目录 | ||
util | 公共工具类目录 | ||
说明: (1)本目录结构是指站点的标准目录结构,与java工程下的src/main/webapp对应 (2)本目录是针对已经编译完成的前端资源,前端工程目录不尊从该目录规范
示例结构如下:
前端目录规范
目录 | 说明 |
config | 配置文件目录 |
pages | 功能页面 |
static | 静态资源(图片、视频等) |
style | 样式文件目录 |
vendor | 第三方库 |
WEB-INF | WEB应用的安全目录 |
index.html | 首页文件 |
index.js | 首页面js |
命名规范
- 文件、目录命名不能用中文,推荐使用数字和英文字母构成,只能使用数字和英文字母,不能以数字开头
- 文件、目录命名需要有一定的意义,尽量简短,名称符合各种主流操作系统的要求,如不要使用空格,不以”.”开头,不使用过长的文件名
- 文件名称的分隔,使用下划线或者采用首单词小写,其余单词首字母大写的方式分隔
- 包名命名格式:商业标记(com/org)/公司(yonyou)/产品线(iuap)/产品(可选)/组件 比如:iuap日志组件的包名:com.yonyou.iuap.log
- 开源产品,建议使用org开头,公司依然是yonyou;如以个人名义开发,不得使用yonyou
基于iuap开发的产品建议组件下包划分如下
- entity:业务实体
- repository:持久化层
- service:服务层
- web:web访问层
示例分层如下:
如果项目或者开发组上需要对整个工程按照模块拆分,请按照maven多模块的方式来组织工程结构,此示例为小型单个工程的示例。 多模块拆分有利于分布式服务的搭建,特别是工程较大的时候,多模块拆分和微服务的搭建便于针对不同的服务进行扩容和调整。
编程规范
JAVA编程规范
建议遵循 Google Java 编程风格,详细规则请参考以下链接: http://www.hawstein.com/posts/google-java-style.html
前端编程规范
建议遵从Google JavaScript 编码规范,详细贵族请参考以下地址: http://alloyteam.github.io/JX/doc/specification/google-javascript.xml