还剩28页未读,继续阅读
本资源只提供10页预览,全部文档请下载后查看!喜欢就下载吧,查找使用更方便
文本内容:
J__a编码规范2009年6月文档修订记录章节编号章节名称修订内容简述修订日期修订前版本号建立文档2009-06-
261.
02.4日志规范补充2009-07-
131.
02.
6.4异常规范25新增2009-07-
151.
02.
6.5工程配置文件规范新增2009-07-
161.0TOC\o1-4\h\z1引言
51.1文档目的
51.2本规范的指导意义
51.3文档预期读者
51.4文档适用范围
51.5参考文档52J__a代码__规范
62.1命名规范6文件File6包Package6接口Inte_____6类Class7方法Method7参数Parameter8变量Variable8实例变量Instan__Variable9常量Constant9数组Array
92.2格式规范10版权信息CopyrightInfor__tion10注释Comment10缩进Indentation12空格Spa__12空行BlankLine12行长度LineLength13换行NewLine13圆括号Parentheses14大括号BigBrackets
142.3语句规范15变量、常量的使用15简单语句______Statement15条件语句ConditionStatement16分支语句SwitchStatement16循环语句LoopStatement17包和引入语句PacketandImportStatement18声明语句DeclareStatement18例外控制语句Ex__ptionControlStatement19类和接口ClassandInte_____19构造/析构Constructor/Finalizer20方法Method20属性Attribute22SQL语句SQLStatement
232.4日志规范
242.5一般性规范
252.6其它代码__规范26多线程Multi-Threading26Servlet26JDBC27异常规范28工程配置文件规范291引言
1.1文档目的制定这个规范的目的是为了增加代码的可读性,使项目的所有代码具有统一的编码风格,减少____造成的损失,提高软件__团队的生产效率,有利于相关项目(__集中提入、批量代收付、影像采集、前后台分离)向营运平台整合
1.2前提与局限“深化前后台业务分离项目”的__,以eclips为集成__环境,以j__a为__语言,以weblogic为web服务器,数据库类型为oracle本规范的制定以此为前提,项目的__应在此规范制定的原则下进行此规范具有相对合理性,不排除在特定场合下的局限性
1.3本规范的指导意义
1、提高软件的可读性,便于__、维护人员理解代码;
2、减少软件的维护成本,有助于代码的修改、调试;
3、增加代码的复用程度,提高团队的合作效率;
4、养成好的编码习惯,形成严谨的思维模式;
5、增强程序的健壮性,降低错误的发生概率,提高运行性能
1.4文档预期读者本文档的预期读者包括J2EE项目__组全体成员技术管理人员、系统设计人员、系统__人员、系统测试人员、系统维护人员、__培训人员及其他相关人员
1.5文档适用范围本文档用于规范“深化前后台业务分离项目”的编码,也可供其他项目__人员参考
1.6参考文档《J__a编码规范》__建总行信息技术部2J__a代码__规范
2.1命名规范总体原则命名应易于理解,能够见名识意
2.
1.1普通文件FileNamingConvention命名规范MustFolloworNot是否必须遵循Example范例文件名命名方法单词首字母小写开头必须thisIsTest.j__a备注
2.
1.2包PackageNamingConvention命名规范MustFolloworNot是否必须遵循Example范例采用建行Internet域名格式命名,不得以个人名字命名必须com.ccb.cos.packagePackage名称小写必须Package名称必须为单数必须使用:com.ccb.cos.servlet不使用:com.ccb.cos.servlets备注建行标准Internet域名为___.ccb.com所以包结构以com.ccb为前缀
2.
1.3接口Inte_____NamingConvention命名规范MustFolloworNot是否必须遵循Example范例英语单词字头大写其他可以用大写或小写必须ThisIsAnInte_____Name接口要I开头必须ISomeInte_____备注
2.
1.4类ClassNamingConvention命名规范MustFolloworNot是否必须遵循Example范例英语单词字头大写其他可以用大写或小写必须ThisIsAClassName自定义的异常类,应以Ex__ption为后缀必须publicclassFtpEx__ptionextendsEx__ption{}备注
2.
1.5方法MethodNamingConvention命名规范MustFolloworNot是否必须遵循Example范例第一个英文单词首字母小写必须openAccountgetString类的获取方法的方法名采用被访问的字段名前加上前缀get必须getFirstNamegetLastName类的设置方法的方法名采用被访问的字段名前加上前缀set必须setFirstNamesetLastName类的布尔型的判断方法要求方法名使用单词is做前缀或者使用具有逻辑意义的单词必须isPersistentisStringequalequals类的普通方法采用完整的英文描述说明成员方__能,并尽可能是动+名形式必须openFileaddAccount如果可能,方法名、参数名与要赋值的字段有类似的名字建议setSizeintsize{this.size=size;}用于转换的方法名称以“to”为前缀建议publicSerBuftoSerBuf;防止多个方法修改同一变量应该只有一个方法能写,其他只能读建议不建议setSizeintsize{this.size=size;}doubleSizeintsize{this.size=size*2;}备注
2.
1.6参数ParameterNamingConvention命名规范MustFolloworNot是否必须遵循Example范例参数的名字必须和变量的命名规范一致必须thisAClassParameter使用有意义的参数命名,如果可能的话,使用和要赋值的字段一样的名字建议setCounterintsize{this.size=size;}备注
2.
1.7变量VariableNamingConvention命名规范MustFolloworNot是否必须遵循Example范例变量的名字必须以一个小写字母开头,后面的单词用大写字母开头必须usernamethisIsAClassVariable循环记数变量通常采用ijk或者counter建议ijkcounter异常变量以“e”开始必须catchEx__ption1e1防止局部变量与公共变量同名必须classDemo{inti;//外部变量...intfunc{inti;//局部变量...}}避免使用类似的名字,或者仅仅是大小写不同的名字必须不建议floatPIpi;//仅大小写不同floatsalessalesSum;//名称包含同一项目中不同文件之间、同一文件的前后之间,表示相同意义的变量,命名具有一致性必须不建议部位1:StringuserName;//操作员名称部位2:StringoperatorName;//操作员名称建议要么全部用userName,要么全部用operatorName备注对于使用O/R映射、__工具自动生成变量等时,可以不采用本节要求的变量命名规范
2.
1.8实例变量Instan__VariableNamingConvention命名规范MustFolloworNot是否必须遵循Example范例变量的名字必须以一个小写字母开头,后面的单词用大写字母开头必须usernamethisAClassInstan__备注
2.
1.9常量ConstantNamingConvention命名规范MustFolloworNot是否必须遵循Example范例常量的名字必须都大写,下划线分隔必须finalstaticintDEFAULT_HTTP_PORT=80备注
2.
1.10数组ArrayNamingConvention命名规范MustFolloworNot是否必须遵循Example范例数组的名字必须参照示例命名必须使用byte[]buffer不使用bytebuffer[]备注
2.2格式规范
2.
2.1版权信息CopyrightInfor__tionFor__tSpecification格式规范MustFolloworNot是否必须遵循Example范例版权信息必须位于J__a文件的开头必须/**Copyright©2000ShanghaiXXXCo.Ltd.*Allrightreserved.*/备注
2.
2.2注释CommentFor__tSpecification格式规范MustFolloworNot是否必须遵循Example范例类/接口注释描述J__a类、接口、每个文档注释设在注释分割符/**…*/中,这种注释应该放在声明之前,“__”如果使用为建行员工,采用中文名称加建行内部统一邮箱作为标识;若为外部人员,则使用中文名称加____作为标识版本中必须包含编写/最新修订日期必须/***功能/模块*@author李广liguang/zh/ccb*@version
1.0yyyy/mm/dd*类描述*修订历史*日期__参考描述*see相关类连接*中国建设银行版权所有.*/publicclassExample{...方法注释描述方法每个文档注释设在注释分割符/**…*/中,必须明确的描述方法的出入参数、异常、以及方法的含义对于实现接口的方法,其注释的内容信息不得少于原接口中的注释内容必须/***@param*@return*方法描述*/成员注释所有类成员必须进行注释;其中公共成员必须进行j__aDoc注释;对于方法内部的私有成员,缺省的需要注释对于临时的,直观含义明确的可以不加注释;必须块注释块注释用于给文件、方法、数据结构和算法提供描述必须利用块注释描述程序的要点写在函数或方法中的块注释必须与它所描述的代码的缩进一致一个块注释之前应该由一个空行将它与代码隔离开必须/**在这里描述*/单行注释单行的短注释与它所跟着的代码的缩进一致如果一个注释不能在一行中写完,就应该使用块注释的格式单行注释之前应该有一个空行必须ifcondition{//当帐户是在…使用/**/临时删除原代码建议备注注释要简单明了编写代码边注释,修改代码同时修改相应的注释,以保证注释与代码的一致性在必要的地方注释,注释量要适中注释的内容要清楚、明了,含义准确,防止注释二义性保持注释与其描述的代码相邻,即注释的就近原则对代码的注释应放在其上方相邻位置,不可放在下面对数据结构的注释应放在其上方相邻位置,不可放在下面;对结构中的每个域的注释应放在此域的右方;同一结构中不同域的注释要对齐变量、常量的注释应放在其上方相邻位置或右方全局变量要有较详细的注释,包括对其功能、取值范围、哪些函数或过程存取它以及存取时注意事项等的说明在每个函数或过程的前面要有必要的注释信息,包括函数或过程名称;功能描述;输入、输出及返回值说明;调用关系及被调用关系说明等
2.
2.3缩进IndentationFor__tSpecification格式规范MustFolloworNot是否必须遵循Example范例子功能块应在其父功能块后缩进必须使用一个缩进位作为缩进的单元建议if{SomePro__ss;}备注
2.
2.4空格Spa__For__tSpecification格式规范MustFolloworNot是否必须遵循Example范例操作符前后使用空格建议ifx==3关键字与紧跟着的括号间使用空格分开建议whiletrue{...}for语句中的表达式建议使用空格分开建议forexpr1;expr2;expr3备注空格不应该置于方法名与其左括号之间,这将有助于区分关键字和方法调用
2.
2.5空行BlankLineFor__tSpecification格式规范MustFolloworNot是否必须遵循Example范例两个方法之间使用一个空行建议方法内的局部变量和方法的第一条语句之间使用一个空行建议块注释或单行注释之前使用一个空行建议一个方法内的两个逻辑段之间使用一个空行,用以提高可读性建议备注空行将逻辑相关的代码段分隔开,以提高可读性
2.
2.6行长度LineLengthFor__tSpecification格式规范MustFolloworNot是否必须遵循Example范例单个方法的代码行不包含注释行建议少于100行建议单个类的代码行包含注释行建议少于1500行建议一行的长度尽量少于100个字符,因为很多的终端和工具不能很好的处理,可能导致无__确显示建议备注在任何情况下超长的语句应该在一个逗号或者一个操作符后折行一条语句折行后,应该缩进一个缩进位
2.
2.7换行NewLineFor__tSpecification格式规范MustFolloworNot是否必须遵循Example范例‘elseif’和else不要另起一行catch’需要另起一行建议if{…}elseif{…}try{…}catchEx__ptione{…}备注
2.
2.8圆括号ParenthesesFor__tSpecification格式规范MustFolloworNot是否必须遵循Example范例不应该在语句中使用无意义的括号必须使用ifi==42不使用ifi=42左右括号与内部字符之间不建议出现空格建议建议callProcaParameter不建议callProcaParameter方法名与紧跟的括号之间不建议出现空格建议建议callProcaParameter不建议callProc aParameter备注
2.
2.9大括号BigBracketsFor__tSpecification格式规范MustFolloworNot是否必须遵循Example范例{}中的语句应该单独作为一行必须使用ifi0{i++;}不使用ifi0{i++;}{}在使用时,左括号在代码块起始行行尾,右括号与代码块起始行上下对齐大括号里的代码缩进一个缩进位必须ifsubmit==null{clear;}else{update;}备注
2.3语句规范
2.
3.1变量、常量的使用Specification规范MustFolloworNot是否必须遵循Example范例一个变量不要存在多个用途必须s=账号;...s=流水号;变量类型应合适必须不建议:intsalesSum;建议floatsalesSum;操作变量时,应考虑变量精度与类型转换必须不建议ifi==salesSumif
1.2==saleSum变量的作用域尽可能小作用域过大可能导致不可预知的结果建议尽量使用常量的符号必须建议errCode=SQL_NOT_FOUND;不建议:errCode=1403;备注
2.
3.2简单语句______StatementSpecification规范MustFolloworNot是否必须遵循Example范例每一行只能包含一个语句必须使用argv++;//正确ar__--;//正确不使用argv++;ar__--;不要使用难懂的、技巧性很高的语句k=k+++k++;备注
2.
3.3条件语句ConditionStatementSpecification规范MustFolloworNot是否必须遵循Example范例不要在条件语句内用’=’这会与”==”混乱同时适用于while语句内条件说明必须不建议:ifa=b==c在混合运算表达式中使用括号避免运算优先级问题,即使对运算的优先顺序非常清晰,也应该这么做同时适用于while语句内条件说明建议建议:ifa==bc==d不建议:Ifa==bc==d嵌套语句时,应使用“{}”符号将内外层代码显式地分开必须不建议if1==iif2==jk=1;else//对应哪个ifk=2;不要将赋值与判断放在一个语句里必须不建议iffile=fopen“a.___”==NULL备注
2.
3.4分支语句SwitchStatementSpecification规范MustFolloworNot是否必须遵循Example范例每一个Switch的case建议有default做为最后出口建议switchx{case1:{expr;break;}//endcasecase2:{expr;break;}//endcasedefault:{expr;break;}//enddefault}//endswitch从一个case进入另一个case时,必须明确注明必须switchx{case1:expr1;//注意x=1时需继续执行expr2case2:expr2;break;default:exprN;break;}//endswitch备注
2.
3.5循环语句LoopStatementSpecification规范MustFolloworNot是否必须遵循Example范例如果for循环中表达式很长,建议将多行进行分割,提高代码的可读性建议for语句的初始化或更新语句中使用逗号时,避免复杂性,最多使用三个变量必要的话,初始化可以在for循环之前使用单独的语句,或更新语句可以在循环的底部执行建议在多重循环中,应将最长的循环放在最内层,最短的循环放在最外层,以减少CPU跨切循环层的次数建议fori=1;i10;i++forj=1;j_____;j++...循环次数很大时,可设法将循环内部的判断可以移到循环体外面建议ifk=0{fori=0;i1000;i++expr1}else{fori=0;i1000;i++expr2}不要轻易在循环体内修改循环变量建议备注
2.
3.6包和引入语句PacketandImportStatementSpecification规范MustFolloworNot是否必须遵循Example范例import中标准的包名要在本地的包名之前,建议packagehotl__a.net.statsimportj__a.io.*;importj__a.util.Observable;importhotl__a.util.Application;import语句建议遵循以下导入顺序jdk标准包j__a扩展包使用外部库的包使用建行的公共包使用项目的公共包建议备注import语句尽量不使用通配符“*”会加大程序编译时的开销和生成的类文件的大小为每个自身__的项目和一组有关联的方法创建一个新的j__a包
2.
3.7声明语句DeclareStatementSpecification规范MustFolloworNot是否必须遵循Example范例不要将不同类型变量的声明放在同一行必须使用intfoo;int[]fooarray;不使用intfoofooarray[];inti;Strings;尽量在声明局部变量的同时初始化必须inti=0;避免声明的局部变量与上一级变量重名必须intcount;...myMethod{ifcondition{intcount=0;//__OID!...}...}备注
2.
3.8例外控制语句Ex__ptionControlStatementEx__ptionControl例外MustFolloworNot是否必须遵循Example范例不要有空的catch语句出现,至少打印出在哪里抛出例外和相关信息必须在捕获一场时尽可能使用具体异常,最好不要使用Ex__ption这类通用异常类型,除非有明确的要求需要捕获所有异常备注
2.
3.9类和接口ClassandInte_____Specification规范MustFolloworNot是否必须遵循Example范例类、接口定义之前应先进行注释注释包括类、接口的目的、作用、功能,实现的算法、使用方法、示例程序等,还可以包括期望改进工作的地方和不希望改变的地方必须左括号”{”置于声明行尾,右括号”}”另起一行,缩进匹配相应开始语句必须classSample{intivar1;intivar2;Sampleintiintj{ivar1=i;ivar2=j;}intemptyMethod{}}备注
2.
3.10构造/析构Constructor/FinalizerSpecification规范MustFolloworNot是否必须遵循Example范例要初始化父类的构造函数建议不要在构造函数中初始化静态数据应在声明中初始化建议用构造函数做简单初始化复杂的功能应留到其他的方法在构造函数后执行建议使用Finalize释放资源,不过不要完全依赖Finalize,资源要尽可能早的进行释放建议finalize{ifNotReleased{try{releaseResour__;}catchThrowablet{handleError;}}}备注
2.
3.11方法MethodSpecification规范MustFolloworNot是否必须遵循Example范例对于参数合法性的检查,应事先明确到底是调用者检查,还是被调用的方法检查要避免都不检查和都检查必须一个方法应仅完成一个功能,不要“顺便”做点其他的事其他的事应有其他方法实现必须尽可能缩小方法的能够被访问的范围如果不需要类以外的方法访问的方法则使用private,而只需要package范围内访问的方法使用default,若即要package内的代码能够访问又要求其继承类能够访问则使用protected,最后若需要所有的代码都可以访问则再使用public建议应尽可能验证所有传入参数,不能假定非空对象验证有错误时返回明确的错误信息建议IfParameter1!=NULL{…}//endIfifParameter2!=NULL{…}//endIf尽量保证每个方法只有一个出口,否则可能出现丢失返回的情况如果有分支,应保证每个分支都有返回值建议booleancheck{booleanresult=false;if...{result=true;}returnresult;}使用方法后,必须分析返回值建议ret=ccbsTx110200;ifret!=
0...方法的参数不要过多,否则以对象的形式传入建议尽量不要编写依赖于其他方法的方法,降低方法的耦合度建议少用递归调用建议备注
2.
3.12属性AttributeCatelog类别DefineSpecification定义规范MustFolloworNot是否必须遵循Example范例Constant常量当某一些数据为常量时不要直接在代码中使用这些数据,而应该先将这些数据定义为J__a的常量然后引用常量的标识符来完成预定义功能必须ParametersandAttribute在子类中不要重复定义父类中的成员变量必须建议使用getter和setter访问同一个类中的成员变量,或者用关键字this建议this.getInternalName;或者this.internalName;应避免出现public的成员变量,原则上都是private,用getter和setter进行访问,保证封装性建议LocalVariable临时变量避免内联in-line声明临时变量,除非是循环计数建议forinti=0;i10;i++{...}建议不要在一个语句中为多个变量赋相同的值建议建议:fooBar.fChar=‘c’;barFoo.lchar=c;不建议:fooBar.fChar=barFoo.lchar=c;不要把赋值号用在容易被误认为等号的地方建议赋值不要为了提高运行时的性能而使用嵌入式的赋值建议建议:a=b+c;d=a+r不建议:d=a=b+c+r结构设计仔细设计各成员变量的顺序,尽量使最密切相关的成员或同数据类型的成员在一起,使类的结构容易理解、节省占用空间建议ClassDemo{intx1;intx2;...Strings1;Strings2;...}
2.
3.13SQL语句SQLStatementSpecification规范MustFolloworNot是否必须遵循Example范例SQL关键字应全部大写必须SELECTenameFROMemp表名和字段名应小写必须备注
2.4日志规范Specification规范MustFolloworNot是否必须遵循Example范例在正式提交的代码中,不允许使用Console输出方式显示信息必须日志文件名为系统英文缩写.log的命名规则文件大小限制为最多20Mb,即当日志文件超过20Mb时,旧日志文件重命名为系统名称.log.nn从1开始编号以步长1递增,新日志写入系统名称.log必须日志的输出格式不包括异常树信息日期yyyy-M-d时间HH:mm:ss[日志级别]对应程序文件名:行号定制信息必须对于“敏感”信息(如客户__),禁止使用debug以上级别的日志记录必须日志应区分如下几类情形发生致命错误时运行将终止fatal发生错误仍可继续执行error发生警告仍可继续执行warn记录运行过程或干预情况info调试程序记录信息等debug必须备注统一使用类库中记录日志接口实现日志记录、信息打印功能有关日志分类及规范要求参见中心相关日志规范,本处仅给出共性原则
2.5一般性规范Catelog类别GenericStandard一般性规范MustFolloworNot是否必须遵循Example范例Import相关问题排序import语句,越具体的包或者类越往后排建议importj__a.io.*;importj__a.text.*;importj__a.util.*;importj__ax.servlet.*;importj__a.servlet.tcp.*;importcom.ibm.gui.some.*;importcom.ibm.gui.test.*;如果只用到某一个包中某一个类的话,尽量import这一个具体的类,而不是整个包建议j__a.io.IOEx__ption;importj__a.text.For__t;importj__a.util.Vector;Generic一般问题一个缩进位相当于4个空格建议常量值应定义为有意义的类静态变量,建议加上final声明建议publicstaticfinalStringKEY_ADDRESS=Connection.Address;类中用this关键字来访问同一个类中的非静态方法或变量建议publicvoidmyFunction{this.amount=0;intnewAmount=this.getBalan__;}比较的时候要把常量放在操作符左边建议if1==xandif“123”.equalsuserId要使用J__a2引入的Collection类,尽量不要再使用J__a2不推荐的HashTable和Vector建议进行字符串连接的时候,尽量使用StringBuffer类来进行类似处理建议建议StringBufferstrBuf=newStringBuffer“Nameis”;strBuf=strBuf.appendname;strBuf=strBuf.append“”;returnstrBuf.toString;or:returnnewStringBuffer“Nameis”.appendname.append“”.toString;不建议return“Nameis“+name+“”;备注
2.6其它代码__规范
2.
6.1多线程Multi-ThreadingStandard规范MustFolloworNot是否必须遵循Example范例建议不要使用J__a2不推荐使用的相关方法必须不建议:Suspend;Resume;Stop;尽量同步最小的逻辑单元,比如Synchronize程序块而不是整个方法建议尽量避免在同步的模块中进行I/O等速度慢的系统调用以免影响性能建议备注
2.
6.2ServletStandard规范MustFolloworNot是否必须遵循Example范例Servlet类命名一般对应于所服务的对象加后缀Servlet来命名必须UserServletTradeServlet使用servlet注意共享变量的同步问题,尽量使用servlet的局部变量建议避免在HttpSession中放置大对象以免影响Session性能建议备注
2.
6.3JDBCStandard规范MustFolloworNot是否必须遵循Example范例把Connection/Statement/ResultSet关闭语句都写在一起在Finally中进行关闭处理建议try{//getJDBCconnectionandperformJDBC}catchThrowablet{}finally{ifnull!=resultSettry{resultSet.close;}catchThrowablet{}ifnull!=statementtry{statement.close;}catchThrowablet{}ifnull!=connectiontry{connection.close;}catchThrowablet{}}建议使用字段名来调用数据库中间层组件返回的结果集这样在数据库设计更改或查询的SQL语句发生变化时,不会影响到程序的执行建议建议用字段名来存取结果集forinti=1;i=dt.getRowCount;i++{Stringfield1=dt.getFieldifield
1.toString;…}不建议forinti=1;i=dt.getRowCount;i++{Stringfield1=dt.getFieldi
0.toString;…}尽量不要使用*通配符,应该具体写明字段名建议建议SELECTnameaddressFROMtableName不建议SELECT*FROMtableName
2.
6.4异常规范Standard规范MustFolloworNot是否必须遵循Example范例能处理的异常尽量处理,不能处理或不关心的异常则继续抛出决不允许捕获异常却不做任何处理必须禁止try{Class.forName“business.do__in.Customer”;}catchClassNotFoundEx__ptione{}//无任何处理异常抛出源需要在抛出异常之前将异常写入日志中建议不要简单的捕获通用异常,除非有进一步的细致处理建议不好的例子try{//...pro__ssing}catchEx__ptione{//不应该一开始就捕获通用异常,除非进一步细致地判断异常的类型,并处理//…pro__ssing}不要将特定异常转换为更通用的异常将特定异常转换为更通用的异常,会隐藏原始异常的具体线索,将使其他收到新异常的代码,难以分析、处理必须不好的例子try{//Error-pronecode}catchIOEx__ptione{Stringmsg=“thereisaEx__ptioncatchit”;thrownewEx__ptionmsg;//将使其他收到新异常的代码,难以确定异常的准确类型}避免能预先处理的异常的发生try-catch代码块能处理异常,但也会降低运行效率如果某些问题能预先处理,则运行效率会得到提升建议ifref!=null{//codetoworkwiththe“ref”o__ectreferen__}不建议try{//codetoworkwiththe“ref”o__ectreferen__}catchNullPointEx__ptione//codetoworkwithNullPointEx__ption}
2.
6.5工程配置文件规范Standard规范MustFolloworNot是否必须遵循Example范例文件头部应描述本文件的作用和使用必须#文件名ccb_cbps.properties#文件功能xxxx#使用场景:xxxx#资料库dfc.bof.registry.repository=ccb_test......相关的配置项应出现同一个文件中,不相关的配置项应出现在不同的文件中必须配置项的名称与实际作用应该一致必须复杂的配置项应有必要的说明,便于修改配置必须配置文件的数量不应过多,以降低配置难度建议配置文件应集中存放于专门的目录中,避免到处存放建议不同配置文件的书写风格应尽量一致,文件名后缀尽量相同建议备注。