开发规范及框架说明文档
1.框架说明书

1.框架说明书
作者:古开霞*流程内文档责任人
文档负责人:各开发小组负责人
前置条件:《总体方案设计》《子系统概要设计》
目的
本文档用于描述框架设计方案,统一开发人员设计思路,规范开发人员操作标准,提供设计依据。
内容概述
本文档包含iOS、Android、Web、Java等各模块的框架说明书,需要详细描述该项目所使用的框架类型、版本号,选择此框架的原因,该框架的优劣之处,以及开发时应该使用哪些技术。
可通过框架示意图、框架各层详细说明(包括各层含义、技术选型、技术特点等)、框架规范说明等各方面进行详细论述。
参考格式
第一章总体概述
第二章框架说明
注:文档格式仅作参考,实际编写中根据具体情况增加或删除。
开发规范文档

开发规范文档一、引言开发规范文档是为了规范开发人员在软件开发过程中的行为和规范,以确保软件开发的高效性和质量。
本文档旨在对开发规范进行详细说明,以便开发人员在日常工作中遵循。
二、命名规范1. 变量命名:变量名应具有描述性,能清晰表达其用途,采用驼峰命名法。
2. 函数命名:函数名应具有描述性,能清晰表达其功能,采用驼峰命名法。
3. 类命名:类名应具有描述性,能清晰表达其用途,采用驼峰命名法。
4. 文件命名:文件名应具有描述性,能清晰表达其内容,采用小写字母和下划线组合命名。
三、代码规范1. 缩进和空格:采用4个空格进行缩进,禁止使用Tab键。
2. 注释规范:代码中应有清晰的注释,注释应该对代码的功能、用途进行解释。
3. 异常处理:对可能出现的异常情况进行处理,避免程序崩溃。
4. 代码复用:尽量避免重复编写相同功能的代码,提取公共部分进行封装和复用。
四、数据库规范1. 表设计规范:数据库表应该具有清晰的结构设计,避免冗余和不必要的字段。
2. 索引规范:对经常用于查询的字段添加索引,提高数据库查询效率。
3. 数据备份规范:定期对数据库进行备份,以防数据丢失或损坏。
五、安全规范1. 数据加密:对用户的敏感信息进行加密存储,确保数据安全。
2. 权限控制:对不同角色的用户进行权限控制,确保用户只能访问其权限范围内的数据和功能。
3. 防止SQL注入:对用户输入的数据进行过滤和检验,避免SQL注入攻击。
六、测试规范1. 单元测试:对每个模块进行单元测试,确保模块功能的正确性。
2. 集成测试:对整个系统进行集成测试,确保各模块之间的协作正常。
3. 性能测试:对系统进行性能测试,确保系统在高并发情况下的稳定性和性能。
七、版本控制规范1. 版本命名规范:版本号应该具有一定的规范,能够清晰表达版本的变化和更新内容。
2. 分支管理规范:对不同的功能和模块进行分支管理,确保开发过程的清晰和有序。
八、总结开发规范文档对于软件开发团队的工作至关重要,遵循规范能够提高开发效率和质量,减少不必要的错误和问题。
开发规范与要求范文

