版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
江西数字民政项目
开发规范
文档编号:MZ0001
版本信息:V1.0
编写日期:2013-08-12
文档控制
日期作者版本更改日志
2013/8/12陈春登1.0草稿
2013/8/19刘成阳1.1草稿
2013/8/21陈炳旭1.2草稿
2013/08/26陈春登1.21.根据项目组审核意见调整部分内容(含
命名、性能等);
2.完善2.4节系统模块分配表内容;
3.完善4.2.8和4.2.9节数据库对象命名
和注释规范;
4.其他:将第5章移至4.1.2.2节,名称
变更为“UAP单据默认字段命名规范”;
2013/08/27陈春登1.21.完善系统模块分配表;
2.增加2.6节,业务组件命名规范,对项
目和模块的命名进行规范;
2013/09/09陈春登1.31.修改4.2.8节,修改表命名规范;
2013/09/11陈春登1.31.增加2.4节,单据类型命名规范;
2013/10/10陈春登1.31.调整2.8节,增加客户端和服务器端交
互策略第四点(强制要求)。
2013/11/06陈春登1.31.删除4.1.1.2节“UAP单据默认字段命名
规范”,公共字段可参考《民政业务公
用字段.xls》。
2013/12/5朱龙斌1.31.增加第5章“软硬件配置”,阐述应用
开发和实际运行中各硬件和软件的规格
和版本;
2013/12/19陈春登1.41.增加2.8节”报表开发规范”,规范在
报表开发中常见场景;
2.调整4.2.8节中表命名规范,增加报表
类信息主体,为报表开发提供表或者视
图命名规范;
用反政务软件
UFGOVQPKHJY0l04-V1.0
目录
1概述...................................................................3
1.1规范目的............................................................3
1.2文档说明............................................................3
2UAP应用规范............................................................4
2.1元数据命名规范......................................................4
2.2模板命名规范........................................................4
2.3功能注册规范........................................................4
2.4单据类型命名........................................................4
2.5系统模块分配表......................................................5
2.6菜单注册规范........................................................6
2.7业务组件命名规范....................................................6
2.8报表开发规范........................................................8
2.8.1数据源..........................................................8
2.8.2语义模型设计....................................................8
2.8.3自由报表设计.....................................................9
2.8.4数据集成设计....................................................10
2.9UAP开发参考.......................................................11
3JAVA编码规范..........................................................13
3.1命名规范...........................................................13
3.1.1包的命名........................................................13
3.1.2类的命名........................................................13
3.1.3接口命名........................................................14
3.1.4方法命名........................................................14
3.1.5变量命名........................................................14
3.1.6常量命名........................................................17
3.1.7命名规范实例....................................................17
3.2注释规范...........................................................18
3.2.1注释分类........................................................18
3.2.2注释标注........................................................19
3.2.3注释标签的使用..................................................19
3.2.4需要注释的内容.................................................20
基本原则....................................................20
类描述......................................................20
方法描述....................................................21
代码行注释..................................................21
成员变量注释................................................21
3.3代码风格...........................................................21
3.3.1类成员顺序.....................................................22
3.3.2格式规范.......................................................23
第1页共56页
政务软件
UFGOVQPKHJY0l04-V1.0
3.3.3代码长度.......................................................23
3.3.4局部变量的使用.................................................23
3.3.5可见性规范.....................................................23
3.4异常应用规范.......................................................24
3.4.1异常捕获的规范.................................................24
3.4.2异常抛出的规范.................................................24
3.5日志规范...........................................................24
3.6其他注意事项.......................................................25
4数据结构规范..........................................................27
4.1数据命名规范.......................................................27
4.1.1术语和定义.....................................................27
中文名称....................................................27
内部标识符..................................................27
数据类型....................................................27
数据格式....................................................28
值域........................................................28
信息分类编码................................................28
4.1.2民政业务信息分类编码...........................................29
通用编码....................................................29
4.2数据库对象应用规范.................................................29
4.2.1存储过程.......................................................29
4.2.2触发器.........................................................29
4.2.3视图...........................................................29
4.2.4索引...........................................................30
4.2.5表及外键.......................................................30
4.2.6函数规范支......................................................31
4.2.7产品配置数据库脚本规范★.......................................31
4.2.8对象命名规范...................................................31
4.2.9对象注释规范...................................................32
4.3SQL风格..........................................................33
4.4性能优化...........................................................34
4.5移植性考虑.........................................................53
5软硬件配置规范........................................................56
5.1软硬件版本管理规范.................................................56
5.2软件获取方式.......................................................56
第2页共56页
政务软件
UFGOVQPKHJY0l04-V1.0
1概述
1.1规范目的
本规范旨在规范代码(主要是Java和SQL,如存在其他语言则另作说明)开发,
提高代码质量。制定编码规范的首要考虑的目标是:
1、规范代码的编写。
2、提高代码的可读性。
程序首先是给人读的,其次才是给机器运行的。引用《重构》中的一句话:最糟糕
的程序员都能写出让计算机运行的程序,而只有优秀的程序员才能写出让人看得懂的程
序。没有谁的代码是不需要维护的,尤其是现在,而维护代码的人往往不是最初开发的
人,在这种情况下,代码的可读性就尤为重要了。
3、提高代码的可维护性。
4、提高代码的执行效率。
5、为代码审查提供标准。
1.2文档说明
本规范尽量与行业规范一致,主要是Oracle的java规范,同时将工作中的实践经验
融入其中,根据最佳实践制定本规范,如果规范中存在矛盾的地方,则要根据实际情况
选择性处理,规范不是枷锁,而是指导性工具。
本文档所要求的部分附加文件,要求在相关开发工具中导入并执行,对于代码检查
的执行标准可参考《江西民政一代码检查单.xls》。
第3页共56页
用反政务软件
UFGOVQPKHJY0104-V1.0
2UAP应用规范
2.1元数据命名规范
元数据文件命名
分目录存放,文件命名为mz_子系统一模块—组件.bmf。
元数据名称
分级命名,mz_子系统一模块,且件
2.2模板命名规范
单据模板
mz+'b'+两位子系统编号+两位模块编号+两位单据模板编号
查询模板
mz+'q'+两位子系统编号+两位模块编号+两位查询模板编号
输出模板
mz+'o'+两位子系统编号+两位模块编号+两位输出模板编号
2.3功能注册规范
模块名称
MZ+两位子系统编号
功能编号
1、每级两位,除开始两位字符外其他都用数字,如MZ010101
2、每个子系统都要以本系统的模块为前缀,后面编号可以自行编码,
但在实际编码过程中建议,作出预留,假设低保系统模块号为MZ01,
那么低保下可以分多个模块,如乂20100,]\420102,乂20104,在模块下
可以继续分级,如:MZ010200,MZ0可202,MZ010204等等。
3、如果是字符则均需大写。
功能名称
1、以可读的名称命名功能,要能充分体现功能的含义并符合用户的业
务习惯。
2.4单据类型命名
每一个业务单据又有一个唯一的单据类型,该单据类型在整个系统中都是唯一的,
第4页共56页
用反政务软件
UFGOV_QP_KHJY_0l_04-V1.0
为了便于各业务系统对单据类型进行命名这里给出建议规范,规范要求如下:
1、单据类型命名采用四个字符,全部采用英文字母大写形式;
2、首字母为业务类型(参考通用编码表),第二个字母是业务子类,无业务子类的
系统已字符“X”代替;
3、第三第四位字符由各自业务系统根据实际需要进行分配,这里不做约束;
业务类型业务子类任意字符任意字符
以社会救助中的低保业务业务为例,低保申请单单据类型命名如下:
社会救助业务:业务类别是“H"
低保业务子类:低保代码是“A"
申请单命名:定义为“AC”
则单据类型为:“HAAC”
2.5系统模块分配表
系统代码模块代码示例备注
MZ00(公共)MZ0000(动态人员)MZ000001公共部分-动态人员库
MZ00(公共)MZ0001(计算规则)MZ000101公共部分-计算规则
MZ01(社会救助)MZ0101(低保)低保资格管理:社会救助-低保,从模
MZ010101块代码向下开始分级,
MZ01010101,申请单两位一级
MZ01010102,变更单
MZ01010103,年检单
低保报表管理:
MZ010102
MZ01010201,月报
MZ01010202,季报
MZ01010203,年报
MZ01(社会救助)MZ0102(五保)社会救助-五保
MZ01(社会救助)MZ0103(医疗救助)社会救助-医疗救助
MZ0I(社会救助)MZ0104(精简退职)社会救助-精简退职
MZ01(社会救助)MZ0105(临时救助)社会救助-临时救助
MZ02(慈善捐赠)MZ0201
MZ02(慈善捐赠)MZ0202
MZ03(优抚优待)MZ0301
MZ03(优抚优待)MZ0302
MZ04(退役安置)MZ0401
MZ04(退役安置)MZ0402
MZ05(军休安置)MZ0501
MZ05(军休安置)MZ0502
MZ06(灾害救助)MZ0601
MZ06(灾害救助)MZ0602
MZ07(社会福利)MZ0701
MZ07(社会福利)MZ0702
第5页共56页
UFGOVQPKHJY0104-V1.0
MZ08(民间组织)MZ0801
MZ08(民间组织)MZ0802
MZ09(社会事务)MZ0901
MZ09(社会事务)MZ0902
MZI0(老龄工作)MZ1001
MZ10(老龄工作)MZ1002
MZ11(社会工作)MZ1101
MZ11(社会工作)MZ1102
MZ12(基层政权)MZ1201
MZ12(基层政权)MZ1202
MZ13(政策法规)MZ1301
MZ13(政策法规)MZ1302
MZ14(信访管理)MZ140I
MZ14(信访管理)MZ1402
MZ15(协同办公)MZ1501
MZ15(协同办公)MZ1502
MZI6(电子监察)MZ1601
MZ16(电子监察)MZ1602
MZ20(监测预警)MZ2001
MZ20(监测预警)MZ2002
MZ30(核对平台)MZ3001
MZ30(核对平台)MZ3002
2.6菜单注册规范
菜单编码
1、要求与功能编码保持一致;
菜单名称
1、要求与功能名称保持一致;
2.7业务组件命名规范
由于江西民政项目是一个多系统的项目,在开发过程中难免遇到项目的建立、模块
建立以及组件建立等问题,这里对项目建立的命名进行规范说明。
江西民政项目业务结构如下:
第6页共56页
用反政务软件
UFGOV_QP_KHJY_0l_04-V1.0
从上图描述可以看出,民政业务分三层,分别是项目、子系统或模块、业务组件或
子模块,从第二层开始与开发环境中的概念进行对应。其中:
子系统或模块,与Eclipse中的项目(MDE开发中的业务组件项目)对应,在建立
项目时要根据系统代码进行命名。
业务组件或子模块,与Eclipse中的业务组件(MDE开发中的业务组件)对应,在
建立业务组件时要根据模块代码进行命名。
业务功能/组,与具体的一个功能或者是一个功能组相关,如社会救助中的资格管
理或者低保资格申请,这个可以根据业务复杂度灵活掌握,如果功能较少可以直接与一
个功能对应,如果功能较多可以分组管理。
对于简单的系统,可以建立一个项目,然后在该项目下根据子模块建立业务组件;
对于复杂的项目,可以将子模块建立成为业务组件项目,然后在其下建立业务组件。下
面以社会救助为例说明。
社会救助属于一个完整的救助系统,其下可以分为五个子模块,分别是低保、五
保、医疗救助、精简退职和临时救助,假设我们将社会救助放在一个项目组中,每一个
子模块建立一个业务组件,那么其项目结构如下左图(MDE项目视图)所示,其JAVA
视图如下右图所示。
第7页共56页
用反政务软件
UFGOV_QP_KHJY_0l_04-V1.0
白“JSI今0sa
s®低保救助l号rs/src/public
〔券rs/src/client
日咨精简退职rs/src/private
:-日文档rs/resources
rs/src/test
场业务模型ts/src/public
:画源代码ts/src/client
:-组装ts/src/private
Ikiuits/resources
由霹模板ts/src/test
ms/src/public
:?模板分配ms/src/client
d编码规则ms/src/private
:R流程配置ms/resources
ms/src/test
由市应用蛆装ws/src/public
由%配置ws/src/dient
ws/src/private
s岛临时敕助ws/resources
E岛五保救助ws/src/test
1:尊Is/src/public
由愿医疗救助Is/src/client
申飞配置Is/src/private
Is/resources
由&Ant.LibraryIs/src/test
由iJRE系统库[ire6]
田&Framework_Library
田2s5^Ant_Library
:4Generated_EJB[±]atSkProduct_Common_Library
国
S*JRE系统库[ire6]HiMiddleware_Library
申Framework_Library
画曲Middleware_Library由Module_Public_Library
®&Module_Client_Library由Module_Client_Library
由Module_Private_Library
国舱Module_Lang_Library由Module_Lang_Library
国欧Module_Private_Library由US-config
由一Is
由必Module_Public_Library
田—META-INF
1+1SaPrnrliirbCnmmnnIihr^rv国…ms
对于其他项目和模块的命名,请各自开发组根据实际需要向项目管理人员申请标
识,这里不做具体规定。但在命名时要遵守如下规则:
1、能确切反映项目或者模块的含义,并且拼写简单,不超过8个字符;
2、全部使用英文字母,非特殊情况不允许使用数字编码;
3、项目或模块名称全部小写,不允许使用下划线;
2.8报表开发规范
为规范报表开发过程,本节对报表开发进行基本规范。系统在开发态,主要使用
“语义模型-预制”、“自由报表预制”和“数据集成”三个节点,本节就三个节点中
的设计和命名进行约束。
2.8.1数据源
1、除即时报表使用业务默认的数据源以外,月报、季报、半年报和年报要使用独立
的数据源,表空间、用户和权限与业务数据源分开;
2、如有特殊情况,请向公共组申明;
2.8.2语义模型设计
1、语义模型分类
第8页共56页
用反政务软件
UFGOV_QP_KHJY_0l_04-V1.0
a)语义模型分类名称采用有意义的汉字名称,不能超过15个汉字;
b)数字民政项目报表根目录为“数字民政”,所有民政相关业务的报表均要建立在
该分类之下,如有特殊情况可以向公共组申请;
c)在“数字民政”根目录下,需要增加相关系统的子分类,子分类下可以继续分
类,分类最低层次为业务组件,以社会救助为例,其目录层次如下(仅供参
考),子系统和业务组件名称前要冠以“模块编号”:
数字民政
--01社会救助管理平台
--01最低生活保障管理系统
—XXXX月报明细
—XXXX季报明细
--02农村五保管理系统
2、语义模型编码
a)编码字符采用字母和数字,编码长度10个字符,均以“MZSM”开头,后两个
字符使用模块代码,如“01”,一个完整的语义模型编码如(社会救助):
MZSM010101,后四个字符的编码全部使用数字,可以根据对应业务的情况自
行分类;
b)其中,“MZSM”中的“SM”表示“语义模型”,由于一个语义模型可以用在
多个报表设计中,这里主要是需要和报表设计中编码进行区分;
c)语义模型编码规范如果存在特殊情况,请向公共组申请;
3、语义模型名称
a)语义模型名称采用汉字命名,语义模型名称要能确切反应语义模型的设计初衷,
语义模型名称不能超过30个汉字;
b)对于语义模型名称不能确切表达设计内容时,必须在备注中说明;
4、语义模型数据源
a)语义模型数据源根据是否是及时报表选择对应数据源;
b)对于非即时报表,必须使用独立数据源(与业务数据源分开);
2.8.3自由报表设计
1、自由报表分类
a)自由报表分类名称采用有意义的汉字名称,不能超过15个汉字;
b)数字民政项目报表分类根目录为“数字民政”,所有民政相关业务的报表均要建
立在该分类之下,如有特殊情况可以向公共组申请;
c)在''数字民政”根目录下,需要增加相关系统的子分类,子分类下可以继续分
类,分类最低层次为业务组件,以社会救助为例,其目录层次如下(仅供参
考),子系统和业务组件名称前要冠以“模块编号”:
数字民政
--01社会救助管理平台
—01最低生活保障管理系统
第9页共56页
用反政务软件
UFGOVQPKHJY0l04-V1.0
--XXXX月报明细
—XXXX季报明细
--02农村五保管理系统
2、自由报表编码
a)编码字符采用字母和数字,编码长度10个字符,均以“MZFR”开头,后两个字
符使用模块代码,如“01”,一个完整的自由报表编码如(社会救助XX报
表):MZFR010101,后四个字符的编码全部使用数字,可以根据对应业务的情
况自行分类;
b)其中,“MZFR”中的“FR”表示“自由报表”,这里主要是需要和语义中编码
进行区分;
c)自由报表编码规范如果存在特殊情况,请向公共组申请;
3、自由报表名称
a)自由报表名称采用汉字命名,名称要能确切反应报表的设计初衷,名称不能超过
30个汉字;
b)对于自由报表名称不能确切表达设计内容时,必须在备注中说明;
4、自由报表数据源
a)自由报表数据源根据是否是即时报表选择对应的数据源;
b)对于非即时报表,必须使用独立数据源(与业务数据源分开);
2.8.4数据集成设计
数据集成主要用来将业务数据从业务生产库(OLTP:以实时交易为目的)抽取到
业务分析库(OLAP:以数据分析为目的),方便后续分析报表的语义模型和自由报表
的设计,这里对数据集成中常见场景给予规范。
1、作业命名
a)作业名称采用字母和数字作为基本命名字符,作业名称固定长度12个字符,所
有作业名称以“MZJOB”开头,随后两个字符为模块代码,后5个字符全部使
用数字,各业务组可以根据业务报表情况进行自行分类,如低保月报抽数作业
为:MZJOB0101001
b)作业命名若有特殊情况,请向公共组申请;
2、任务命名
a)每个作业下可以有多个任务,任务的命名采用可读的汉字进行,名称要能确切反
应任务的含义,任务名称最长30个汉字,中间不允许使用数字、字母和特殊符
号;
b)任务名称力求简洁和精准,方便开发人员理解;
c)任务命名若有特殊情况,请向公共组申请;
3、语义元数据
a)分类命名
i.语义元数据分类名称采用有意义的汉字名称,不能超过15个汉字,一般采
用系统的名称或者是模块的名称;
第10页共56页
用反政务软件
UFGOV_QP_KHJY_0l_04-V1.0
ii.数字民政项目语义元数据根目录为“数字民政",所有民政相关业务的语义
元数据均要建立在该分类之下,如有特殊情况可以向公共组申请;
b)表相关命名
i.语义元数据的表名遵循4.2.8节要求,目前已经增加“R”类信息主体,用
来表示报表相关的表,例如社会救助中低保季报可以使用“HR01”,对于
后面的两位数字,各业务组可以根据实际情况进行分类;
ii.报表相关的表中字段的名称规则和业务表相同,这里不做赘述,如果有特殊
的要求可以向公共组申请(大部分字段在都是业务表中的字段,部分公共的
可以向公共组申报);
iii.表的显示名称全部使用汉字,最长12个字符,要能确切反应表的内容;
2.9UAP开发参考
1、缓存策略
a)对于常用的静态数据库表要进行数据缓存,可以选择全表缓存,也可以缓存常用
字段,缓存算法支持LRU、FIFO、FILE等;
b)对于所有的参照对象表数据要进行数据缓存;
c)视图不可缓存,所以在进行参照类型的数据设计时,尽量考虑使用物理表,不是
特殊情况不建议使用视图;
2、客户端应用策略;
a)考虑到业务系统客户端启动和加载速度,平台组建议使用客户端进行系统访问,
但是考虑到客户端的一致性和实施复杂度,民政业务组以使用IE浏览器优先;
非特殊情况,不允许使用客户端;
3、客户端和服务器端交互策略;
a)尽量降低远程调用次数;多次服务器调用要合并调用次数;
b)减少上下行流量(考虑差异VO形式),上下行流量建议在10K〜16K,业务就
是说在业务单据保存或者是下载时,尽量不要一次超过16K流量,否则响应性
能会下降;
c)客户端和捻务器端在一次业务交互过程中不得超过3次,若超过三次,需要业务
组设计人员审批;
d)客户端和服务器端交互时,在UI(包括模型、按钮和面板等对象)类里不能直
接调用服务器端类和接口,如果需要调用,需要将调用方法使用UI代理类进行
中转,以保证服务方法的事务完整性,例如对待遇计算中先计算人员待遇数
据,再保存到数据库中,然后进行一定处理后在显示在界面上,其代码结构如
下:
〃服务器端接口
publicinterfaceISACalculate{
publicBillResultdoCalcu!ate(BusinessObject[]bizObj)throwsBusinessException;
)
〃服务器端实现类
PublicclassSACalculatelmplimplementsISACalculate{
第11页共56页
用反政务软件
UFGOV_QP_KHJY_0l_04-V1.0
publicBillResultdoCalculate(BusinessObjectl]bizObj)throwsBusinessException{
IIstep1计算待遇
BillResultresult=...
//step2保存计算结果
saveResul((result);
//step3处理计算结果
result=process(result);
returnresult;
)
〃客户端代理类
PublicclassSACalculateProxyextendsBaseServiceProxyimplementsISACalculate{
publicBillResultdoCalculate(BusinessObject[]bizObj)throwsBusinessException{
returnNCLocaltor.getInstance().lookup(ISACalculate.class).doCalculate(bizObj);
)
)
〃UI类
PublicclassvoiddoAction(Actione){
〃其他逻辑
result=proxy.doCalculate(bills);
〃其他逻辑
)
4、大数据参照策略;
a)对于大量数据的参照尽量考虑树形参照或者其他分类形式的参照,若性能不能保
证建议业务组采用其他策略;
b)大数据参照对应的表,要进行数据缓存配置(表级缓存或者是全文检索缓存模式
【不支持视图】);
c)参照窗口显示尽量不要超过5歹I;
5、分页策略;
a)业务单据要进行分页处理,考虑到UAP的分页原理(查询全部主表主键,然后
进行分页,查询数据记录条数上限100000条),业务单据在查询时要控制查询
条件,尽量缩小查询范围;
6、压力测试
a)对于日常业务单据操作,要进行压力测试,保证其响应性能:一般不超过3秒;
7、发布原则/增量部署;
a)功能开发要遵循增量部署的要求,否则在增量部署时,模块无法打包发布;
b)增量部署模块开发规范,详见相关文档;
第12页共56页
用反政务软件
UFGOVQPKHJY0104-V1.0
3Java编码规范
3.1命名规范
3.1.1包的命名
包的名称要求确切反映此包的功能意义。包的名称用多个字构成,字之间用间
隔。
1.Java标准包的命名以java打头,例如:java.util;
2.程序包分发给多个组织使用,要保证与其他同一容器下部署的应用上的包不重名,
且包含公司标志。所以一般使用公司的URL的倒序作为包名。
3.ufgov的全局包的前缀是:com.ufgov.grp
例:com.通ov.grp.pd
4.包名采用英文全拼或简拼,全部小写字母,必要时可以使用数字及下划线,建议不
要使用下划线。
5.测试用的包名以"test"开头。:.ufgov.grp.pdo
3.1.2类的命名
1.类的名称要求确切反映此类的功能意义。
2.类名必须是名词,表示某一类对象的名称。
3.英文全拼或简拼,大小写混用,所有单词的首字母大写,其余字母小写,必要时可以
使用数字及下划线。
4.采用某种设计模式的类名要求使用相关设计模式的通用类名后缀,规范如下:
(1)职责链,后缀processor,例:MemoryProcessor
(2)辅助类,后缀Util,例:BillMappingUtil
(3)工厂类,后缀factory,例:DaoFactory
(4)Proxy模式,后缀proxy,例:XmlProxy
(5)Adapter模式,后缀adapter,例:LightAdapter
(6)Mediator模式,后缀mediator,例:QuickEntryMediator
第13页共56页
政务软件
UFGOV_QP_KHJY_0l_04-V1.0
3.1.3接口命名
1.接口名
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
评论
0/150
提交评论