仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 495|回复: 14
打印 上一主题 下一主题

[学习教程] JAVA网站制作之Java程序开辟者必要懂得的十年夜金科玉律...

[复制链接]
只想知道 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-1-18 11:17:08 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
认真的记,感觉很紧张根本就没有时间和能力,来对技术知识点进行思考。这样课下就只能对知识进行简单的理解,其实简单的理解就是记忆课堂上讲的知识点,程序<Pstyle="TEXT-INDENT:2em">对Java开辟者来讲,有很多的尺度和最好理论。本文枚举了每个开辟职员必需服从的十年夜基础法例;假如有了能够服从的划定规矩而不服从,那末将招致的是非常凄惨的了局。<Pstyle="TEXT-INDENT:2em"><Pstyle="TEXT-INDENT:2em">1.在你的代码里到场正文<Pstyle="TEXT-INDENT:2em">每一个人都晓得这点,但不知何以健忘了恪守。算一算有几次你“健忘”了增加正文?这是现实:正文对程序在功效上没有本色的奉献。可是,你必要一次又一次的回到你两个星期之前写的代码下去,大概一生都是如许,你必定记不住这些代码为何会如许。假如这些代码是你的,你还对照的侥幸。由于它有大概让你回想起。可是不幸的是,良多工夫,这些代码是他人的,并且很有大概他已分开了公司。<Pstyle="TEXT-INDENT:2em"><Pstyle="TEXT-INDENT:2em">2.不要让事变庞大化<Pstyle="TEXT-INDENT:2em">我之前就这么干过,并且我信任一切的人都这么干过。开辟职员经常为一个复杂的成绩而提出一个办理计划。我们为仅仅只要5个用户的使用而引进EJBs。我们为一个使用利用框架而它基本不必要。我们到场属性文件,面向对象的办理计划,和线程到使用中,可是它基本不必要这些。为何我们如许做?我们中的一些人是由于不晓得怎样做更好,可是另有一些人如许做的目标是为了进修新的常识,从而使得这个使用关于我们本人来讲做得对照风趣。<Pstyle="TEXT-INDENT:2em"><Pstyle="TEXT-INDENT:2em">3.紧紧记着――“少便是多(lessismore)”其实不永久是好的<Pstyle="TEXT-INDENT:2em">代码的效力是一巨大的事变,可是在良多情形下,写更少的代码行其实不能进步该代码的效力。请让我向你展现一个复杂的例子。<Pstyle="TEXT-INDENT:2em"><Pstyle="TEXT-INDENT:2em">
  1. if(newStatusCode.equals("SD")&&(sellOffDate==null||todayDate.compareTo(sellOffDate)<0||(lastUsedDate!=null&&todayDate.compareTo(lastUsedDate)>0))||(newStatusCode.equals("OBS")&&(OBSDate==null||todayDate.compareTo(OBSDate)<0))){newStatusCode="NYP";}
复制代码
<Pstyle="TEXT-INDENT:2em"><Pstyle="TEXT-INDENT:2em">我想问一句:说出下面的那段代码的if前提想干甚么简单吗?如今,我们再来假定不管是谁写出这段代码,而没有服从第一条划定规矩――在你的代码里到场正文。<Pstyle="TEXT-INDENT:2em">假如我们把这个前提分到两个自力的if报告句中,岂非不是更复杂一些吗?如今,思索上面的修改代码:<Pstyle="TEXT-INDENT:2em"><Pstyle="TEXT-INDENT:2em">
  1. if(newStatusCode.equals("SD")&&(sellOffDate==null||todayDate.compareTo(sellOffDate)<0||(lastUsedDate!=null&&todayDate.compareTo(lastUsedDate)>0))){newStatusCode="NYP";}elseif(newStatusCode.equals("OBS")&&(OBSDate==null||todayDate.compareTo(OBSDate)<0)){newStatusCode="NYP";}