开发规范与要求范文开发规范是一系列的编码原则、技术规范、文档规范等的集合,旨在确保团队开发的代码质量、可读性、可维护性、可扩展性,并提高团队合作效率。
本文将介绍开发规范的要求以及其对项目开发的重要性。
一、命名规范1.变量、函数、方法的命名应具有清晰的表达意义,使用有意义的英文单词或单词的组合。
2.类名、接口名应使用名词或名词词组,并使用大写开头的驼峰命名法。
3.常量名应使用大写字母加下划线的形式,如:MAX_COUNT。
4.避免使用容易混淆的命名,如:i1,l1,O0等。
二、缩进与排版规范1. 使用合适的缩进风格,如四个空格或一个Tab,统一团队内部的缩进风格。
2.代码块的开始和结束要与其对应的可见的包含结构对齐。
3.行宽应控制在80-120个字符之间。
三、代码注释规范1.对于代码中的每个模块或功能,必须提供必要的注释说明。
2.注释应简明扼要、准确清晰,解释代码的关键逻辑以及设计思想。
3.注释应使用英文书写,并遵循一定的规范,如在注释前使用特定的修饰符以区分说明的对象。
四、代码规范1.遵循单一职责原则,每个函数、方法只负责一个功能,尽量避免一个函数或方法实现多种功能。
2.遵循开闭原则,尽量使用扩展而非修改已有的代码。
3.避免使用变量的魔法数值,应提取为常量或配置项。
4.代码尽量简单清晰,可读性强,避免冗余的代码和复杂的逻辑结构。
五、测试规范1.编写单元测试代码,保证代码的正确性和稳定性。
2.合理组织测试用例,覆盖代码的各种情况,包括正常情况和异常情况。
3.定期运行测试用例,及时发现和解决问题,确保程序的健壮性。
六、文档规范1.编写开发文档和用户文档,清晰描述程序的设计思路、开发流程、代码的使用方法等。
2.文档内容应准确、详尽,方便其他开发人员和用户了解项目的细节。
开发规范对于项目开发具有重要的作用:1. 提高代码质量和可维护性:规范的代码易于阅读和理解,减少错误和bug的产生,提高代码的可维护性和可读性。
JAVA技术架构及开发规范文档

JAVA技术架构及开发规范文档1引言1.1目的通过对系统整体架构和技术规范的描述.为下一步大规模设计开发提供基础和规范。
也希望广大JAVA项目开发的程序猿们提出宝贵的建议.不断完善。
1.2对象与范围架构师.高级工程师.项目经理.项目管理人员,开发人员.测试人员。
1.3概述系统实现方案,以实现功能为主.效率性能为辅. 但设计兼顾未来性能的扩展,以减少未来重构的工作量。
wcbapp按逻辑分为两层.第一层用户服务接入. 第二层内部服务。
第一层项目不分模块,以二级目录形式表示不同模块,第二层根据不同服务分模块,第一层和第二层之间使用hessian通信。
第一层和第二层独立部署.第二层的不同模块也可以独立部署。
下项目考虑第一层分模块的二级域名独立部署. 并实现单点登荥。
web app采用集群负载均衡,数据库采用负载均衡和读写分离.以满足一定的性能需求。
文档描述了各层结构和模块使用的技术和框架。
最后描述了开发的规范和用到的开发工具。
文档只是描述了项目的架构.2系统架构图系统架构如下3层次和模块3.1前端负载均衡Nginx是一个口碑很好的开源免费WEB服务器,国内很多大型网站都转选Nginx平台.比如將讯,豆瓣等。
Nginx可以实现动靜分离和web app的负载均衡。
3.1.1动静分离动靜分离可以很好得分担服务器的负载,有两种方式实现动靜分离。
1. 使用2级域名,配置专门的靜态文件服务器。
2. 利用Nginx的url转发功能,把静态请求转发到靜态服务器或在Nginx本地込理.动态请求转发到应用服务器。
我们目前部署上采用第二种方式.同时也实现第一种方式。
系统可以配置动态服务器地址和静态服务器地址,在生成页面时获取这两个地址.对图片、js脚本、css和靜态页面使用静态配置生成url,对ajax清求和动态页面使用动态服务器地址生成urlo3.1.2负载均衡Nginx可以配置upstream服务器组,实现组内的负载均衡。
开发规范文档

