项目管理软件开发架构规范_第1页
项目管理软件开发架构规范_第2页
项目管理软件开发架构规范_第3页
项目管理软件开发架构规范_第4页
项目管理软件开发架构规范_第5页
已阅读5页,还剩19页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

软件开发架构规范

修订记录版本号修订人修订日期修订类型修订说明审核人批准人批准日期修订类型包含:新增、修改、删除。目录TOC\o"1-2"\h\z\u前言 1概述 1目的 1基本准则 1规范总结 1HTML规范 1CSS/less规范 4JS规范 6Vue规范 7React规范 10Java规范 11PAGEPAGE1/20前概述为提高团队协作效率,便于后台人员添加功能及前端后期优化维护,输出好的建议丰富此文档内容的,经讨论决定后可以更改此文档。目的的开发架构。基本准则web最快的解析速度。规范总结HTML文件应“<!DOCTYPE >”首行顶格开始推荐使“<!DOCTYPEhtml>”。charset,且与文件本身编码保持一致,推荐使用UTF-8编码<metacharset="utf-8"/>。(tab)获得一致展现的方法。、嵌套元素应当缩进一次(即四个空格),构。以上如图所示:class、HTML、HTMLclass,id,namedata-*src, for, type, href, title, altrole, aria-*、建议提倡使用语义化标签。tabletableclassa标签的href取值为空或不写href避免页面乱跳。、htmljavascript户面前。altfirefoxAlt属性。CSS/less、十六进制值应该全部小写,例如,#fff易于分辨。、避免为 0值指定单位。例如:是{margin:0},而不是{margin:0px }。CSSshift_tipsIE6JavaScript(JS、避免选择器嵌套层级过多,尽量少于3级。、选择器分组时,保持独立的选择器占用一行。、避免使用@import,与<link>相比,@import加额外的请求数,还会导致不可预料的问题。替代办法:使用多个元素;通过Sass或Less类似的CSS预处理器将多个CSS个文件;其他CSS文件合并工具;htmlaimg样式设置。margin、padding、border-left/-top/-right/-bottom设置,尽量使用短名称。border:0,border:none。2.2.10、background、font999),10-9010、不要在rgb()、rgba()、hsl()、hsla()或rect()(既加逗号也加空格色值(只加逗号,不加空格)。、建议对于经常出现的组件,尽量避免使用属性选择器(例如,[class^="..."])。浏览器的性能会受到这些因素的影响。、为了获得更准确的错误报告,每条声明都应该独占一行。每个属性的值在垂直方向对齐,这样便于多行编辑。JS注释;若是定义的全局注释或者函数等注释采用标准等文档注释。、函数命名统一采用驼峰命名法。、建议一次性修改样式属性;例如:、建议简短的判断,可用三元操作符替代if条件判断语句。、对字符串使用单引号''(因为大多时候我们的字符串。特别会出现")。varletvuereactlet。8、语句结束一定要加分号IEES38、语句结束一定要加分号 Vue如上图所示:、components、组件的data必须是一个函数。当在组件中使用data(除了newVue外的任何地方),它的值必须是返回一个对象的函数。v-forkey配合v-for。、避免v-if和v-for用在一起,永远不要把v-if和v-for用在同一个元素上。、只要有能够拼接文件的构建系统,就把每个组件单独分成文件。、应该优先通过prop和事件进行父子组件之间的通信,而不是this.$parent或改变prop。、建议不再使用双引号,静态字符串使用单引号,动态字符串使用反引号衔接。、为了统一和便于阅读,应该按<template>、<script>、<style>顺序放置。、统一使用import/export2.4.10ES6例如:handleClick=()=>{}PAGEPAGE10/20ReactES6例如:handleClick=()=>{}imgReactkey、没有子元素,自闭合。例如:<MyComclassName="box"/>2.5.5、不要给函数添加下划线前缀。2.5.6、如果属性值为true,可以直接省略。例如:<Foohidden/>2.5.7、标签中书写样式。例如:<Foostyle={{left:'20px'/>而不是<Foostyle=“'20px'”/>2.5.8、render中的标签class应为“className”,而不是“class”。Java|--cluster//集群功能模块|--cluster//集群功能模块||--com|--troila|--hermes//产品包名|--HermesServerApplication.java//启动类|--annotation//自定义注解|--aspect//自定义注解切面实现|--base//基类|--config//配置信息|--constant//自定义常量|--filter//过滤器|--init//启动初始化|--inteceptor//拦截器|--modules//业务模块|||||||||||||||--java||||||||||||||||--main|||||||||||||||||--hermes|--srcPAGEPAGE12/20| | | | | |--controller//控制器| | | | | |--entity//实体类| | | | | |--enums//枚举定义| | | | | |--mapper//mybaties数据库映射| | | | | |--model//数据传输对象| | | | | |--service//业务服务接口| | | | | |--impl//业务服务实现类| | | | |--host//主机管理功能模块| | | | |--service//服务管理功能模块| | | | |--status//状态监控功能模块| | | | |--system//系统管理功能模块| | | |--utils| | |--resources| | |--application-dev.yml//开发环境配置| | |--application-fat.yml//测试环境配置| | |--application-local.yml//本地环境配置| | |--application.yml//公共配置| | |--banner.txt//自定义启动画面| | |--logback-spring.xml//日志配置| | |--db//单元测试初始化脚本| | | |--data.sql//初始化数据| | | |--schema.sql//数据库创建表| | |--mapper//mybaties数据库映射mapper.xml| | | |--cluster| | | |--host| | |--META-INF//应用信息配置| | | |--perties| | |--static//静态资源| |--test| |--java| | |--com| | |--troila|--pom.xml//maven项目依赖配置|--pom.xml//maven项目依赖配置|--logs//项目日志存放目录| |--HermesServer| |--HermesServer-error.log| |--HermesServer-info.log|--resources|--application-test.yml//测试环境配置|--controller|--service|||--host|--controller//controller|--service //service|||--hermes|--HermesApplicationTests.java//测试基类|--modules//测试业务模块|--cluster||||||||||||||||||||、自定义注解类路径:com.troila.hermes.annotation2.6.2、切面类路径:com.troila.hermes.aspect2.6.3、基类,(基础类、父类)路径:com.troila.hermes.base2.6.4、常量类命名:模块(或功能)+Const给属性添加清晰的注释解释说明2.6.5、配置类2.6.6、错误信息枚举类命名:模块名+Enumcodemsggetter排错误代码Controller类的注释内容:描述、类名、作者、日期、版本代码路径:com.troila.hermes.modules.controllerBaseControllergetCurrentLoginUser()方法获取当前用户信息。类注解@Apitags:swagger标头@RestController@RequestMapping请求路径@Validated参数校验:rg90方法注解@SysLog系统日志@RequiresPermissions权限,里面填权限码@ApiOperationswagger@DeleteMapping请求方式,请求路径@ApiResponsesswagger@SysLog@SysLog@RequiresPermissions("dataset:delete")@ApiOperation(value="根据ID批量删除数据集")@DeleteMapping("/deleteDataSetByIds")@ApiResponses({命名类名:**ControllerPAGEPAGE16/20方法名(接口名):通俗易懂明确-增删改查:add**,delete**,update**,list**,get**By**2.6.8、DTO数据传输对象代码路径:com.troila.hermes.modules.model命名:模块名+功能描述+DTO示例:DataSetAddDTO实现序列化接口并添加UUID类注解:@ApiModelswagger,@Data(lombok@Accessors(chain=true)(返回该对象)/**/**:OOg700*/数据解析对应实体a) 2.6.9service接口类代码路径:com.troila.hermes.modules.serviceIService<对应表实体类>接口方法写明方法注释publicinterfacepublicinterfaceDataSetServiceextendsIService<DataSet>{/***实现类代码路径:com.troila.hermes.modules.service.impl注解:添加@Service、@Slf4jServiceImpl<Mapper,表实体>/**/**:lg、mapper1、接口类代码路径:com.troila.hermes.modules.mapperBaseMapper<对应实体类>注解:添加@RepositoryPAGEPAGE18/20@Repository@RepositorypublicinterfaceDataSetMapperextendsBaseMapper<DataSet>{/**2、实现Mapper文件a)路径:src/main/resources/mapper3、表对应实体类路径:com.troila.hermes.modules.entityUUID 注解:@Data(lombok)、@Accessors(chaintrue)(前对象)、@TableName("data_set")对应表名;特殊字段注解@Data@Accessors@Data@Accessors(chain=true)@TableName("data_set")publicclassDataSetimplementsSerializable{priatestaicfinllong=1;/***主键PAGEPAGE19/20、包规范项目基本包:com.troila.{项目英文名(较长时适当简化)}.{模块名(可选)}config:配置类startup:与服务启动相关的类client:提供客户端实现的相关类common:公共类,定义常量类,组件entity:数据库相关的实体类model:数据模型类(参数模型,数

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论