仓酷云

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

[学习教程] JAVA网页编程之好的JAVA作风(英译)

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

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

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

x
Java的B/s开发是通常是javaweb开发,又叫J2EE开发,J2SE是手机开发。C#的C/s和B/s开发是说.net和Asp开发。。u在这里说明一点;资深一点的Java和C#程序员都明白一点先容
作为一个已事情了良多年的软件开辟者和征询师,我看过大批五花八门的程序言语代码。个中有粗俗的也有丑恶的,可是不幸的是,它们中年夜多半代码都是丑恶的。我但愿可以压服你们,我的开辟同伴们,我们应当充足的器重我们的代码作风,特别是那些在使用程序中供应用户接口和其他可视化部分的代码。在这两部分系列的第一部分,我会注释为何我们应当体贴我们的代码表面,然后论述一些好的JAVA作风的一样平常要素。为何代码很主要
只管JAVA是用来写程序而不是散文,但它仍旧被用来表达头脑和概念的。并且,在查询拜访中显现,那些头脑和概念在实践中完成了良多事变。为编写出好的JAVA作风而担心,仿佛是在华侈工夫,但实践上它对我们编写程序是很合适的,由于它所要表达的头脑和概念是分外明晰的。
这里供应一些来由,为何要利用好的JAVA代码标准
一个软件产物的80%的性命期是在保护(maintenance)。
几近没有一个软件在它的全部性命期里都是被它的作者来保护的。
利用好的作风进步了软件的可保护性。
假如源代码和软件产物是绑缚给客户的,作为产物的残剩部分,它应当有好的分包(well-packaged),充足明晰和专业的代码。
利用好的作风编写代码有以下几点优点:
进步了代码的可读性,延续性,协调性。这些都能使代码能更简单的了解和保护。
使代码更简单被跟踪和调试,由于它是明晰的和延续的。
使你或另外一个程序员在编写停止时更简单再持续下往,特别在一个很长的工夫后。
增添了代码预排(walkthroughs)的优点,由于能让参进者更多的将核心会合在代码正在做甚么。
提要目标
利用好的JAVA作风其实不坚苦,可是它的确必要注重细节。上面是一些经常使用的提要引导目标:
使代码更明晰和更简单读
使代码更延续
利用不言而喻的标识符名
逻辑地构造你的文件和类
每一个文件只要一个类(这里不包含一些外部类)
利用80-90个字符的最年夜行宽
明智的利用空格来and/or其他分开符
缩排上,利用空格(Space)来取代Tab
Tabsvs.空格
在编写代码时,“Tabsvs.空格”是一个松散的概念。这里我并非表示只要一个准确的办法。我撑持利用空格,由于它能包管我的代码在你的编纂器里和我的编纂器里看到的不异,反之矣然。假如你感到利用空格来取代Tab"不是准确的",那末就利用Tab吧。
括号和缩进
在编写代码时,缩进作风(cf.,Raymond,"IndentStyle"),大概安排括号("{"和"}")和一些相干联的缩进代码,是另外一个松散的概念。象JAVA一样,有很多C作风的言语存在。我这里也不是表示它们中哪个更优先更好。在年夜多半本文的典范代码中,我利用了K&R作风,假如你不喜好K&R作风,那末就利用其他作风吧。
正文
在JAVA代码中你可使用两种正文:Javadoc正文(也称为文档正文)和实行正文。Javadoc正文可以被javadoc工具解压来打造一个API文档。实行正文是那些注释代码目标和体例的正文。在正文你的JAVA代码时请利用以下目标:
尽量的利用Javadoc正文(在类和办法上,使之能最小化).
多利用块正文,少利用//正文,除非一些特别的情形,如变量声明
要记着:好正文是有匡助的,坏正文是贫苦的。
Example1.BadCommentStyle
//applyRotAscii()--ApplyASCIIROT
privatevoidapplyRotAscii(){
try{
introtLength=Integer.parseInt(rotationLengthField.getText().trim());//getrotlen
RotAsciicipher=newRotAscii(rotLength);//newcipher
textArea.setText(cipher.transform(textArea.getText()));//transform
}catch(Exceptionex){
/*Showexception*/
ExceptionDialog.show(this,"Invalidrotationlength:",ex);}
}
Example2.GoodCommentStyle
/**
*ApplytheASCIIrotationciphertotheuserstext.Thelengthisretrieved
*fromtherotationlengthfield,andtheuserstextisretrievedfromthe
*textarea.
*
*@authorThorntonRose
*/
privatevoidapplyRotAscii(){
introtLength=0;//rotationlength
RotAsciicipher=null;//ASCIIrotationcipher
try{
//Getrotationlengthfieldandconverttointeger.
rotLength=Integer.parseInt(rotationLengthField.getText().trim());
//CreateASCIIrotationcipherandtransformtheuserstextwithit.
cipher=newRotAscii(rotLength);
textArea.setText(cipher.transform(textArea.getText()));
}catch(Exceptionex){
//Reporttheexceptiontotheuser.
ExceptionDialog.show(this,"Invalidrotationlength:",ex);
}
}
块和语句
利用上面的目标来编写块和语句:
一行只写一个语句
把持语句老是利用{}如许的括号(e.g.,if).
思索在块的开端利用一个正文(e.g.,}//endif),特别是长的或嵌套块
在块的开首安排变量的声明语句
总记得初始化变量
假如你是个完善主义者,左对齐变量名
在switch块里缩进case从句
在操纵符后留有空缺
在if,for,或while语句中,在括号“(”前留有空缺
在表达式中利用空缺和拔出语来加强可读性
在for轮回中的变量是个破例。轮回变量大概会在语句初始化部分被界说。e.g.,for(inti=0;...).
在块的开端拔出正文有助于你偶然中跟踪到被删除的开头括号“}”.
Example3.BadBlockStyle.
try{
for(inti=0;i<5;i++){
...
}
intthreshold=calculateThreshold();
floatvariance=(threshold*2.8)-1;
intc=0;
if(threshold<=15)c=calculateCoefficient();
switch(c){
case1:setCeiling(c*2);break;
case2:setCeiling(c*3);break;
else:freakOut();
}
}catch(Exceptionex){...}
Example4.GoodBlockStyle.
try{
intthreshold=0;
floatvariance=0.0;
intcoefficient=0;
//Prepare5cycles.
for(inti=0;i<5;i++){
prepareCycle(i);
}
//Calculatethethresholdandvariance.
threshold=calculateThreshold();
variance=(threshold*2.8)-1;
//Ifthethresholdislessthanthemaximum,calculatethecoefficient.
//Otherwise,throwanexception.
if(threshold<=MAX_THRESHOLD){
coefficient=calculateCoefficient();
}else{
thrownewRuntimeException("Thresholdexceeded!");
}
//Settheceilingbasedonthecoefficient.
switch(coefficient){
case1:
setCeiling(coefficient*2);
break;
case2:
setCeiling(coefficient*3);
break;
else:
freakOut();
}//endswitch
}catch(Exceptionex){
...
}//endtry