开发规范文档开发规范文档一、概述开发规范文档旨在规范开发团队的编码和开发标准,提高代码质量,降低维护成本,保证项目的稳定性和可扩展性。
本文档适用于所有的开发人员和项目。
二、命名规范1. 类名、接口名、枚举名使用大驼峰命名法,首字母大写,后续每个单词首字母大写,例如:UserService、CalculatorService;2. 变量名、方法名使用小驼峰命名法,首字母小写,后续每个单词首字母大写,例如:userName、calculateSum;3. 常量名全部大写,多个单词之间用下划线分隔,例如:MAX_LENGTH;4. 包名使用小写字母,并且能够反映该包的功能,例如:com.example.service;5. 数据库表名使用小写字母,并且采用下划线分隔,例如:user_info;6. 文件名使用小写字母,并且能够描述该文件的内容,例如:user_service.java。
三、代码规范1. 缩进和对齐:使用4个空格进行缩进,不使用Tab键;在定义变量和方法时,尽量对齐;2. 行长限制:每行不超过100个字符;3. 注释规范:每个类、方法、成员变量必须添加注释说明,方便他人理解;4. 异常处理:在捕获异常时,要进行适当的处理,避免出现空指针异常等运行时错误;5. 空行规范:在函数、类之间使用空行分隔,提高代码的可读性;6. 文件编码:使用UTF-8编码,禁止使用乱码字符;7. 导入包规范:按照层级结构进行导入,不使用通配符*;8. 常量和变量声明:常量建议使用final修饰,变量声明后要及时初始化;9. 错误处理:在遇到错误时,要及时打印日志记录,方便定位和解决问题;10. 重写方法:重写Object类的方法时,要加上@Override注解,增强代码的可读性。
四、注释规范1. 类注释:在每个类的前面添加注释,描述该类的作用和功能;2. 方法注释:在每个方法的前面添加注释,描述方法的输入参数、返回值和功能;3. 成员变量注释:在每个成员变量的前面添加注释,描述变量的作用和用途;4. 异常注释:在方法上方的注释中,说明该方法可能抛出的异常类型和原因。
Java软件开发规范

JAVA软件开发规范一、绪论1.1概述随着公司上ERP项目,为统一开发技术规范,缩短开发周期,进一步提高项目质量,降低后期维护难度,迫切需要一个更完善、专业、有效的开发规范。
本规范的目的是使本科室JAVA开发能以统一、标准的、规范的方式设计和编码。
通过建立开发规范,使每个开发人员养成良好的开发风格和习惯;提高程序的可靠性、可读性、可维护性和一致性等,提高程序员的开发水平,增进团队间的交流,并保证软件产品的质量。
1.2适用范围本规范适用于本公司所有JAVA软件项目、产品等的设计、开发以及维护等。
所有JAVA软件开发人员在整个软件开发过程中必须遵循此规范。
二、总体框架2.1框架概述本公司JAVA开发的软件产品多为B/S结构,涉及多个层面的开发,为便于逻辑分离及项目分工,开发的软件产品应当符合MVC设计模式,基础框架使用SSH(spring+hibernate+struts2)MVC基础框架。
2.2框架规范旧框架中Servlet层应当仅负责宏观层面的业务逻辑,不进行具体的数据访问,新框架中Action组件负责事务同旧框架中的Servlet层组件。
Model由开发人员自己实现。
hibernate是将原来的 DAO部分,就是数据库部分,进行数据持久化,可以理解为数据库的接口和对数据库的操作之一。
spring是管理容器的角色,降低耦合度,方便管理。
2.2.1 Hibernate DAO规范DAO为数据访问组件,用于访问持久性数据,例如为关系型数据库。
本规范要求DAO对象必须直接或间接继承数据访问组件的基础类com.yonggang.framework.hibernate.HibernateDAOSupport ,该基类已经实现了hibernate通用的查询,更新,插入,删除,分页查询等操作,业务类继承该类后即可使用HibernateDAOSupport提供的hibernate数据库操作方法。
DAO处理完正常逻辑后设置本次处理后用于界面提示的消息。
程序开发规范模板

