- 浏览: 848470 次
- 性别:
- 来自: 草帽海贼团
最新评论
-
大维啊:
估计只有你自己能明白
Java安全沙箱机制 -
moonljt521:
第五种方式,如果构造里想传入参数怎么做,例如android的 ...
单例模式的七种写法 -
javaDADY:
怎么感觉在讨论茴香豆的茴字有几种写法?
单例模式的七种写法 -
Wallen_Han:
Mr.Cheney 写道这样的:Mr.Cheney 写道还有一 ...
单例模式的七种写法 -
Wallen_Han:
60love5 写道第三种稍微有点Java基础就知道是错的,被 ...
单例模式的七种写法
文章列表
前几篇文章中一直在强调代码质量,理论性很强,但实践性很低,平时我也关注这方面的工具和平台,以前开发中经常遇到很多人的代码风格不统一,在新的公司我发现这方面已经做的不错了,于是我总结了一下,希望对困惑于代码风格不能统一的各位有所帮助。
1.统一eclipse版本,最好由技术委员会统一制定eclipse标准,安装好各种插件,比如maven插件、findbugs、SCM插件等等。我以前遇到过如果eclipse版本不一样,format出来的代码风格也不一样。
2.统一format和clean up模板,最好还是制定一个公司级别的format和clean up模板,然后要求每个人都导进去。 ...
来到新公司对很多陌生的技术一头雾水,以前在工作中没有真正使用过maven,于是强迫自己蛋定下来一个一个的突破,下面是我对maven的setting配置文件的理解,由于是现学的,难免可能会理解偏差,还请牛人路过指正。
<!--
xuze added by:添加了一些注释,利于新人理解
Date:2011年7月18日
-->
<settings>
<!-- 配置镜像 -->
<mirrors>
<mirror>
<!-- 此镜像一般用来作为公司内部开发的版本快照,作为public- ...
为了在部门内部推行code review这一活动,几个月之前开始寻找工具的支持,开始相中的是Jupiter这一eclipse插件,刚开始还写了一份user guide(见附件),但是后来我发现它比较笨拙,显著的缺点是每次review都要分reviewID,保存的数据格式是xml文件,总感觉不是很让人放心,另外跟公司内部的SCM结合的不是很好。当然它也有优点,比如跟eclipse结合的很好,查看源代码比较方便,而其它的个人评审和团队评审以及修复等等各种阶段性的活动也是一大亮点。
刚开始接触sonar时,让我眼前一亮,它的核心功能是整合PMD、checkstyle、Findbugs等等静态代 ...
【分享】部门内部《重构》培训
- 博客分类:
- 重构
前不久在部门内部做了一份代码质量和重构的培训,由于我其中很多思想和资料都是来源于JavaEye的,饮水要思源,我不敢独享,于是马上拿来分享给广大的Javaeyer(当然是去掉了公司业务逻辑的)。
其中的代码质量部分:【分享】部门内部《代码质量》培训
其中的findbugs部分:【分享】findbugs反模式
要郑重说明的是,ppt里面有几个javaeye的例子,希望例子的主人公不要在意。
请自取附件。
前不久在部门内部做了一份代码质量和重构的培训,由于我其中很多思想和资料都是来源于JavaEye的,饮水要思源,我不敢独享,于是马上拿来分享给广大的Javaeyer(当然是去掉了公司业务逻辑的)。
其中的findbugs的部分:【分享】findbugs反模式
其中的重构部分:【分享】部门内部《重构》培训
要郑重说明的是,ppt里面有几个javaeye的例子,希望例子的主人公不要在意。
请自取附件。
FindBugs解释
FindBugs
是一个静态分析工具,它检查类或者 JAR
文件,将字节码与一组缺陷模式进行对比以发现可能的问题。之所以叫做静态分析工具,是因为它在不实际运行程序的情况对软件进行分析。使用findbugs有很多种方式,从
GUI、从命令行、使用 Ant、作为 Eclipse 插件程序和使用 Maven,甚至作为hudson持续集成的插件。
findbugs自己定义了一系列的检测器,1.3.9版本的检测器有83种Bad practice(不好的习惯),133种Correctness(正确性),2种Experimental
在接下来的文章里我会讲到如何提高代码质量,会讲到一系列措施和工具,比如codereview、重构、findbugs、敏捷等等,这些东西对代码质量非常有用,但取决你是否行动了,你和你的团队是否具有强烈的代码质量意识,如果没有强烈的代码质量意识,这一切就像是在看我这个小丑在上演一场杯具,过往云烟,看过了就忘记了。学习一项技术很容易,但是学习一种意识,或者说改变一个人的习惯,很难!
诚然,意识和习惯是自身的觉悟,要改变的确很难,更何况众口难调,那我为什么要写这篇文章呢?我自己多少也有一些迷茫,大的环境是浮躁的,要改变就要付出代价。
============================== ...
无状态类是指一个对象没有任何属性,就像下面这个类一样,通常来说无状态的类在并发环境中比较安全:
class Class1 {
public void doSomeThing() {
Vector<String> vector = new Vector<String>();
String element = "";
if (!vector.contains(element)) {
vector.add(element);
}
}
}
doSomeThing方法执行过程在JVM中表 ...
趁着组内的“头脑风暴”活动,也为了熟悉以前看过的《inside java virtual machine》,特别是参照了RednaxelaFX大神的博文,自己连夜赶出了一份PPT(凌晨四点),虽然深度还未达到FX大神的级别,但也算比较全面了,就当做自己的一次JVM简单总结吧,希望有需要的童鞋见附件,JVM大神都绕过吧。
可扩展性的动力——不断变化的用户需求
世界上不变的是变化,软件需求不会变化?不可能!一个系统是否拥抱变化是由它的可维护性和可扩展性决定的,软件环境的变化(可能是业务环境,运行环境)导致软件要进行改动才能满足人们对它的要求,这种系统本身适应变化的能力就是可扩展性。
可扩展性的设计忠告
可扩展性对系统的性能和复杂度都有影响,复杂度很高的项目很难维护,亦很难测试,我比较推崇可预见的、简单的扩展设计,愈简单愈好,避免前期大量的设计,对后期的无法预见的扩展,我们可以通过持续的重构来达到目标。所以,可扩展性不是一蹴而就的,是需要随着你对业务领域理解的深入而不断重构获得,一般三次可以达到 ...
我的心态变化
第一次接触编程,学习C语言,交换两个数的值:
c = a
a = b
b = c
后来我我从师兄那学到了下面这段代码,觉得写的比我之前的更漂亮:
a = a + b
b = a - b
a = a - b
最后参加工作了,看到很多别人的代码,最后又觉得最漂亮的代码是这样的:
c = a
a = b
b = c
请问大家,为什么我的心态有这样的变化?
软件开发的现实
一个软件生命周期中,80%的时间和精力花费在维护阶段。
几乎没有任何一个软件,在其整个生命周期中,均有最初的开发人员维护。
几乎没有任何一个软 ...
人是软件质量最重要的因素之一,开发人员的素质直接作用于软件质量,需求设计,代码质量,以及后续的维护开发等等都离不开高素质的开发人员。虽然有优秀的工具为开发人员提供帮助,公司也可以制定严格的制度流程限制开发人员,但是代码是人写的,你不可能用工具生成高质量的代码,更不可能用制度流程来让一个不具备专业知识技能的人写出高质量的代码,所以我们必须把目光定位于人,以人为本,只有开发人员平均整体素质都提高了,软件质量才能得到根本的保证。
那么,如何提高人的质量?
首先,思想要统一,XX出品必属精品,只要是自己负责的项目,自己写的代码,就必须是精品,这不是自负,是一种信念,我们必须自己认识这一点。从现 ...
软件质量这个概念很模糊,它即可以代表一款可运行软件的优劣,也可以代表一大堆源代码好坏。分开来讲,其实可以叫做软件产品质量,和代码质量。
对于用户来讲,它们能看见的是软件产品的质量,用户是我们的上帝,软件产品质量的重要毋庸置疑。而对于我们开发人员来讲,软件的质量其实更多反映的是代码质量,我们从事的都是长期的维护和开发工作,阅读和修改别人的代码是家常便饭的事情,代码质量的好坏直接影响我们维护开发的心情,更决定了开发效率和工作量。
下面是我用xmind画的图:
人的质量决定代码的质量,代码的质量决定软件产品的质量,而其他制度的建设,工具的使用以及流程设计相比起来我觉得都是浮 ...
从四川某二线城市回北京,由于记错了预售日没有买到火车票,楼主的老爸托他同学关系让楼主上车了(你懂得),春运期间比较严,上去之后待在餐车,等待补票,餐车里除了托关系那人(内部人员),还有一老外(男)。
...
代码复查(Code Review),又叫“代码审查”,其基本思想就是,在开发人员编写完自己的代码后,由其他人来复查他写的代码,从而有效地发现代码中存在的缺陷。代码复查的一个基本理论就是,当我们越早发现代码存在的缺陷,我们解决缺陷的代价就越低。
代码复查一般包括代码风格,常规缺陷,重大缺陷,程序语言级别缺陷和业务逻辑级别的缺陷,以及设计逻辑和思路的审查等等,甚至也要包括代码性能的考虑。代码复查的原则是正确性、可复用性、可扩展性、可维护性、可读性等等。
一提到代码走读,虽然我一次都没经历过,但是脑海里还是会想到一群人围着一个桌子,看着投影仪,作者不停的问:“大家看看这段代码有什 ...