令人可喜的是java现在已经开源了,所以我想我上述的想法也许有一天会实现,因为java一直都是不断创新的语言,每次创新都会给我们惊喜,这也是我喜欢java的一个原因。
老尸 该用户已被删除
沙发
发表于 2015-1-27 06:39:19 | 只看该作者
学Java必读的两个开源程序就是Jive和Pet Store.。 Jive是国外一个非常著名的BBS程序,完全开放源码。论坛的设计采用了很多先进的技术,如Cache、用户认证、Filter、XML等,而且论坛完全屏蔽了对数据库的访问,可以很轻易的在不同数据库中移植。论坛还有方便的安装和管理程序,这是我们平时编程时容易忽略的一部份(中国程序员一般只注重编程的技术含量,却完全不考虑用户的感受,这就是我们与国外软件的差距所在)。
兰色精灵 该用户已被删除
板凳
发表于 2015-2-5 00:37:59 | 只看该作者
是一种使用者不需花费很多时间学习的语言
小魔女 该用户已被删除
地板
发表于 2015-2-7 19:26:06 | 只看该作者
任职于太阳微系统的詹姆斯·高斯林等人于1990年代初开发Java语言的雏形,最初被命名为Oak,目标设置在家用电器等小型系统的程序语言
莫相离 该用户已被删除
5#
发表于 2015-2-23 05:54:13 | 只看该作者
你快去找一份Java的编程工作来做吧(如果是在校学生可以去做兼职啊),在实践中提高自己,那才是最快的。不过你得祈祷在公司里碰到一个高手,而且他 还愿意不厌其烦地教你,这样好象有点难哦!还有一个办法就是读开放源码的程序了。我们知道开放源码大都出自高手,他们设计合理,考虑周到,再加上有广大的程序员参与,代码的价值自然是字字珠叽,铿锵有力(对不起,偶最近《金装四大才子》看多了)。
乐观 该用户已被删除
6#
发表于 2015-3-7 05:44:21 | 只看该作者
还好,SUN提供了Javabean可以把你的JSP中的 Java代码封装起来,便于调用也便于重用。
小女巫 该用户已被删除
7#
发表于 2015-3-7 11:35:44 | 只看该作者
关于设计模式的资料,还是向大家推荐banq的网站 [url]http://www.jdon.com/[/url],他把GOF的23种模式以通俗易懂的方式诠释出来,纯Java描述,真是经典中的经典。
蒙在股里 该用户已被删除
8#
 楼主| 发表于 2015-3-15 02:00:48 | 只看该作者
