代码规范

开发涉及到很多不同的编码规范,主要是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

命名规范

  1. 文件、目录命名不能用中文,推荐使用数字和英文字母构成,只能使用数字和英文字母,不能以数字开头
  2. 文件、目录命名需要有一定的意义,尽量简短,名称符合各种主流操作系统的要求,如不要使用空格,不以”.”开头,不使用过长的文件名
  3. 文件名称的分隔,使用下划线或者采用首单词小写,其余单词首字母大写的方式分隔
  4. 包名命名格式:商业标记(com/org)/公司(yonyou)/产品线(iuap)/产品(可选)/组件 比如:iuap日志组件的包名:com.yonyou.iuap.log
  5. 开源产品,建议使用org开头,公司依然是yonyou;如以个人名义开发,不得使用yonyou
  6. 基于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