复制代码
<Pstyle="TEXT-INDENT:2em"><Pstyle="TEXT-INDENT:2em">岂非它不是有了更好的可读性?是的,我们反复了报告前提。是的,我们多出了一个过剩的“IF”和两对过剩的括弧。可是代码有了更好的可读性和可了解性。<Pstyle="TEXT-INDENT:2em"><Pstyle="TEXT-INDENT:2em">4.请不要有硬代码<Pstyle="TEXT-INDENT:2em">开辟职员经常无意识的健忘大概无视这条划定规矩,缘故原由是我们,和一样平常时分一样,在赶工夫。假如我们服从这条划定规矩,我们大概会赶不长进度。我们大概不克不及停止我们确当前形态。可是写一条分外的界说静态常量的代码行又能消费我们几工夫呢?<Pstyle="TEXT-INDENT:2em">这里有一个例子。<Pstyle="TEXT-INDENT:2em">publicclassA{<Pstyle="TEXT-INDENT:2em"><Pstyle="TEXT-INDENT:2em">publicstaticfinalStringS_CONSTANT_ABC="ABC";<Pstyle="TEXT-INDENT:2em"><Pstyle="TEXT-INDENT:2em">publicbooleanmethodA(StringsParam1){<Pstyle="TEXT-INDENT:2em">if(A.S_CONSTANT_ABC.equalsIgnoreCase(sParam1)){<Pstyle="TEXT-INDENT:2em">returntrue;<Pstyle="TEXT-INDENT:2em">}<Pstyle="TEXT-INDENT:2em">returnfalse;<Pstyle="TEXT-INDENT:2em">}<Pstyle="TEXT-INDENT:2em">}<Pstyle="TEXT-INDENT:2em">如今,每次我们必要和某一些变量对照字符串“ABC”的时分,我们只必要援用S_CONSTANT_ABC,而不是记着实践的代码是甚么。它另有一个优点是:加倍简单在一个中央修正常量,而不是在一切的代码中寻觅这个代码<Pstyle="TEXT-INDENT:2em"><Pstyle="TEXT-INDENT:2em"><Pstyle="TEXT-INDENT:2em">不要创造你本人的frameworks<Pstyle="TEXT-INDENT:2em"><Pstyle="TEXT-INDENT:2em">已推出了几千种frameworks,并且它们中的年夜多半是开源的。这些frameworks两头有良多是极好的办理计划,被使用到不计其数的使用中。你们必要跟上这些新frameworks的措施,最最少是浅薄的。在这些极好的、使用普遍的frameworks两头,一个最好的、最间接的例子是Struts。在你所能设想到的frameworks中,这个开源的webframeworks关于基于web的使用是一个完善的候选者。可是你必需记着第二条划定规矩――不要让事变庞大化。假如你开辟的使用只要三个页面―请,不要利用Struts,关于如许一个使用,没有甚么“把持”哀求的。<Pstyle="TEXT-INDENT:2em"><Pstyle="TEXT-INDENT:2em">6.不要打印行和字符串相加<Pstyle="TEXT-INDENT:2em">我晓得,为了调试的目标,开辟职员喜好在每个我们以为合适的中央增加System.out.println,并且我们会对我们本人说,会在今后删失落这些代码的。可是我们经常忘记删往这些代码行,大概我们基本就不想删失落它们。我们利用System.out.println来测试,当我们测试完成今后,为何我们还能打仗到它们呢?我们大概删失落一行我们实践必要的代码,仅仅是由于你低估了System.out.println所带来的危险,思索上面的代码:<Pstyle="TEXT-INDENT:2em"><Pstyle="TEXT-INDENT:2em">
  1. publicclassBadCode{publicstaticvoidcalculationWithPrint(){doublesomeValue=0D;for(inti=0;i<10000;i++){System.out.println(someValue=someValue+i);}}publicstaticvoidcalculationWithOutPrint(){doublesomeValue=0D;for(inti=0;i<10000;i++){someValue=someValue+i;}}publicstaticvoidmain(String[]n){BadCode.calculationWithPrint();BadCode.calculationWithOutPrint();}}
复制代码
<Pstyle="TEXT-INDENT:2em">依据测试,calculationWithOutPrint()办法的运转花了0.001204秒。比拟较而言,运转calculationWithPrint()办法花了使人惊奇的10.52秒。<Pstyle="TEXT-INDENT:2em"><Pstyle="TEXT-INDENT:2em">(假如你不晓得怎样失掉一个像如许的表格,请参阅我的文章“JavaProfilingwithWSAD”JavaProfilingwithWSAD)<Pstyle="TEXT-INDENT:2em">制止如许一个CPU华侈的最好办法是引进一个包装器办法,就象上面如许:<Pstyle="TEXT-INDENT:2em"><Pstyle="TEXT-INDENT:2em">
  1. publicclassBadCode{publicstaticfinalintDEBUG_MODE=1;publicstaticfinalintPRODUCTION_MODE=2;publicstaticvoidcalculationWithPrint(intlogMode){doublesomeValue=0D;for(inti=0;i<10000;i++){someValue=someValue+i;myPrintMethod(logMode,someValue);}}publicstaticvoidmyPrintMethod(intlogMode,doublevalue){if(logMode>BadCode.DEBUG_MODE){return;}System.out.println(value);}publicstaticvoidmain(String[]n){BadCode.calculationWithPrint(BadCode.PRODUCTION_MODE);}}
