Java Code review一些原则的原因探讨,下面这些原则都是为什么
原文
http://blog.csdn.net/wzwdcld/article/details/48241961
Java Code Review清单
下面列出自己不理解的部分和大家探讨^-^
下面每一条都是不理解的,想知道这样做的动机是什么。。
整洁性
清单项目 | 分类 |
---|---|
确定应用了代码格式化 | 格式 |
使用异常而不是返回码 | 异常 |
不要返回Null | 异常 |
安全
清单项目 | 分类 | 备注 |
---|---|---|
避免对于一些不寻常行为的过分日志 | 拒绝服务(Denial of Service) | |
在任何情况下都释放资源(流,连接等等) | 拒绝服务(Denial of Service) | |
把从不可信对象得到的输出作为输入来检验 | 输入检验(Input Validation) | |
为native方法定义包装类(而不是定义native方法为pulibc) | 输入检验(Input Validation) | 什么是native方法 |
使public static域为final(避免调用方(caller)修改它的值) | 可变性 | caller是什么 |
小心地缓存潜在的特权操作结果 | 序列化反序列化(Serialization Deserialization) | |
只有在需要的时候才使用JNI | 访问限制 |
清单项目 | 分类 | 备注 |
---|---|---|
更多地使用标准异常 | 异常 | |
避免使用finalizer | 创建和销毁对象 | |
使用枚举来代替int常量 | 枚举和注解(Annotations) | |
使用executors而不是task和thread | 并发 | |
查看静态代码分析器的报告来进行类的添加和修改 | 静态代码分析 | 静态代码分析器是什么东西 |
JBehave是干嘛的?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
静态分析器是什么
这个是指使用静态代码检查工具去检查源码,你不需要运行单元测试代码,就可以发现代码中潜在的问题,通过分析或检查源程序的语法、结构、过程、接口等来检查程序的正确性,找出代码隐藏的错误和缺陷,如参数不匹配,有歧义的嵌套语句,错误的递归,非法计算,可能出现的空指针引用等等。
Java中常见的工具有Findbugs,CheckStyle,PMD等,这些工具通常都有Eclipse, Intellij Idea插件,开发人员在开发的时候可以很方便的运行,从而尽早发现问题,在代码Checkin之前就可以解决问题。这些工具也可以和Jenkins等自动化构建工具集成,在发布的时候给予运维人员参考。
什么是 native 方法?
native 方法大概是指用 C/C++ 或其它直接编译成指令的那些方法,通常是生成 .dll(windows) 或 .so(linux),再由 Java 通过 JNI 调用的
caller 是什么?
一般来说 caller 是指方法的调用者,域应该是 field 的翻译,但翻译成“字段”更容易解理。比如
而有了 bean 规范之后,这种字段通常会定义为
private
,再加 setter 或 getter。静态分析器是什么
静态分析器是指比编译器更严格的一个类似编译器的东西,从源代码直接分析出来有可能发生的逻辑错误。关于静态分析工具,可以找度娘问。我用过 FindBugs,还是有些作用,编程习惯不是很好的人,写出来的代码会有很多警告。
解释
整洁性
确定应用了代码格式化
使用异常而不是返回码
不要返回Null
安全
避免对于一些不寻常行为的过分日志
在任何情况下都释放资源(流,连接等等)
把从不可信对象得到的输出作为输入来检验
为native方法定义包装类(而不是定义native方法为pulibc)
使public static域为final(避免调用方(caller)修改它的值)
小心地缓存潜在的特权操作结果
只有在需要的时候才使用JNI
清单项目
更多地使用标准异常
避免使用finalizer
使用枚举来代替int常量
使用executors而不是task和thread
查看静态代码分析器的报告来进行类的添加和修改