开发规范rxcWord文档格式.docx
- 文档编号:20699720
- 上传时间:2023-01-25
- 格式:DOCX
- 页数:34
- 大小:94.83KB
开发规范rxcWord文档格式.docx
《开发规范rxcWord文档格式.docx》由会员分享,可在线阅读,更多相关《开发规范rxcWord文档格式.docx(34页珍藏版)》请在冰豆网上搜索。
ERROR:
系统显示为红色。
内容为系统提示错误信息。
(例:
数值、英字符、日期等输入检验,业务相关检验,DB异常,并发处理等)。
WARNING:
系统显示为黄色。
内容为系统提示的警告或提示信息。
对数据库进行增,删,改时的前台提示确认信息)。
INFO:
系统显示为绿色。
内容为系统提示处理成功信息。
操作数据库更新成功,(XXX行)数据导出成功等信息)。
1.1.3Js创建
子系统名+业务名称+两位编号
例如:
srvPartsDetail01.js
通用JS中间+Cmn
srvCmn01.js
注:
编码格式为UTF-8
针对于列表,单选或多选未选中情况下进行提交时,使用js前台检查,共通的js已经创建在fastunit/domain/cmn/下Cmn01.js调用方法deleteCheck('
url'
'
unitID'
)。
1.1.4Js编写规范
编写js时应注意IE兼容性问题,建议使用mootools.js(1.2.4)平台已经将mootools.js引入到单元中。
获取当前页面ID为”aa“的元素
正常可以写为document.getElementById(‘aa’);
mootools可写为$(‘aa’);
1.2表
1.2.1表创建
所有的业务表创建在app域下;
当在其他域中引用表时,表达式为app|tableName。
1.2.2表管理
通常不在平台中创建表,而是在数据库中创建表之后导入平台;
输入表名,如果导入的表不是来自其他的数据库则数据源为空,点击导入(不能导入相同的表名)。
下图为SRV_ACCOUNTRECV_TB导入平台;
需要注意以下几点。
数据类型:
必须与数据库字段类型保持一致。
值生成器:
例如createdate创建时间,选择值生成器是为了不必程序处理,平台提供赋值功能,但数据类型是时间戳,值生成器也必须是时间戳,否则不会自动赋值。
生成规则:
选择值生成器后,要选择生成规则,例如,创建时间生成规则选为新增;
表示在新增时才可按值生成器赋值。
修改时间选择全部;
表示新增、修改数据时都将按值生成器赋值。
版本字段:
选择updatecount更新次数,唯一用来控制并发字段。
2后台开发向导
2.1命名规范
2.1.1Package命名
2.1.2Package的名字统一用小写英文单词书写
Package的名字=包前缀+包名
包前缀如下:
com.rxc+系统名+子系统
包名:
程序功能的英文名(小写)如下:
packagecom.rxc.amis.action;
2.1.3Class命名
采用完整的英文描述符,所有单词的第一个字母大写
类名=功能码+程序功能的英文名+类种类
功能码(各功能名的缩写)例如:
Vehicle--VhcService-->
Srv
类种类:
Action/UI/Help/MapListFactory/SqlProvider等
例如下:
1)ActionLoginAction.java
2)HelpLoginHelp.java
3)UILoginUI.java
4)MapListFactoryLoginMLF.java
5)SqlProviderLoginSP.java
2.1.4方法命名
第一个英文单词小写,后续每个英文单词首字母大写
(说明:
构造函数的命名应与类名保持一致)例如:
getInboardColor()
2.1.5变量命名
类型标识符小写,后续每个英文单词首字母大写
变量名=类型标识符+描述词
变量类型
标示符
Int
i
Short
sh
Long
l
Float
f
Double
d
Boolean
b
Char
c
Byte
by
String
str
List
lst
Bigdecimal
bd
Biginteger
bi
Date
dt
一般对象
o
描述词为一个简短且意思明确的英文单词
如果通过以上规则,还出现同名的变量,可以在变量后添加后缀来解决,后缀以下划线"
_"
来连接
例如:
intiLoop;
StringstrUserName;
数组应该总是用下面的方式来命名:
byte[]byDataArray;
2.1.6常量命名
常量的名字应该都大写,单词之间用下划线分隔
staticfinalintMAX_WIDTH=999;
不变化的定义成常量类。
每个域一个,后期修改。
2.1.7参数命名
参数的名字必须跟变量的命名规范一致,
参数的名字规则为第一个单词首字母小写,其后的单词的每个字母大写
getColorDetail(StringstrColorCode)
2.2JAVA编码规范
2.2.1JDK版本要求
Jdk1.5或以上。
注意:
所有的文本文件(js文件以及java文件,存储过程等)的编码格式都为UTF-8
2.2.2编码规定
2.2.2.1Import规则
import语句不要直接引用类
importjava.util.Vector;
importjava.util.Date;
/*错误*/
importjava.util.*;
/*正确*/
引用顺序:
1>
.引用java标准类库
2>
.引用javax扩展类库
3>
.引用马自达项目相关类库
4>
.引用其他第三方类库
每一类import类库之后要加上一个空行
2.2.2.2格式约定
缩进
本项目要求缩进采用4个半角空格
不要在源文件中使用Tab字符
行尾不要保留没有意义的空格
如果因为行过长发生换行,语句尚未结束的情况下,缩进为4个空格
换行
前括号"
{"
不得出现在行首,只能出现在行尾,即"
不得另起一行
"
else"
必须在后括号"
}"
之后,不得另起一行
while"
catch"
finally"
一行内不得出现两条语句。
arrayInit[0]=7;
arrayInit[1]=8;
示例代码:
publicclassUntitled1
extendsObject
implementsComparable{
publicintcompareTo(Objectsomething){
return3;
}
publicbooleancalcStringValue(intlength,StringvalueToTestFor,
booleantrim)
throwsException{
int[]arrayInit=newint[]{234,34,234,45};
if(trim){
if(valueToTestFor==null){
returnfalse;
}else{
valueToTestFor=valueToTestFor.trim();
}elseif(length<
0){
length=5;
try{
length=234/34+
Integer.parseInt(valueToTestFor+Integer.toBinaryString(length)+
Integer.toHexString(length-4));
}catch(NumberFormatExceptionex){
throw(Exception)ex;
}finally{
do{
switch(length){
case2:
break;
default:
arrayInit[0]++;
}while(arrayInit[0]<
3);
returntrue;
空格
分号应该紧跟行尾最后一个字符,分号与行尾字符之间不应该有空格
方法名应该紧跟左括号"
("
,方法名与左括号之间不应该有空格
关键字、保留字跟左括号之间应该有一个空格
两个连续左括号之间应该有一个空格
左括号与同行后续内容之间不应该有空格
逗号与同行后续内容之间应该有一个空格
分号与同行后续内容之间应该有一个空格
前括号"
与同行前面内容之间应该有一个空格
强制类型转换与同行后续内容之间应该有一个空格
算数运算符、逻辑运算符连接的两个元素之间应该用空格分隔
publicclassUntitled1{
publicvoidprintData(intx,inty){
int[]j=newint[y];
ArrayListlist=newArrayList();
for(inti=0;
i<
y;
i++){
j[i]=x+y;
list.add(newInteger(x*i));
System.out.print((Integer)list.get(i));
空行
声明package之后有一个空行
声明import之后有一个空行
类内部全局变量声明与方法之间有一个空行
类内部各方法之间有一个空行
方法内部变量声明与正式代码之间有一个空行
方法内部代码各逻辑之间有一个空行
类内部不得出现连续两个及两个以上空行的情况
packagecom.borland.samples;
importcom.borland.test.*;
privateintheight;
privateintwidth;
publicvoidsetHeight(intheight){
this.height=height;
publicintgetHeight(){
returnheight;
行宽
行宽不得超出80个字符
2.2.2.3强调封装性
根据OO编程思想,一个封装良好的类应该是所有的成员变量都是私有的,外部只能通过公有的接口方法来实现对内部属性的访问。
因此,类内部所有的全局变量应该声明为private类型的
同时设置public的get和set方法,实现从外部对此变量的访问
privateStringstrStatus="
"
;
publicStringgetStatus(){
returnstrStatus;
publicvoidsetStatus(StringstrInStatus){
strStatus=strInStatus;
禁止使用内部类
类的声明最好不要使用final类。
2.2.3程序LOG
2.2.3.1级别描述
5DEBUG测试信息
4INFO正常运行信息
3WARN可能的问题
2ERROR错误信息
1FATAL致命问题
(建议使用2,3,4,5四种)。
在捕捉异常时,输出errorLog信息。
数据库操作SQL文以及事件正常处理完成时,输出infoLog信息。
方法开始,结果时输出debugLog信息。
2.2.3.2样例代码
程序Log,使用slf4j
importorg.slf4j.Logger;
importorg.slf4j.LoggerFactory;
privatestaticfinalLoggerlog=LoggerFactory.getLogger(类.class);
log.error("
错误信息"
);
2.2.3.3禁止事项
最终提交程序版本不能包含system.out..打印日志等语句。
2.2.4注释
2.2.4.1注释品质要求
注释品质要达到使新加入项目的PG能够独立看懂代码为最低要求
注释行数要达到代码总行数的20%以上
声明有重要作用的变量,调用函数,进入逻辑分支,进入循环等情况下必须加注释
把javadoc的标准化集合进来
2.2.4.2版权声明
在各文件头添加如下版权声明
////////////////////////////////////////////////////////////////////////////
2.2.4.3注释规则
类
类的注释必须包含如下的内容:
类的简要描述,可以采用中文或英文,创建日期,创建的人前面加入@author,
当前的版本号前面加入@version
例:
/**
*经销店可以在系统上指定TFL发车的优先度<
p>
*<
复杂的处理添加详细说明<
/p>
*@authorrxcadmin
*@version1.00,2007/08/10新规作成
*@authorrxcadministrator(da)(变更时)
*@version1.10,2007/0910改善案件名(变更时)
**/
publicclassVlgDOTFLPriorityModelextendsCmnInfoModel{
…………………
变量、方法
对类中变量声明的注释请使用注释符"
//"
如下:
privateTfpSubmitbtnReturn=null;
对于public的成员变量,使用块注释方法加注释,以便可以生成javadoc文档。
/**
*成员变量含义
*/
PublicTfpSubmitbtnReturn=null;
每个类的方法声明及方法内的代码都要有注释,其中类的方法注释含如下内容:
方法功能或作用的简要描述
参数数据类型,前面加入@param
返回数据类型,前面加入@return
抛出异常说明,前面加入@exception
例:
*获得提取文件的结构体方法说明.
*@paramextStructCmnFontExtractionStruct参数说明
*@paramstrRootDirrealfiledir参数说明
*@returnStringexecuteresult返回内容说明
*@exceptionSQLException异常说明
*/
publicStringgetExtractDetail(CmnFontExtractionStructextStruct,StringstrRootDir)
throwsSQLException{
………………….
//Rollback
connection.rollback();
}
2.2.5常用类的使用
2.2.5.1Acion
执行命令行:
继承DefaultAction
publicclassSavePartsActionextendsDefaultAction{
publicvoiddoAction(DBdb,ActionContextac)throwsException{
//获取命令行配置的table
Tabletable=(Table)ac.getTables().get(0);
List<
ColumnRow>
rows=table.getRows();
ColumnRowrow=rows.get(0);
//time赋值
row.set("
time"
"
2009-09-09"
//调用命令行保存
super.doAction(db,ac);
执行ajaxAction:
实现Action
publicclassGetPartsAjaxActionimplementsAction{
publicActionContextexecute(ActionContextac)throwsException{
Ajaxajax=newAjax(ac);
//获取零件代码
StringpartsCode=ac.getRequestParameter("
partsCode"
//赋值
ajax.setValueByName(0,"
pat004.order.list.partscode"
partsCode);
ajax.send();
returnac;
涉及处理数据库并没有执行命令行,可继承TransactionAction
publicclassSavePartsOrderActionextendsTransactionAction{
publicvoiddoAction(DBdb,ActionContextac)throwsException{
//保存主表
Tabletable=newTable("
app"
"
PAT_PARTSORDER_M"
for(inti=0;
i<
data.size();
i++){
StringorderNo=data.getRow(i).get("
orderno"
StringfactoryCode=data.getRow(i).get("
factorycode"
StringorderSum=data.getRow(i).get("
ordersum"
StringordersType=data.getRow(i).get("
orderstype"
ColumnRowrow_m=table.addInsertRow();
row_m.set("
orderNo);
//订单号
ordersType);
//供应商代码
companycode"
companyCode);
//公司代码
}
db.save(table);
2.2.5.2Help
当业务比较复杂,避免一个类里的代码过多,可写一个辅助类。
//用单表查询作为样例,一般涉及到多表查询逻辑复杂时可创建此类
publicclassPartsrsdiinHelp{
//参数为零件代码
publicStringgetSql(Stringpartscode){
StringBuffersb=newStringBuffer();
sb.append("
select*fromPAT_PARTSIN_TBwhere1=1"
//零件编码
if(!
Checker.isEmpty(partscode)){
sb.append("
andpartscode='
sb.append(partscode);
'
//返回SQL
returnsb.toString();
2.2.5.3公共方法类
公共方法类示例
publicclassUtilimplementsjava.io.Serializable{
publicvoidSrvCommonCheck(){}
//默认除法运算精度
privatestaticfinalintDEF_DIV_SCALE=10;
*提供精确的加法运算。
*@paramv1被加数
*@paramv2加数
*@return两个参数的和
publicstaticdoubleadd(doublev1,doublev2){
BigDecimalb1=newBigDecimal(Double.toString(v1));
BigDecimalb2=n
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 开发 规范 rxc