复制代码
<Pstyle="TEXT-INDENT:2em">依据测试,利用了StringBuffer的谁人办法只花了0.01秒来实行,而谁人利用了字符串相加的办法却花了0.08秒来运转。选择是不言而喻的。<Pstyle="TEXT-INDENT:2em"><Pstyle="TEXT-INDENT:2em">7.存眷GUI<Pstyle="TEXT-INDENT:2em">不论这听起来有何等好笑,我都要再三地申明:GUI关于贸易客户来讲和功效和功能一样主要。GUI是一个乐成的体系的需要的一部分。(可是),IT杂志经常偏向于无视GUI的主要性。良多机构为了省钱而不招聘那些在计划“用户友爱”GUI方面有丰厚履历的计划职员。Java开辟职员不能不依附他们本人的HTML常识,可是他们在这方面的常识非常无限。我看到过良多如许的使用:它们是“盘算机友爱”,而不是“用户友爱”我很少很少能看到有开辟职员既精晓软件开辟,又精晓GUI开辟。假如你是谁人不幸的开辟职员,被分派往开辟用户接口,你应当服从以下的三条准绳:<Pstyle="TEXT-INDENT:2em">1、不要反复创造轮子。寻觅有类似用户接口需求的已存在的体系。<Pstyle="TEXT-INDENT:2em">2、起首创立一个原型。这长短常主要的步骤。客户喜好看看他们将要失掉甚么。这对你来讲也是很好的,由于在你尽心尽力而做出一个将要利用户朝气的用户接口之前,你就失掉了它们的反应。<Pstyle="TEXT-INDENT:2em">3、戴用户的帽子。换一句话说,站在用户的视角反省使用的需求。比方,一个总结页面究竟要不要分页。作为一个软件开辟者,你偏向于在一个体系中无视分页,由于如许使得你有对照少的开辟庞大性。可是,这关于从一个用户的视角来讲却不是最好的办理计划,由于小结的数据将会有成百上千个数据行。<Pstyle="TEXT-INDENT:2em"><Pstyle="TEXT-INDENT:2em">8.永久筹办文档化的需求<Pstyle="TEXT-INDENT:2em">每个营业需求都必需文档化。这大概在一些童话故事里才干成真,可是在实际天下却不成能。不论工夫关于你的开辟来讲是何等紧急,也不论托付日期即刻就要到来,你永久都必需分明,每个营业需求是文档化的。<Pstyle="TEXT-INDENT:2em"><Pstyle="TEXT-INDENT:2em">9.单位测试、单位测试、单位测试<Pstyle="TEXT-INDENT:2em">我将不会深切地会商哪些甚么是把你的代码举行单位测试的最好办法的细节成绩。我将要说的是单位测试必需要做。这是编程的最基础的法例。这是下面一切法例中最不克不及被疏忽的一个。假如你的同事能为你的代码创立和测试单位测试,这是最好不外的事。可是假如没有工资你做这些事,那末你就必需本人做。在创立你的单位测试企图的时分,服从上面的这些划定规矩:<Pstyle="TEXT-INDENT:2em">1、在写代码之前就写单位测试用例。<Pstyle="TEXT-INDENT:2em">2、在单位测试里写正文。<Pstyle="TEXT-INDENT:2em">3、测试统统实行“interesting”功效的私有办法(“interesting”的意义长短setters或getters办法,除非它们经由过程一种特别的体例实行set和get办法)。<Pstyle="TEXT-INDENT:2em"><Pstyle="TEXT-INDENT:2em">10.记着―质量,而不是数目。<Pstyle="TEXT-INDENT:2em">不要在办公室里呆得太晚(当你不用呆的太晚的时分)。我了解偶然,产物的成绩、紧急的终极刻日、意想不到的事务城市制止我们定时上班。可是,在一般情形下,司理是不会欣赏和夸奖那些上班太晚的员工的,他欣赏他们是由于他们所做产物的质量。假如你服从了我下面给出的那些划定规矩,你将会发明你的代码加倍少的bug,加倍多的可保护性。而这才是你的事情的最主要的部分。<Pstyle="TEXT-INDENT:2em"><Pstyle="TEXT-INDENT:2em">总结在这篇文章里,我给出了针对Java开辟职员的十个主要的划定规矩。主要的不单单是晓得这些划定规矩,在编码的过程当中服从这些划定规矩更加主要。但愿这些划定规矩可以匡助我们成为更好的编程职员和专业职员。