你现在最缺的是实际的工作经验,而不是书本上那些凭空想出来的程序。
简单生活 该用户已被删除
9#
发表于 2015-3-17 12:07:20 | 只看该作者
如果你学过HTML,那么事情要好办的多,如果没有,那你快去补一补HTML基础吧。其实JSP中的Java语法也不多,它更象一个脚本语言,有点象ASP。
第二个灵魂 该用户已被删除
10#
发表于 2015-3-24 09:26:15 | 只看该作者
自从Sun推出Java以来,就力图使之无所不包,所以Java发展到现在,按应用来分主要分为三大块:J2SE,J2ME和J2EE,这也就是Sun ONE(Open Net Environment)体系。J2SE就是Java2的标准版,主要用于桌面应用软件的编程;J2ME主要应用于嵌入是系统开发,如手机和PDA的编程;J2EE是Java2的企业版,主要用于分布式的网络程序的开发,如电子商务网站和ERP系统。
飘飘悠悠 该用户已被删除
11#
发表于 2015-3-27 03:10:53 | 只看该作者
关于设计模式的资料,还是向大家推荐banq的网站 [url]http://www.jdon.com/[/url],他把GOF的23种模式以通俗易懂的方式诠释出来,纯Java描述,真是经典中的经典。
若天明 该用户已被删除
12#
发表于 2015-4-2 00:15:22 | 只看该作者
不过,每次的执行编译后的字节码需要消耗一定的时间,这同时也在一定程度上降低了 Java 程序的运行效率。
因胸联盟 该用户已被删除
13#
发表于 2015-4-12 17:27:53 | 只看该作者
所以现在应用最广泛又最好学的就是J2EE了。 J2EE又包括许多组件,如Jsp,Servlet,JavaBean,EJB,JDBC,JavaMail等。要学习起来可不是一两天的事。那么又该如何学习J2EE呢?当然Java语法得先看一看的,I/O包,Util包,Lang包你都熟悉了吗?然后再从JSP学起。
精灵巫婆 该用户已被删除
14#
发表于 2015-4-20 03:56:41 | 只看该作者
是一种由美国SUN计算机公司(Sun Microsystems, Inc.)所研究而成的语言
爱飞 该用户已被删除
15#
发表于 2015-4-24 09:10:22 | 只看该作者
那么我书也看了,程序也做了,别人问我的问题我都能解决了,是不是就成为高手了呢?当然没那么简单,这只是万里长征走完了第一步。不信?那你出去接一个项目,你知道怎么下手吗,你知道怎么设计吗,你知道怎么组织人员进行开发吗?你现在脑子里除了一些散乱的代码之外,可能再没有别的东西了吧!
谁可相欹 该用户已被删除
16#
发表于 2015-4-25 15:01:39 | 只看该作者
你就该学一学Servlet了。Servlet就是服务器端小程序,他负责生成发送给客户端的HTML文件。JSP在执行时,也是先转换成Servlet再运行的。虽说JSP理论上可以完全取代Servlet,这也是SUN推出JSP的本意,可是Servlet用来控制流程跳转还是挺方便的,也令程序更清晰。接下来你应该学习一下Javabean了,可能你早就看不管JSP在HTML中嵌Java代码的混乱方式了,这种方式跟ASP又有什么区别呢?
admin 该用户已被删除
17#
发表于 2015-4-26 21:09:30 | 只看该作者
Sun公司看见Oak在互联网上应用的前景,于是改造了Oak,于1995年5月以Java的名称正式发布。Java伴随着互联网的迅猛发展而发展,逐渐成为重要的网络编程语言。
只想知道 该用户已被删除
18#
发表于 2015-5-3 10:15:52 | 只看该作者
在全球云计算和移动互联网的产业环境下,Java更具备了显著优势和广阔前景。
活着的死人 该用户已被删除
19#
发表于 2015-5-7 09:31:32 | 只看该作者
是一种将安全性(Security)列为第一优先考虑的语言
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2024-12-23 02:31

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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