仓酷云

标题: JAVA教程之Java程序最简单犯的21种毛病实例剖析 [打印本页]

作者: 兰色精灵    时间: 2015-1-18 11:16
标题: JAVA教程之Java程序最简单犯的21种毛病实例剖析
你说是sun公司对她研究的透还是微软?针对自己工具开发的.net性能上肯定会站上风的。程序|毛病  1.DuplicatedCode
  代码反复几近是最多见的异味了。他也是Refactoring的次要方针之一。代码反复常常来自于copy-and-paste的编程作风。与他绝对应OAOO是一个好体系的主要标记。
  2.Longmethod
  它是传统布局化的“遗毒”。一个办法应该具有自我自力的企图,不要把几个企图放在一同。
  3.LargeClass
  年夜类就是你把太多的义务交给了一个类。这里的划定规矩是OneClassOneResponsibility.
  4.DivergentChange
  一个类内里的内容变更率分歧。某些形态一个小时变一次,某些则几个月一年才变一次;某些形态由于这方面的缘故原由产生变更,而另外一些则由于其他方面的缘故原由变一次。面向对象的笼统就是把绝对稳定的和绝对变更相断绝。把成绩变更的一方面和另外一方面相断绝。这使得这些绝对稳定的能够重用。成绩变更的每一个方面都能够独自重用。这类相异变更的共存使得重用十分坚苦。
  5.ShotgunSurgery
  这恰好和下面相反。对体系一个中央的改动触及到其他很多中央的相干改动。这些变更率和变更内容类似的形态和举动一般应该放在统一个类中。
  6.FeatureEnvy
  对象的目标就是封装形态和与这些形态严密相干的举动。假如一个类的办法频仍用get办法存取其他类的形态举行盘算,那末你要思索把举动移到触及形态数量最多的谁人类。
  7.DataClumps
  某些数据一般像孩子一样成群游玩:一同呈现在良多类的成员变量中,一同呈现在很多办法的参数中,这些数据也许应当本人自力构成对象。
  8.PrimitiveObsession
  面向对象的老手一般习气利用几个原始范例的数据来暗示一个观点。比如关于局限,他们会利用两个数字。关于Money,他们会用一个浮点数来暗示。由于你没有利用对象来表达成绩中存在的观点,这使得代码变的难以了解,办理成绩的难度年夜年夜增添。好的习气是扩大言语所能供应原始范例,用小对象来暗示局限、金额、转化率、邮政编码等等。
  9.SwitchStatement
  基于常量的开关语句是OO的年夜敌,你应该把他变成子类、state或strategy.
  10.ParallelInheritanceHierarchies
  并行的承继条理是shotgunsurgery的特别情形。由于当你改动一个条理中的某一个类时,你必需同时改动别的一个条理的并行子类。
  11.LazyClass

  一个干活未几的类。类的保护必要分外的开支,假如一个类承当了太少的义务,应该打消它。
  12.SpeculativeGenerality
  一个类完成了从未用到的功效和通用性。一般如许的类或办法独一的用户是testcase.不要夷由,删除它。
  13.TemporaryField
  一个对象的属性大概只在某些情形下才成心义。如许的代码将难以了解。专门创建一个对象来持有如许的孤儿属性,把只和他相干的举动移到该类。最多见的是一个特定的算法必要某些只要该算法才有效的变量。
  14.MessageChain
  动静链产生于当一个客户向一个对象请求另外一个对象,然后客户又向这另外一对象请求另外一个对象,再向这另外一个对象请求另外一个对象,云云云云。这时候,你必要埋没分拨。
  15.MiddleMan
  对象的基础特征之一就是封装,而你常常会经由过程分拨往完成封装。可是这一步不克不及走得太远,假如你发明一个类接口的一泰半办法都在做分拨,你大概必要移往这其中间人。
  16.InappropriateIntimacy
  某些类互相之间太亲热,它们消费了太多的工夫往砖研他人的公有部分。对人类而言,我们大概不该该太假正派,但我们应该让本人的类严厉恪守禁欲主义。
  17.AlternativeClasseswithDifferentInterfaces
  做不异事变的办法有分歧的函数signature,分歧把它们往类条理上移,直至协定分歧。
  18.IncompleteLibraryClass
  要创建一个好的类库十分坚苦。我们大批的程序事情都基于类库完成。但是,云云普遍而又相异的方针对库构建者提出了刻薄的请求。库构建者也不是全能的。偶然候我们会发明库类没法完成我们必要的功效。而间接对库类的修正有十分坚苦。这时候候就必要用各类手腕举行Refactoring.
  19.DataClass
  对象包含形态和举动。假如一个类只要形态没有举动,那末一定有甚么中央出成绩了。
  20.RefusedBequest
  超类传上去良多举动和形态,而子类只是用了个中的很小一部分。这一般意味着你的类条理有成绩。
  21.Comments
  常常以为要写良多正文暗示你的代码难以了解。假如这类感到太多,暗示你必要Refactoring.