用java开发web只要两本书:一本是关于java基础的,一本是关于jsp、servlet的就可以了。开发周期长,我就来讲句题外话,现在有很多思想都是通过java来展现。
愤怒的大鸟 该用户已被删除
沙发
发表于 2015-1-18 19:56:18 | 只看该作者
你现在最缺的是实际的工作经验,而不是书本上那些凭空想出来的程序。
蒙在股里 该用户已被删除
板凳
发表于 2015-1-23 07:42:15 | 只看该作者
关于设计模式的资料,还是向大家推荐banq的网站 [url]http://www.jdon.com/[/url],他把GOF的23种模式以通俗易懂的方式诠释出来,纯Java描述,真是经典中的经典。
第二个灵魂 该用户已被删除
地板
发表于 2015-1-24 15:09:56 | 只看该作者
多重继承(以接口取代)等特性,增加了垃圾回收器功能用于回收不再被引用的对象所占据的内存空间,使得程序员不用再为内存管理而担忧。在 Java 1.5 版本中,Java 又引入了泛型编程(Generic Programming)、类型安全的枚举、不定长参数和自动装/拆箱等语言特性。
简单生活 该用户已被删除
5#
发表于 2015-2-1 16:21:15 | 只看该作者
Java自面世后就非常流行,发展迅速,对C++语言形成了有力冲击。Java 技术具有卓越的通用性、高效性、平台移植性和安全性,广泛应用于个人PC、数据中心、游戏控制台
冷月葬花魂 该用户已被删除
6#
发表于 2015-2-1 17:18:53 | 只看该作者
有时间再研究一下MVC结构(把Model-View-Control分离开的设计思想)
兰色精灵 该用户已被删除
7#
发表于 2015-2-2 22:32:03 | 只看该作者
接着就是EJB了,EJB就是Enterprise JavaBean, 看名字好象它是Javabean,可是它和Javabean还是有区别的。它是一个体系结构,你可以搭建更安全、更稳定的企业应用。它的大量代码已由中间件(也就是我们常听到的 Weblogic,Websphere这些J2EE服务器)完成了,所以我们要做的程序代码量很少,大部分工作都在设计和配置中间件上。
因胸联盟 该用户已被删除
8#
发表于 2015-2-4 19:40:14 | 只看该作者
学Java必读的两个开源程序就是Jive和Pet Store.。 Jive是国外一个非常著名的BBS程序,完全开放源码。论坛的设计采用了很多先进的技术,如Cache、用户认证、Filter、XML等,而且论坛完全屏蔽了对数据库的访问,可以很轻易的在不同数据库中移植。论坛还有方便的安装和管理程序,这是我们平时编程时容易忽略的一部份(中国程序员一般只注重编程的技术含量,却完全不考虑用户的感受,这就是我们与国外软件的差距所在)。
小妖女 该用户已被删除
9#
发表于 2015-2-7 18:28:34 | 只看该作者
如果你学过HTML,那么事情要好办的多,如果没有,那你快去补一补HTML基础吧。其实JSP中的Java语法也不多,它更象一个脚本语言,有点象ASP。
若天明 该用户已被删除
10#
发表于 2015-2-22 20:40:08 | 只看该作者
有时间再研究一下MVC结构(把Model-View-Control分离开的设计思想)
精灵巫婆 该用户已被删除
11#
发表于 2015-2-27 10:18:49 | 只看该作者
象、泛型编程的特性,广泛应用于企业级Web应用开发和移动应用开发。
再见西城 该用户已被删除
12#
发表于 2015-3-9 00:33:06 | 只看该作者
设计模式是高级程序员真正掌握面向对象核心思想的必修课。设计模式并不是一种具体"技术",它讲述的是思想,它不仅仅展示了接口或抽象类在实际案例中的灵活应用和智慧
爱飞 该用户已被删除
13#
发表于 2015-3-11 13:50:36 | 只看该作者
是一种使网页(Web Page)由静态(Static)转变为动态(Dynamic)的语言
透明 该用户已被删除
14#
发表于 2015-3-18 15:09:29 | 只看该作者
你一定会高兴地说,哈哈,原来成为Java高手就这么简单啊!记得Tomjava也曾碰到过一个项目经理,号称Java很简单,只要三个月就可以学会。
莫相离 该用户已被删除
15#
发表于 2015-3-26 01:12:26 | 只看该作者
Java 不同于一般的编译执行计算机语言和解释执行计算机语言。它首先将源代码编译成二进制字节码(bytecode),然后依赖各种不同平台上的虚拟机来解释执行字节码。从而实现了“一次编译、到处执行”的跨平台特性。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-12-23 16:33

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表