- 浏览: 101887 次
- 性别:
- 来自: 北京
最新评论
-
vera_sq:
怎么得到的总是null呢?
关于Class.getClassLoader()空指针. -
729251283:
你的这种做法对吗?用你的方法不成功 。
maven tomcat结合,热部署,调试 -
mouer:
需要开启snmp
基于SNMP和JRobin的监控 -
liliugen:
跑步起来的代码,。无用
基于SNMP和JRobin的监控
Nutz Java 编码规范 (V1.0)
By:zozoh<zozohtnt></zozohtnt>
0. 规范的规范
- 本规范的每一条目必须无二义性,并且可执行。否则作废
- 本规范的条目分为两个级别:
- 规则 - R
- 建议 - S
- 本规范所有的“规则”条目必须被遵守
1. 代码格式
-
R-使用统一的 Eclipse 的代码格式: code.google.com/p/nutz/source/browse/trunk/doc/eclipse/nutz-eclipse-java-code-format-1.0.xml
- 请从 svn 的 trunk/doc/eclipse/nutz-eclipse-java-code-format-1.0.xml 获得此文件
-
S-非 Eclipse 用户请阅读上述 XML 代码自行遵守
- 基本上我们没有为非 Eclipse 用户指定规范,我们还没有一个好办法
2. 命名
2.1 包
-
R-包名必须全部小写,2个以内单词。
- S-最好为 1 个单数名词
- R-所有项目的包要以 “org.nutz” 为父 包 。
2.2 类和接口
- S-最好为名词
- R-命名类和接口时,需要将所有单词的首字母大写。
- R-接口的命名不采用首字母为 I 或加上 IF 后缀的命名方式 。例 如 :IBookDao 、 BookDaoIF 等 。
- R-抽象类必须使用 Abstract 作为类名的前缀,而接口建议使用 Interface 作为 接口名后缀。
- R-异常类应该使用 Exception 做为 名称 后缀。
- R-如果是运行一次就抛弃的类,以 ing 结尾,比如Rendering
-
R-类名尽量短,但是最好不要缩写,如果缩写,必须为特别常用的类,比如 org.nutz.dao.Cnd
- 因为调用者书写你的类名太长,他(她)的IDE会自动替他(她)换行,他会觉得有点不爽
-
R-不要和 Java 的标准库中的类名冲突,比如 Class, Object, String 等
- 如果冲突,就表示你极其藐视 Java 标准库中的那个的设计
- 调用者需要花更多的时间和代码来明确他使用的是你的类, 而不是标准库中的那个
-
S-以下情况可以允许写奇怪类名 -- 名称简短,让人一眼不知道什么意思,用了以后一眼就能知道什么意思
- 类特别常用
- 类非常特殊,难以归类
- 私有类或内部类
- 不推荐其他人调用的 公有、保护、默认类
- 起个奇怪的名字,就是不想让你关心这个类的代码
-
R-缺省接口实现应该使用 Default 名称 前缀 。例 如 : DefaultEntityMaker。
- 也可以采用 Impl 作为后缀,表示这个实现为此接口的最优实现或者唯一实现
2.3 成员变量
- S-最好为单数名词
- R-能 private 就不要 default,能 default 就不要 protected,最好不要 public
-
R-如果是集合或数组,用复数名词
- Map pets, 比 Map petMap 要好
- R-不要用一个字母,尤其是 i,你可以用 index 或者 cursor 来代替
2.4 常量
- R-命名常量(带有 final 修饰符的域)时需分隔。如 : public final int MAX_VALUE = 30 。
2.5 局部变量
- R-局域变量名要尽量短,推荐用缩写,比如 StringBuilder sb
- R-总的来说局部变量请随意命名,越短越好
2.6 成员函数和静态函数
- R-除了 setter / getter,其他的函数采用动词或者动名短语
-
S-以下情况可以允许写奇怪函数 -- 名称简短,让人一眼不知道什么意思,用了以后一眼就能知道什么意思
- 函数特别常用
- 函数非常特殊
- 私有函数或默认函数
-
S-支持链式赋值的 setter 允许写成 ,并且也可以支持同名 getter
// Setter public Pet name(String name){ this.name = name; return this; } // Getter public String name(){ return this.name; }
3. 注释
- R-注释必须和代码保持同步 。
- R-注释中的第一个句子要以(英文)句号、问号或者感叹号结束。 Java成工具会将注释中的第一个句子放在方法汇 总表和索引中。
-
R-如果注释中有超过一个段落,用
标签 分隔。
-
R-如果注释中有多个章节,用
标签声明每个章节的标题。
-
R-如果注释需要换行,用
标签。 - R-示例代码以 包裹。
3.1 类 Java Doc
- R-要著名作者,格式为 @Author XiaoMing(xm@gmail.com)
- R-继承的方法可以省略注释,但是被继承方法必须有注释。
3.2 函数 Java Doc
- R-简单的 get/set 方法可以省略注释。
- R-继承的方法可以省略注释,但是被继承方法必须有注释。
3.3 字段 Java Doc
- R-没有更多说明了
3.4 函数内部注释
- R-行注释和块注释都是可以被接受的
- R-不要写 JAVA DOC,没意义
- R-代码质量不好但能正常运行,或者还没有实现的代码用 “ //TODO: ”
-
R-在 if ... else .. 分支上做注释格式应该如下:
// comments for case A if(xxxx){ //TODO you code here } /* * Multipline comments for case B */ else if(xxxxx){ //TODO you code here } // comments for default case else{ //TODO you code here }
4. 编程
- R-你的每一次提交,必须都是编译通过的
-
R-你的每一次提交,最好都是通过 JUnit 测试的
- 除非有特别的情况 -- 比如你要和其他人分享的修改
-
R-无论任何时候,同样的功能,一段更短的代码,总比更长的代码要好
- 这里的“短”,主要指的是“逻辑”短,而不是“字符长度”短
- R-删掉一段代码的贡献,比增加一段代码的贡献要大,至少不比它小
-
R-避免过度设计
- 先让代码能工作,然后重构成为优美的代码
- 你需要知道,“接口”固定了架构,“类” 不是,当它进化为接口的时候就固定了
- 代码结构设计请遵循《草坪原则》
5. 单元测试
-
R-用例名请用 "长名" - 一句话,用下划线_代替空白
- 通过这个名字,基本可以了解测试是干什么的
- R-主要接口和实现类要尽可能多的被用例覆盖
发表评论
-
HotSpot是什么
2011-03-24 18:00 15761. HotSpot历史 SUN的JDK版本从1 ... -
Java.*和javax.*以及com.sun.*
2011-03-24 17:54 2025java.* 是j2se的标准库,是java标准的一部分,是对 ... -
关于Class.getClassLoader()空指针.
2009-10-12 14:11 1544ClassLoader cl = XXX.class.getC ... -
线程的异常捕获(非线程组方式)
2009-12-02 09:36 1409由于线程的种种特性,有时候我们不能捕获线程所抛出的异常,如下情 ... -
web页面代码关键字着色(类似于CSDN的插入代码)
2009-12-04 13:33 1289一直以来觉得CSDN和JAVAEYE的代码关键字着色很神奇.. ... -
Log4j配置文件
2009-12-04 14:54 810#%p 输出优先级,即DEBUG,INFO,WARN,ERRO ... -
对象池化技术(1)--为什么要使用
2009-12-14 14:18 963网上的转帖很多,其中我 ... -
对象池化技术(2)--一个简单的实现(基于apache的commons-pool)
2009-12-16 16:39 1560这几天没事的时候都在自己写池的通用方法..今天测试了下,性能超 ... -
Proxy模式以及java动态代理实现
2009-12-24 16:28 870一. Proxy模式定义: 为其他对象提供一种代理以控制这个对 ... -
ArrayList的初始化(可用作其他集合类)
2009-12-30 14:28 663public class Test { public ... -
基于SNMP和JRobin的监控
2010-01-05 19:47 833SNMP4J模拟SNMPGET public class S ... -
java线程死锁例子
2010-01-10 11:12 855public class DealLockTest imple ... -
java.util.concurrent下线程池总结(1)
2010-02-08 09:35 741首先,看下总的结构: Executors类,提供了一 ... -
java.util.concurrent下线程池总结(2)
2010-02-08 09:36 928生命周期: ExecutorService扩展了Execut ... -
终止程序(exit() and halt())
2010-03-11 05:50 1304public class Main extends Threa ... -
线程中断.
2010-03-12 02:14 629昨天试了试线程中断...代码如下: public cl ... -
JAVA获取CLASSPATH路径
2010-05-10 10:47 790ClassLoader提供了两个方法用于从装载的类路径中取得资 ... -
传统socket举例--基于io
2010-05-10 15:34 742教程网上多的是,直接上代码.. ServerMain.j ... -
[jdk1.4]socket举例--基于nio
2010-05-12 11:51 1180直接上代码,后续文章会有io,nio比较.. Serv ... -
nio和io的服务器端比较
2010-05-13 14:46 8221.) io: 传统的io,JDK1.4以前:即当程序执行 ...
相关推荐
【Nutz Java 编码规范 (V1.0)】...综上所述,Nutz Java编码规范强调代码的清晰性和一致性,通过命名约定、注释规范和访问控制来提升代码的可读性和维护性。开发者应当遵循这些规则,以保证代码的质量和团队协作的效率。
WARTS是一个纯Java数据库工具,可以执行字符编码识别的数据同步。开发它是用于在UTF-8 Oracle实例中使用ASCII编码的Oracle 数据库中来正确的传输非ASCII字符。 Java模板语言 Beetl Beetl,是Bee Template Language的...
WARTS是一个纯Java数据库工具,可以执行字符编码识别的数据同步。开发它是用于在UTF-8 Oracle实例中使用ASCII编码的Oracle 数据库中来正确的传输非ASCII字符。 Java模板语言 Beetl Beetl,是Bee Template Language的...
WARTS是一个纯Java数据库工具,可以执行字符编码识别的数据同步。开发它是用于在UTF-8 Oracle实例中使用ASCII编码的Oracle 数据库中来正确的传输非ASCII字符。 Java模板语言 Beetl Beetl,是Bee Template Language的...
WARTS是一个纯Java数据库工具,可以执行字符编码识别的数据同步。开发它是用于在UTF-8 Oracle实例中使用ASCII编码的Oracle 数据库中来正确的传输非ASCII字符。 Java模板语言 Beetl Beetl,是Bee Template Language的...
WARTS是一个纯Java数据库工具,可以执行字符编码识别的数据同步。开发它是用于在UTF-8 Oracle实例中使用ASCII编码的Oracle 数据库中来正确的传输非ASCII字符。 Java模板语言 Beetl Beetl,是Bee Template Language的...
WARTS是一个纯Java数据库工具,可以执行字符编码识别的数据同步。开发它是用于在UTF-8 Oracle实例中使用ASCII编码的Oracle 数据库中来正确的传输非ASCII字符。 Java模板语言 Beetl Beetl,是Bee Template Language的...
WARTS是一个纯Java数据库工具,可以执行字符编码识别的数据同步。开发它是用于在UTF-8 Oracle实例中使用ASCII编码的Oracle 数据库中来正确的传输非ASCII字符。 Java模板语言 Beetl Beetl,是Bee Template Language的...
WARTS是一个纯Java数据库工具,可以执行字符编码识别的数据同步。开发它是用于在UTF-8 Oracle实例中使用ASCII编码的Oracle 数据库中来正确的传输非ASCII字符。 Java模板语言 Beetl Beetl,是Bee Template Language的...
WARTS是一个纯Java数据库工具,可以执行字符编码识别的数据同步。开发它是用于在UTF-8 Oracle实例中使用ASCII编码的Oracle 数据库中来正确的传输非ASCII字符。 Java模板语言 Beetl Beetl,是Bee Template Language的...
WARTS是一个纯Java数据库工具,可以执行字符编码识别的数据同步。开发它是用于在UTF-8 Oracle实例中使用ASCII编码的Oracle 数据库中来正确的传输非ASCII字符。 Java模板语言 Beetl Beetl,是Bee Template Language的...
WARTS是一个纯Java数据库工具,可以执行字符编码识别的数据同步。开发它是用于在UTF-8 Oracle实例中使用ASCII编码的Oracle 数据库中来正确的传输非ASCII字符。 Java模板语言 Beetl Beetl,是Bee Template Language的...
WARTS是一个纯Java数据库工具,可以执行字符编码识别的数据同步。开发它是用于在UTF-8 Oracle实例中使用ASCII编码的Oracle 数据库中来正确的传输非ASCII字符。 Java模板语言 Beetl Beetl,是Bee Template Language的...
WARTS是一个纯Java数据库工具,可以执行字符编码识别的数据同步。开发它是用于在UTF-8 Oracle实例中使用ASCII编码的Oracle 数据库中来正确的传输非ASCII字符。 Java模板语言 Beetl Beetl,是Bee Template Language的...
在提供的压缩包中,`nutz-eclipse-java-code-format-1.0.xml`和`nutz-eclipse-java-codetemplates.xml`文件包含了代码格式化模板和代码模板的配置。导入这些模板的步骤如下: - 打开MyEclipse,选择`Window` -> `...