程序开发规范模板一、引言程序开发规范是为了提高代码质量、降低维护成本、加强团队协作而制定的一套规范标准。
本文将介绍一份通用的程序开发规范模板,旨在帮助开发者在编程过程中遵循统一的规范,提高开发效率和代码的可读性。
二、命名规范1. 变量名和函数名应使用有意义且具有一定描述性的英文单词或词组,避免使用拼音或无意义的命名。
2. 类名和文件名应使用帕斯卡命名法(Pascal Case),即所有单词首字母大写,不包含下划线或连字符。
3. 常量名应使用全部大写的英文单词或词组,单词之间使用下划线分隔。
三、缩进和空格1. 使用4个空格作为缩进单位,不使用制表符。
2. 操作符前后应保留一个空格,使得代码更加清晰易读。
3. 行末不留多余的空格。
四、注释规范1. 代码中应包含充分的注释,解释代码的功能、关键思路和算法。
2. 注释应使用英文书写,清晰明了。
3. 注释应放置在代码上方或相应行的末尾,以便于理解和维护。
五、代码结构1. 在文件的开头,应该包含版权声明和作者信息。
2. 代码应有良好的结构,不宜过于冗长或复杂,易于阅读和维护。
3. 代码中应避免使用全局变量,尽量使用局部变量或封装成类的形式。
六、函数规范1. 函数应有明确的功能和描述性的名字。
2. 函数应尽量简洁,不宜过于冗长,遵循单一职责原则。
3. 函数应进行异常处理,不允许抛出未处理的异常。
七、错误处理1. 错误处理应及时、准确地报告错误,避免将异常信息隐藏或忽略。
2. 合理使用 try-catch-finally 语句块进行异常处理,确保程序的健壮性。
八、代码复用1. 重复的代码应封装成函数或类,以提高代码的复用性。
2. 尽量避免使用复制粘贴的方式复制代码,而是应该通过调用函数或继承类的方式进行复用。
九、测试和调试1. 在程序开发过程中,应时刻进行测试和调试,确保程序的正确性和稳定性。
2. 应编写单元测试用例,覆盖代码的各个分支和边界情况。
十、版本控制1. 使用版本管理工具,如Git,对代码进行版本控制。
JAVA技术架构及开发规范文档

