- 1、本文档共46页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
代码质量
意识、行为、方法、工具cantellow
开题武侠世界里,凡是登峰造极的人,要么是经历了一些奇遇,要么就是老老实实的靠时间积累,要么就练一些歹毒的功夫,吸取别人的武功,但他们的目的都是增强自己的内力,内功心法之所以很重要,那是因为像什么剑法、拳法之类的聪明的人看一遍就会,而内力却很难。在我们Java程序员世界里,也有一些登峰造极的人,比如JamesGosling(不解释)、JoshuaBloch(google首席java架构师,effectivejava作者)、BruceEckel?(thinkinginjava作者)、DougLea(JDK1.5并发包,JavaConcurrencyinPractice作者)、KentBeck(敏捷之父)、martinfowler(重构之父)等等,这些人之所以登峰造极,并不是他们写了多少多少的代码,在于他们每写一行代码就思考,去感悟,为什么这些好,为什么那样写不好,他们把自己悟出的道写成了书,这些书就是所谓的武功秘籍,名扬天下;而且你也可以发现,武侠世界里出名的秘籍大部分都是修炼的内功,神马易筋经啊、九阳真经啊、九阴真经啊,反正离不开一个经字。程序员的武功秘籍也不例外,神马《Java编程思想》、《敏捷软件开发》、《设计模式》、《重构》、《领域驱动设计》、《人月神话》、《代码大全》、《程序员修炼之道》、《简单之美》啊神马神马的无不讲的是程序员的首先要修炼好的是内功,今天主题:代码质量和重构就属于内功心法的一种,要练好它,没有几年甚至十年是不行的,这篇PPT能做的就是影响你正确的修炼道路,不至于走火入魔。
说明/遗憾的地方代码质量开始的部分带了个人情感,有点偏离了主题,为此我修改了一下,但是要完全不带个人感情去做这次培训,我是办不到的。还有人建议,培训ppt理论太重了点,特别是重构,缺乏鲜活的例子,我承认,这跟我预期想的不一样,我开始想把XXXX功能的重构过程讲一遍,但是我一看CC,发现我已经修改了将近30个版本,要唤起那些古老的回忆,我觉得特别头疼,但是要我完全参照martinfowler的例子,我又是不太服气的,嘛,如果大家愿意看,我可以直接把PDF打开再看看那段例子。培训的目的是什么?我自己也经常去想我听了大部分的培训最后得到了什么?自己是否真正的去行动过?如果我要做培训,我要给大家留下什么?带着这些思想,我精心准备着这次培训(但还是离我的理想太远),特别是我那份findbugs反模式,历时一个月之久,真心希望大家抽点时间看看。我不知道有多少人事前看过PPT,大家应该知道最后的部分是“困惑的心里没底”,以我目前的视野来看,敏捷思想是解决这个困惑的银弹,由此带来的一系列工具和平台,比如maven、mylyn、JIRA、scrum、sonar、hudson等等都是我想去了解和学习的,其实之前这些都是纳入培训计划的,但是很遗憾,我无法给大家介绍更多的信息,至少现在是如此。
目录我为什么要投他隐藏代码质量意识代码质量和软件质量代码质量特性如何提高代码质量Findbugs反模式
目录我为什么要投他隐藏代码质量意识代码质量和软件质量代码质量特性如何提高代码质量Findbugs反模式
别人的观点publicstaticbooleanvalidateInteger(Stringstr){??try{?????????Integer.parseInt(str);??????}catch(Exceptionex){??????????returnfalse;??????}??????returntrue;??}?这段代码的功能是什么?我的理解是判断转入字符串是否为整数,那好,判断这个的目的是什么呢?Integer.parseInt(str)的功能是什么,是解析字符串为Int值,而不是判断是不是为整数(虽然可以通过异常来实现这个功能),当然这只是我的理解。我的原则是代码要完全忠实于其目的。对我而言,在写方法的实现中,尽可能做到只专注自已的功能实现。???你的程序没有什么问题,但是,你这个程序存在局限性:?对于一个性能没有要求的地方,无所谓的;?对于性能有要求,但是钱不是问题的地方,无所谓;?如果您刚从事这个行业,对自己没有什么要求,其实程序代码能工作就可以了,也是没有那么多的要求。但是,请不要误导他人。?如果你在互联网企业,并且大规模的处理数据,数据又不是那么规整的时候,你就知道你这段代码造成多大的悲剧了。?不懂其实不要紧的,但是又人说你不对的时候,请您好好想下为什么。?你可以看看我的blog写的一些内容。??/blog/647930?某种处理方式是不是合适,要看业务场景的。对于桌面程序,小规模
文档评论(0)