简单生活 发表于 2015-1-18 11:21:41

JAVA网站制作之Java开辟中罕见的伤害旌旗灯号(中)仓酷云

前些天,在CSDN上看到了一个消息,说是net网页编程网页编程AJAX成功在Linux上运行,这一点对我触动很大,而且引发了我许多感叹,所以想写出来分享一下。DustinMarx是一名专业软件开辟者,从业已有17年的工夫,他具有电子工程学士学位,仍是一名MBA。Dustin保护着一个博客,专门先容软件开辟的各个主题。克日,他撰文谈到了Java开辟中罕见的伤害旌旗灯号,提出了在一样平常的Java开辟中我们必要全力制止的一些不准确的做法。感乐趣的读者能够拜见本系列文章的第一部分。
缺少Javadoc正文
我偏向于将一切的左券办法(出格是public办法)都利用Javadoc正文起来。别的,我还以为对属性增加正文是需要的,正文要形貌分明属性存储的内容是甚么。我传闻有人拿代码是“自文档”的作为不写Javadoc正文的托言,不外我对此却其实不认同,我想对这些人说的是复杂的Javadoc正文能够表达出不异的信息,而浏览代码则必要消费更长的工夫。固然有些办法的名字会很长,但偶然也没法正确地形貌分明希冀的输出前提与输入了局。我以为良多Java开辟者(就像我一样)在利用JDK时更喜好浏览它的Javadoc正文而不是JDK源代码。既然云云,那我们本人编写的代码为什么就要反其道而行之呢?我偶然也会浏览源代码,这次要是由于正文不敷充实,或是举动与形貌的纷歧致,另有多是我有来由信任正文过时了。
我还喜好检察类属性的Javadoc正文。有些人偏向于在publicget/set办法前加上属性形貌信息,不外我不喜好这类体例,由于这么做就是在假定属性老是有get/set办法(我是不会做这类假定的)。
在办法的Javadoc正文中形貌完成细节
固然我以为没有Javadoc正文是个伤害旌旗灯号,不外毛病地利用Javadoc正文一样也是个伤害旌旗灯号。Javadoc正文不该该申明完成细节,而应当存眷于客户端对办法的希冀(参数)与办法对客户真个希冀(前往范例,另有多是抛出非常等)。在真实的面向对象体系中,完成应当是能够在public接口下举行修正的,因而将接口文档中的这些完成细节放到Javadoc正文中是不得当的做法。这是个“伤害旌旗灯号”,由于Javadoc中存在的完成细节会让我嫌疑正文的时效性。换句话说,这类正文常常会过时,跟着代码的不休演变而呈现毛病。
源代码中的正文
固然接口(一般是Javadoc)中缺少正文是一种伤害旌旗灯号,不外办法体和其他源代码中的正文也多是个伤害旌旗灯号,会招致潜伏的成绩。假如必要为代码增加正文以匡助人们了解代码的举动,那就很有多是代码的庞大性过年夜(“正文是恶臭代码的芬芳剂”,这句话有些幽默,不外在必定水平上却真的云云)。就像文中提到的浩瀚“伤害旌旗灯号”一样,偶然我也以为源代码中的正文是成心义的,能够供应良多信息,这时候就没有需要删除这些正文了。但是,我以为代码中的正文(不是接口形貌的Javadoc正文)应当只管少一些,并且次要应当存眷于“为何”这么写而不是“怎样做”。代码本身应当可以申明“怎样”这一成绩,不外良多时分是没法分明地注释出“为何”(因为客户/办理偏向、计划决议、正式的接口需求、正式的算法需求等等)。
完成承继(extends)
我看到良多时分利用extends(完成承继)都很不错,也合适于响应的场景。但良多时分也存在利用不妥的情形,完成承继会招致更多的贫苦。AllenHolub曾说到extends是罪恶的,四人帮的计划形式一书也用了很年夜的篇幅注释为什么说组合要比完成承继更好。跟着编写Java代码工夫的不休增加,更加主要的是跟着我保护Java代码工夫的不休增加,我愈来愈以为组合相对完成承继的上风了。我的确看到了完成承继所带来的优点,不外更多的时分类是被“硬塞”到承继系统傍边的,子类只不外是对UnsupportedOperationExceptions打洞或是“空完成”,由于他们所承继上去的办法其实不合用于他们本人。加上EffectiveJava一书中所说起的承继成绩(好比说详细类的equals与hashCode办法完成等),这真就成了一个年夜成绩了。完成承继其实不老是糟的,不外良多人常常没有准确地利用他们,因而我以为这是个“伤害旌旗灯号”。
无感化的代码
程序中呈现用不上的代码永久都不是一件功德。人们很快就会健忘它是怎样用的,为何要这么用。不久以后,开辟者就想晓得这是否是出于某个缘故原由被扔在那边的。无感化的代码不但会偶然义地增添代码长度,增添保护的庞大度,关于IDE来讲,无感化的代码另有大概会被不当心挪用,这类情形申明代码基呈现了成绩。
正文失落的代码
正文失落的代码大概不像可实行的、偶然义的代码那末糟,由于最少它不会被不当心地挪用,明显,这些代码是不会被用到的,不外这仍然是个伤害旌旗灯号,由于它标明大概会呈现潜伏的代码基成绩。就像偶然义的可实行代码一样,正文失落的代码越多,人们就越难了解代码为什么会呈现在那边、为何会被正文失落、不利用了为何不将其删撤除。开辟者不敢删除他们,由于留上去一定是有缘故原由的,只不外没人可以记起来缘故原由是甚么了。
To-Do语句

