Zdeveloper2.x代码规范

1 ZDeveloper命名规范

  常用JAVA包命名(以platform插件为例)。

        C~(AJRCYP~K1C{UFFMO83L7

 

2 公共包

  plugins 存放所有插件配置文件;

  lang 存放所有插件国际化配置文件;

  JAVA 存放所有插件java类文件;

  DB目录存放zdm文件。

 

3 一般情况java包

  *.ui 子包存放本插件所属UI类(*.ui省略前面的com.zving.platform,下同);

  *.service 子包存放本插件所属扩展服务类;

  *.service.impl 子包存放扩展服务项实现类;

  *.extend 子包存放本插件扩展相关的类(扩展点接口类或抽象类);

  *.extend.impl 子包存放本插件扩展实现类(扩展行为或其他扩展实现类);

  *.bl 子包存放本插件所属后台业务逻辑类。

 

4 特殊扩展服务用到java包

  *.code 子包存放本插件所属扩展代码管理扩展服务的扩展项类;

  *.privilege 子包存放本插件扩展菜单权限服务的扩展项类;

  *.config 子包存放本插件扩展配置项扩展服务的扩展项类;

  *.properties 子包存放本插件扩展栏目或站点配置项相关的扩展服务的扩展项类;

  *.tag 子包存放本插件扩展标签服务的扩项类;

  *.tempalte 子包存放本插件扩展模板服务的扩展项类;

  (插件包的命名参展以上方式,项目需要可以酌情添加有一定意义的子包)

 

5 插件包

  插件包统一以com.zving.+插件名称来命名(公司名称域名+插件名称)。

        `[P{X{3KTBZD%DTXQ~TJSKB

 

6 插件类

  插件名称+Plugin ,位于插件所属包根目录下。

        92]ZCFUXU]0)QW%I@)_TULU

 

7 插件配置文件

  “com.zving.+插件名称+.plugin”。

(17{TG1@(QD%5%OK84HJ)VT

 

8 UI类

  页面名称+UI,类存放位置为com.zving.+插件名称+.ui子包。

        C2P(7B3~SH{O1IT)7KR)EQD

 

9 扩展服务类

  服务名称+Service,类存放位置为com.zving.+插件名称+.service子包。

        L4N@3Q[(CX(_[KHV0%~V$]I

 

10 扩展项类

  依据扩展服务类定义子类接口规则命名,如模板服务的扩展项以 Template结尾,菜单权限扩展服务器的扩展项以Priv结尾等。

 

11 扩展点抽象类

  扩展点ID,类存放位置为com.zving+插件名称+.extend子包。

 

12 扩展行为类

  扩展点ID+Action,类存放位置为com.zving.+插件名称+.extend.impl子包。

 

13 ZDM文件 

  *.zdm文件统一放在DB目录下,通常每个插件对应唯一的一个ZDM文件,zdm文件以插件名称命名,首字母大写。

  zdm中的表命名规则:

  1)首字母大写;

  2) 通用前缀ZC***,例如:ZCContent,其中Z表示ZVING,C指代产品类型CMS,Content表示具体的表实际描述名称。ZDUser,其中D表示Developer,指我们的基础开发平台。类似的还有ZShop中的ZSGoods等。 

 

14 UI目录下文件命名规则 

  目录名称一律小写,页面文件名称首字母小写。

 

15 JAVA代码

  Java代码应条理清晰易读,通常保持缩进规范适当空行即可,复杂的业务逻辑代码添加关键部分的注释说明。

 

16 总体原则

  命名能有具体含义,不要是用简单字母组合、中文拼音以及不常见的单词缩写等。

 

17 JAVA代码命名规范(摘自网络)

  定义规范的目的是为了使项目的代码样式统一,使程序有良好的可读性。

  包的命名  (全部小写,由域名定义):

  Java 包的名字都是由小写单词组成。但是由于Java面向对象编程的特性,每一名Java程序员都 可以编写属于自己的Java包,为了保障每个Java包命名的唯一性,在最新的Java编程规范中,要求程序员在自己定义的包的名称之前加上唯一的前缀。 由于互联网上的域名称是不会重复的,所以程序员一般采用自己在互联网上的域名称作为自己程序包的唯一前缀。 

  例如:net.frontfree.javagroup。

  类的命名 (单词首字母大写):

  根据约定,Java类名通常以大写字母开头,如果类名称由多个单词组成,则每个单词的首字母均应为大 写例如TestPage;如果类名称中包含单词缩写,则这个所写词的每个字母均应大写,如:XMLExample,还有一点命名技巧就是由于类是设计用来代表对象的,所以在命名类时应尽量选择名词。 

  例如: Graphics。

  方法的命名 (首字母小写,字母开头大写):

  方法的名字的第一个单词应以小写字母作为开头,后面的单词则用大写字母开头。 

  例如:drawImage。

  常量的命名 (全部大写 ,常加下划线):

  常量的名字应该都使用大写字母,并且指出该常量完整含义。如果一个常量名称由多个单词组成,则应该用下划线来分割这些单词。 

  例如:MAX_VALUE。

 

18 参数的命名

  参数的命名规范和方法的命名规范相同,而且为了避免阅读程序时造成迷惑,请在尽量保证参数名称为一个单词的情况下使参数的命名尽可能明确。

 

19 Javadoc注释

  Java 除了可以采用我们常见的注释方式之外,Java语言规范还定义了一种特殊的注释,也就是我们所说的Javadoc注释,它是用来记录我们代码中的API的。Javadoc注释是一种多行注释,以/**开头,而以*/结束,注释可以包含一些 HTML标记符和专门的关键词。使用Javadoc 注释的好处是编写的注释可以被自动转为在线文档,省去了单独编写程序文档的麻烦。 

  例如:

  /** 

  * This is an example of 

  * Javadoc 

  * @author darchon 

  * @version 0.1, 10/11/2002 

  */

  在每个程序的开始部分,一般都用Javadoc注释对程序的总体描述及版权信息,然后在主程序中可以为每个类、接口、方法、字段添加 Javadoc注释,每个注释的开头部分先用一句话概括该类、接口、方法、字段所完成的功能,这句话应单独占据一行以突出其概括作用,在这句话后面可以跟随更加详细的描述段落。在描述性段落之后还可以跟随一些以Javadoc注释标签开头的特殊段落,例如上面例子中的@auther和@version,这 些段落将在生成文档中以特定方式显示。

 

 

20 变量的命名

  主要的的命名规范有以下三种:

  Camel 标记法:首字母是小写的,接下来的单词都以大写字母开头;

  Pascal 标记法:首字母是大写的,接下来的单词都以大写字母开头;

  匈牙利标记法:在以Pascal标记法的变量前附加小写序列说明该变量的类型。

  在Java我们一般使用匈牙利标记法,基本结构为scope_typeVariableName,它使用1-3字符前缀来表示数据类型,3个字符的前缀必须小写,前缀后面是由表意性强的一个单词或多个单词组成的名字,而且每个单词的首写字母大写,其它字母小写,这样保证了对变量名能够进行正确的断句。例如,定义一个整形变量,用来记录文档数量:intDocCount,其中int表明数据类型,后面为表意的英文名,每个单词首字母大写。这样,在一个变量名就可以反映出变量类型和变量所存储的值的意义两方面内容,这使得代码语句可读性强、更加容易理解。 byte、int、char、long、float、 double、boolean和short。

  数据类型/前缀(附):

  byte/b

  char/c

  short/sh

  int/i

  long/l

  char/c

  string/s

  float/f

  double/d

  hashtable /h

  []/arr

  List/lst

  Vector/v

  StringBuffer/sb

  Boolean/b

  Byte/bt

  Map/map

  Object/ob

  对于在多个函数内都要使用的全局变量,在前面再增加“g_”。例如一个全局的字符串变量:g_strUserInfo。

  在变量命名时要注意以下几点:

  ● 选择有意义的名字,注意每个单词首字母要大写;

  ● 在一段函数中不使用同一个变量表示前后意义不同的两个数值;

  ● i、j、k等只作为小型循环的循环索引变量;

  ● 避免用Flag来命名状态变量;

  ● 用Is来命名逻辑变量,如:blnFileIsFound。通过这种给布尔变量肯定形式的命名方式,使得其它开发人员能够更为清楚的理解布尔变量所代表的意义;

  ● 如果需要的话,在变量最后附加计算限定词,如:curSalesSum;

  ●  命名不相包含,curSales和curSalesSum;

  ● static final 变量(常量)的名字应该都大写,并且指出完整含义;

   如果需要对变量名进行缩写时,一定要注意整个代码中缩写规则的一致性。例如,如果在代码的某些区域中使用intCnt,而在另一些区域中又使用intCount,就会给代码增加不必要的复杂性。建议变量名中尽量不要出现缩写;

   通过在结尾处放置一个量词,就可创建更加统一的变量,它们更容易理解,也更容易搜索。例如,请使用strCustomerFirst和strCustomerLast,而不要使用strFirstCustomer和strLastCustomer。常 用的量词后缀有:First(一组变量中的第一个)、Last(一组变量中的最后一个)、Next(一组变量中的下一个变量)、Prev(一组变量中的上 一个)、Cur(一组变量中的当前变量);

  ● 为每个变量选择最佳的数据类型,这样即能减少对内存的需求量,加快代码的执行速度,又会降低出错的可能性。用于变量的数据类型可能会影响该变量进行计算所产生的结果。在这种情况下,编译器不会产生运行期错误,它只是迫使该值符合数据类型的要求。这类问题极难查找;

  ● 尽量缩小变量的作用域。如果变量的作用域大于它应有的范围,变量可继续存在,并且在不再需要该变量后的很长时间内仍然占用资源。它们的主要问题是,任何类 中的任何方法都能对它们进行修改,并且很难跟踪究竟是何处进行修改的。占用资源是作用域涉及的一个重要问题。对变量来说,尽量缩小作用域将会对应用程序的 可靠性产生巨大的影响。

  关于常量的命名方法,在JAVA代码中,无论什么时候,均提倡应用常量取代数字、固定字符串。也就是说,程序中除0、1以外,尽量不应该出现其他数字。常量可以集中在程序开始部分定义或者更宽的作用域内,名字应该都使用大写字母,并且指出该常量完整含义。如果一个常量名称由多个单词组成,则应该用下划线“_”来分割这些单词如:NUM_DAYS_IN_WEEK、MAX_VALUE。

hackIE