JAVA技术架构及开发规范文档一、概述二、技术架构1.三层架构基于业务功能的划分,将系统划分为表示层、业务逻辑层和数据持久层。
这样可以实现业务逻辑与表示层、数据持久层的解耦,提高代码的复用性和可维护性。
2.MVC模式使用MVC(Model-View-Controller)模式进行开发,将系统分为模型层、视图层和控制层,使各层之间的职责分明,提高代码的可维护性和可测试性。
3.面向对象设计原则遵循SOLID原则,尽量使用面向对象的设计和编程,其中包括单一职责原则、开闭原则、里式替换原则、接口隔离原则和依赖反转原则等。
三、开发规范1.命名规范采用驼峰命名法,变量名、方法名、类名等均应具有描述性,避免使用拼音或缩写。
2.代码风格代码应该具有良好的缩进和格式,增加代码的可读性。
要求适当添加注释,注释应说明代码的目的和使用注意事项。
3.异常处理合理处理异常,避免直接抛出异常,而是进行捕获和处理。
对于特定的业务异常,可以定义自定义异常类,并进行抛出。
4.注释规范需要对代码进行充分的注释,注释的风格应明确,注释应配合代码,解释代码的用途和作用。
5.单元测试开发过程中应进行单元测试,确保代码的正确性。
对于每个功能模块,编写相应的单元测试用例进行测试,覆盖率应尽量达到100%。
6.安全性对于涉及到的用户输入数据和敏感数据,应进行有效的验证和过滤,防止恶意注入和跨站脚本攻击等安全威胁。
7.日志规范所有的关键操作和错误信息都应记录到日志中,日志级别应根据实际需要进行配置。
8.数据库规范数据库表设计应符合第三范式,避免数据冗余和数据不一致。
使用参数化查询和预编译语句,提高数据库查询性能和安全性。
9.版本管理使用版本管理工具(如Git)进行代码管理,每个开发人员都应具备良好的版本管理和协同开发能力。
四、总结本文档主要介绍了JAVA技术架构及开发规范。
通过采用三层架构和MVC模式,可以实现代码的复用性和可维护性。
同时,遵循JAVA的面向对象设计原则,提高代码的可测试性和可扩展性。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
鼎尖ERP开发规范框架介绍基础框架包含了base,basedata,basedata-web,log,log-web, workflow,workflow-web, framework,web。
其中以framework和-web为后缀的Project为web支持项目,其它的为业务基础项目。
base,提供dao层的基础接口及实现。
basedata,提供基础数据类型,集成业务基础数据(如组织,人员,岗位等)。
log,提供日志支持。
workflow,提供流程中心支持。
framework,通用web页面功能实现,如列表,编辑,数据选择器,左树右表等。
web,负载所有模块的web资源,及集成各个模块。
模块命名规范新增一个模块需要增加两个项目,分别命名为是XXX,XXX-web。
XXX 包含模块相关model,模块相关dao,模块相关serviceXXX-web 包含模块相关controller类数据库命名规范a)表的命名为T_模块名_实体名,如T_BROKER_ROOM, oracle中全部为大写b)存储过程命名SP_模块名_存储过程名c)视图命名V_模块名_视图名d)表中字段的命名必须以F开头,表中的字段名应和实体中的字段命名保持一致如id -> FID, name -> FNAME,number -> FNUMBER, 如果是外键必须以FK开头以ID 结尾,FKORGID包结构规范开发框架采用spring+mybatis框架,包含有4层,model层,dao层,service 层,controller层, 现以基础项目(basedata)的组织子模块(org)为例model的包名com.dingjian.模块名.子模块名.model .modelenum的包名com.dingjian.模块名.子模块名.enums .enumsdao 的包名com.dingjian.模块名.子模块名.dao .daodaoImpl 的包名com.dingjian.模块名.子模块名.dao.impl .dao.implxml 的包名com.dingjian.模块名.子模块名service 的包名com.dingjian.模块名.子模块名.service .service serviceImpl的包名com.dingjian.模块名.子模块名.service.impl .service.impl controller的包名com.dingjian.模块名.子模块名.controller .controller类命名规范所有的类名,必须以完整的英文单词,禁止出现中文拼音,或者不完整的单词a)所有的controller必须以Controller结尾,controller类按功能,列表处理类以ListController结尾,单据编辑类以EditController结尾b)所有的service接口必须以Service结尾,如RoomService, 实现类必须以ServiceImpl结尾,如RoomServiceImplc)所有的dao接口必须以Dao结尾,如RoomDao, 实现类必须以DaoImpl结尾,如RoomDaoImpld)所有的实体类符合骆驼命名法实体类字段的命名规范所有的字段,必须以完整的英文单词,禁止出现中文拼音,或者不完整的单词字段后面需要加上字段的注释,实体头部必须加上对应表的名字。
前台文件命名规范前台文件分为JSP,JS,CSS三类a)JSP 实体类相关编辑JSP和列表JSP 以实体类名为开头,后面加EDIT 和LIST。
如组织实体的新增和列表JSP命名为OrgEdit.jsp OrgList.jsp编辑页面引入公用JSP头文件EditUIHead.jsp列表界面引入公用JSP头文件ListUIHead.jsp其他界面引入公用JSP头文件commonHead.jsp移动界面引入公用JSP头文件mobileHead.jspJSP文件位置放在web项目webapp/WEB-INF/views/模块名/子模块名/下JS文件放在web项目webapp/default/js/module/模块名/子模块名/下b)JSP所引用js尽量命名与JSP保持一致; JSP所引用css尽量命名与JSP保持一致SQL维护规范Sql位置--svn下sql项目,由于同时支持Oracle和mysql数据库,需要分别维护Oracle和mysql的升级文件和数据初始化文件,分别在文件夹initsql项目,upgradesql项目。
Mysql_create.sql,Mysql_init.sqlOracle_create.sql,Oracle_init.sql1)Oracle脚本书写规范1. 查询判断时所有表名,列名大写select count(*) from User_Tab_Columns where table_name=表名(大写)and column_name=字段名(大写)select count(*) from user_TABLES where table_name = 表名(大写);2. execute immediate 语句里面不要出现引号''3. 注意日期格式,确保正确4. 提交前自己到数据库跑一下,确保能够执行--添加岗位类型表添加人:欧海兵添加日期:2013-09-11select count(1) into num from user_tables s where s.TABLE_NAME ='T_BD_JOBCATEGORY';if(num = 0) then execute immediate'create table T_BD_JOBCATEGORY(FID VARCHAR2(44) not null,FKCREATORID VARCHAR2(44),FCREATETIME TIMESTAMP(6),FKUPDATORID VARCHAR2(44),FLASTUPDATETIME TIMESTAMP(6),FNUMBER VARCHAR2(40),FNAME VARCHAR2(80),FREMARK VARCHAR2(200),FISSYSTEM VARCHAR2(8),FLONGNUMBER VARCHAR2(500),FLEVEL INTEGER,FLEAF INTEGER,FKPARENTID VARCHAR2(44))';end if;2)Mysql脚本书写规范1.注释时–和后面描述需要空格隔开,否则运行报错2.增加字段CALL ADDIFNOTEXISTS('T_AGENCY_HOUSEPROJECT','FREWARDDESC','VARCHAR(200)');3.修改表名CALL ADDIFNOTEXISTSTABLE('T_BD_MODULE','T_BS_MODULE');-- 创建岗位类型表添加人:欧海兵添加日期:2013-09-11CREATE table IF NOT EXISTS T_BD_JOBCATEGORY(FID VARCHAR(44) not null,FKCREATORID VARCHAR(44),FCREATETIME TIMESTAMP,FKUPDATORID VARCHAR(44),FLASTUPDATETIME TIMESTAMP,FNUMBER VARCHAR(40),FNAME VARCHAR(80),FREMARK VARCHAR(200),FISSYSTEM VARCHAR(8),FLONGNUMBER VARCHAR(500),FLEVEL INT,FLEAF INT,FKPARENTID VARCHAR(44),primary key (fid));框架说明实体继承体系系统工具类com.dingjian.basedata.util. SystemUtil。
获取当前登录用户、当前组织、当前职位、当前用户类型com.dingjian.base.util. SystemConfig。
获取系统参数,系统参数配置在/WEB-INF/config/system.propertiescom.dingjian.base.util. StringUtils。
字符串工具类Dao继承体系统一继承BaseDao,BaseDaoImpl对简单查询不推荐提供接口方法,可以统一通过QueryExecutor.xxxx进行查询,减少冗余接口。
Service继承体系DataEntity体系,就继承DataEntityService,其它的先继承BaseService,BaseServiceImpl。
BillEntity 的公共service待定。
Controller继承体系列表页面入口继承ListController,左树右表的继承TreeListController,编辑页面继承EditController.其它特殊页面可以直接继承BaseController.DataPicker(F7)通用列表式:在各模块下的resources/query/*Query.xml中注册查询语句调用:dataPickerUrl:调用的url;width,height:打开窗口的大小;onchange:值改变事件,可选。
Title,打开窗口的title复杂的F7需要自主实现,提供url,调用同上。
实现范例见orgDataPicker.jsp MyBatis-XML代码生成执行Web项目中的/com/dingjian/tools/mybatis/InitFilesByModel.java权限项在权限管页面中新增权限,注意权限方法的写法:包名+类名(实际访问类,填写父类无效)+方法名。
权限依赖如果controller的方法中某方法访问权限依赖于其它方法,则可以使用annotation来注解。
com.dingjian.base.annotation. Dependence。
此注解支持子类方法继承。
例如列表页面中的listData,add,edit,delete等方法均依赖于list方法:如果是依赖于其它继承体系类的方法,则需要加上包名类名:@Dependence(method="ListController.list") 注意,权限依赖不支持级联依赖,只能依赖一次。
菜单功能开发好后,功能入口需要注册菜单才可以显示在菜单选项中。
链接与小图标大图标均为url,如服务器路径功能链接为http://localhost/web/abc/dd/ccc只需要填写abc/dd/ccc图片上传引入js:default/js/ajaxfileupload.js。