那这个对象有什么意义?现在很多用javabean的人就不能保证对象有完整的意义,不成熟的使用模式等导致代码疯狂增长,调试维护的时间要得多得多。在说性能之前,先说说你这个比较的来历。据说微软为了证明。net网页编程比java好。

爱飞 发表于 2015-1-20 21:15:52

Java是一种计算机编程语言,拥有跨平台、面向对java

蒙在股里 发表于 2015-1-25 23:27:54

另外编写和运行Java程序需要JDK(包括JRE),在sun的官方网站上有下载,thinking in java第三版用的JDK版本是1.4,现在流行的版本1.5(sun称作J2SE 5.0,汗),不过听说Bruce的TIJ第四版国外已经出来了,是专门为J2SE 5.0而写的。

柔情似水 发表于 2015-1-30 07:54:37

是一种语言,用以产生「小应用程序(Applet(s))

谁可相欹 发表于 2015-2-7 16:18:27

是一种使网页(Web Page)由静态(Static)转变为动态(Dynamic)的语言

admin 发表于 2015-2-8 06:00:38

Java 不同于一般的编译执行计算机语言和解释执行计算机语言。它首先将源代码编译成二进制字节码(bytecode),然后依赖各种不同平台上的虚拟机来解释执行字节码。从而实现了“一次编译、到处执行”的跨平台特性。

若相依 发表于 2015-2-9 07:38:17

Jive的资料在很多网站上都有,大家可以找来研究一下。相信你读完代码后,会有脱胎换骨的感觉。遗憾的是Jive从2.5以后就不再无条件的开放源代码,同时有licence限制。不过幸好还有中国一流的Java程序员关注它,外国人不开源了,中国人就不能开源吗?这里向大家推荐一个汉化的Jive版本—J道。Jive(J道版)是由中国Java界大名 鼎鼎的banq在Jive 2.1版本基础上改编而成, 全中文,增加了一些实用功能,如贴图,用户头像和用户资料查询等,而且有一个开发团队在不断升级。你可以访问banq的网站

乐观 发表于 2015-2-27 04:33:34

你就该学一学Servlet了。Servlet就是服务器端小程序,他负责生成发送给客户端的HTML文件。JSP在执行时,也是先转换成Servlet再运行的。虽说JSP理论上可以完全取代Servlet,这也是SUN推出JSP的本意,可是Servlet用来控制流程跳转还是挺方便的,也令程序更清晰。接下来你应该学习一下Javabean了,可能你早就看不管JSP在HTML中嵌Java代码的混乱方式了,这种方式跟ASP又有什么区别呢?

因胸联盟 发表于 2015-3-7 22:54:56

有时间再研究一下MVC结构(把Model-View-Control分离开的设计思想)

再见西城 发表于 2015-3-15 15:50:22

其实说这种话的人就如当年小日本号称“三个月拿下中国”一样大言不惭。不是Tomjava泼你冷水,你现在只是学到了Java的骨架,却还没有学到Java的精髓。接下来你得研究设计模式了。

灵魂腐蚀 发表于 2015-3-22 02:07:59

如果你学过HTML,那么事情要好办的多,如果没有,那你快去补一补HTML基础吧。其实JSP中的Java语法也不多,它更象一个脚本语言,有点象ASP。
页: [1]
查看完整版本: JAVA网站制作之Java开辟中罕见的伤害旌旗灯号(中)仓酷云