不得不提一下的是:.net是看到java红,而开发出来的工具。
作者: 柔情似水    时间: 2015-1-20 19:10
你快去找一份Java的编程工作来做吧(如果是在校学生可以去做兼职啊),在实践中提高自己,那才是最快的。不过你得祈祷在公司里碰到一个高手,而且他 还愿意不厌其烦地教你,这样好象有点难哦!还有一个办法就是读开放源码的程序了。我们知道开放源码大都出自高手,他们设计合理,考虑周到,再加上有广大的程序员参与,代码的价值自然是字字珠叽,铿锵有力(对不起,偶最近《金装四大才子》看多了)。
作者: 若相依    时间: 2015-1-25 19:14
如果要向java web方向发展也要吧看看《Java web从入门到精通》学完再到《Struts2.0入门到精通》这样你差不多就把代码给学完了。有兴趣可以看一些设计模块和框架的包等等。
作者: 谁可相欹    时间: 2015-1-30 07:33
《JAVA语言程序设计》或《JAVA从入门到精通》这两本书开始学,等你编程有感觉的时候也可以回看一下。《JAVA读书笔记》这本书,因为讲的代码很多,也很容易看懂,涉及到面也到位。是你学习技术巩固的好书,学完后就看看《JAVA编程思想》这本书,找找一个自己写的代码跟书上的代码有什么不一样。
作者: 小女巫    时间: 2015-2-2 21:49
象、泛型编程的特性,广泛应用于企业级Web应用开发和移动应用开发。
作者: 仓酷云    时间: 2015-2-7 00:34
在全球云计算和移动互联网的产业环境下,Java更具备了显著优势和广阔前景。
作者: 冷月葬花魂    时间: 2015-2-11 03:03
学Java必读的两个开源程序就是Jive和Pet Store.。 Jive是国外一个非常著名的BBS程序,完全开放源码。论坛的设计采用了很多先进的技术,如Cache、用户认证、Filter、XML等,而且论坛完全屏蔽了对数据库的访问,可以很轻易的在不同数据库中移植。论坛还有方便的安装和管理程序,这是我们平时编程时容易忽略的一部份(中国程序员一般只注重编程的技术含量,却完全不考虑用户的感受,这就是我们与国外软件的差距所在)。
作者: 海妖    时间: 2015-2-12 02:40
还好,SUN提供了Javabean可以把你的JSP中的 Java代码封装起来,便于调用也便于重用。
作者: 兰色精灵    时间: 2015-3-2 20:57
是一种为 Internet发展的计算机语言
作者: 金色的骷髅    时间: 2015-3-2 21:19
一直感觉JAVA很大,很杂,找不到学习方向,前两天在网上找到了这篇文章,感觉不错,给没有方向的我指了一个方向,先不管对不对,做下来再说。
作者: 精灵巫婆    时间: 2015-3-11 06:17
如果你学过HTML,那么事情要好办的多,如果没有,那你快去补一补HTML基础吧。其实JSP中的Java语法也不多,它更象一个脚本语言,有点象ASP。
作者: 第二个灵魂    时间: 2015-3-12 10:18
你快去找一份Java的编程工作来做吧(如果是在校学生可以去做兼职啊),在实践中提高自己,那才是最快的。不过你得祈祷在公司里碰到一个高手,而且他 还愿意不厌其烦地教你,这样好象有点难哦!还有一个办法就是读开放源码的程序了。我们知道开放源码大都出自高手,他们设计合理,考虑周到,再加上有广大的程序员参与,代码的价值自然是字字珠叽,铿锵有力(对不起,偶最近《金装四大才子》看多了)。
作者: 因胸联盟    时间: 2015-3-19 19:55
Java自面世后就非常流行,发展迅速,对C++语言形成了有力冲击。Java 技术具有卓越的通用性、高效性、平台移植性和安全性,广泛应用于个人PC、数据中心、游戏控制台




欢迎光临 仓酷云 (http://ckuyun.com/) Powered by Discuz! X3.2