- 浏览: 647555 次
- 性别:
- 来自: 青岛
文章分类
最新评论
-
mojingqing:
感谢!
MySQL修改my.ini后,出现错误:Incorrect information in file: '.\xx\xx.frm -
qq3061280:
qq3061280 写道
FATAL ERROR in native method: JDWP No transports i -
qq3061280:
FATAL ERROR in native method: JDWP No transports i -
xiebo1983:
http://sqkoo.com/mysql-function ...
Date format -
java_xiaoyi:
...
[SQLServer]传入的表格格式数据流(TDS)远程过程调用(RPC)协议流不正确
一、为代码加注释。虽然每个人都知道这点,但有时却不自觉忘了履行,今天你“忘了”加注释了吗?虽然注释对 程序的功能没什么“贡献”,但过一段时间,比如说两星期之后或者更长,回过头来看看自己的代码,说不定已经记不住它是干什么的了。如果这些代码是你个人 的,那还算是走运了,不幸的是,当然了,大多数时候都是别人的不幸,很多时候大家都是在为公司写代码,写代码的人也许早已经离开了公司,但别忘了一句古 话,有来有往嘛,为他人,也为我们自己,请为你的代码加上注释。
二、不要让事情复杂化。程序员有时候总是对简单问题想出复杂的<nobr>解决方案</nobr>, 比如说,在只有五个用户的程序中引 入EJB、对程序实现了并不需要的框架(framework),之类的还有属性文件、面向对象解决方案、多线程等等。为什么要这样做呢?也许我们并不知道 是否这样会更好,但这样做也许可以学到一些新东西,或者让自己更感兴趣一些。如果是不知道为什么这样做,建议多请教经验丰富的程序员,如果是为了个人的目 的,麻烦让自己更专业一点。
三、始终牢记——“少即是好(Less is more)并不总是对的”。代码效率虽然很重要,但在许多解决方案中,编写更少的代码并不能改善这些代码的效率,请看下面这个简单的例子:
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"; } |
能看明白if条件语句是干什么的吗?能想出来是谁写的这段代码吗?如果把它分成两段独立的if语句,是不是更容易理解呢,下面是修改后的代码:
if(newStatusCode.equals("SD") && (sellOffDate == null || todayDate.compareTo(sellOffDate)<0 || (lastUsedDate != null && todayDate.compareTo(lastUsedDate)>0))){ newStatusCode = "NYP"; }else if(newStatusCode.equals("OBS") && (OBSDate == null || todayDate.compareTo(OBSDate)<0)) { newStatusCode = "NYP"; } |
是不是读起来容易多了呢,在此只是多加了一个if和两个花括号,但代码的可读性与可理解性就一下子提高了一大截。
四、请不要硬编码。开发者经常有意“忘记”或忽略掉这点,因为有些时候开发日程逼得实在太紧。其实,多写一行定义静态变量的代码能花多少时间呢?
public class A { public static final String S_CONSTANT_ABC = "ABC"; public boolean methodA(String sParam1){ if (A.S_CONSTANT_ABC.equalsIgnoreCase(sParam1)){ return true; } return false; } } |
现在,每次需要将“ABC”与其他变量进行比较时,不必记住实际代码,直接引用A.S_CONSTANT_ABC就行了,而且在今后需要进行修改时,也可在一处修改,不会翻遍整个源代码逐个修改了。
五、不要“创造”自己的框架(framework)。确切来说,有数以千计的各种框架存在,而且大多数是开 源的,这些框架都是优秀的解决方案,可用于日常程序开发中,我们只需使用这些框架的最新版本就行了,至少表面上要跟上形势吧。被大家广为接受的最为明显的 一个例子就是Struts了,这个开源web框架非常适合用在基于web的应用程序中。是不是想开发出自己的Struts呢,还是省点力气吧,回头看看第 二条——不要让事情复杂化。另外,如果正在开发的程序只有3个窗口,就不要使用Struts了,对这种程序来说,不需要那么多的“控制”。
六、不要使用println及字符串连接。通常为了调试方便,开发者喜欢在可能的所有地方都加上 System.out.println,也许还会提醒自己回过头来再来删除,但有些时候,经常会忘了删除或者不愿意删除它们。既然使用 System.out.println是为了测试,那么测试完之后,为什么还要留着它们呢,因为在删除时,很可能会删除掉真正有用的代码,所以不能低估 System.out.println危害啊,请看下面的代码:
public class BadCode { public static void calculationWithPrint(){ double someValue = 0D; for (int i = 0; i < 10000; i++) { System.out.println(someValue = someValue + i); } } public static void calculationWithOutPrint(){ double someValue = 0D; for (int i = 0; i < 10000; i++) { someValue = someValue + i; } } public static void main(String [] n) { BadCode.calculationWithPrint(); BadCode.calculationWithOutPrint(); } } |
从测试中可以发现,方法calculationWithOutPrint()执行用了0.001204秒,作为对比,方法calculationWithPrint()执行可是用了10.52秒。
要避免浪费CPU时间,最好的方法是引入像如下的包装方法:
public class BadCode { |
另外,字符串连接也是浪费CPU时间的一个大头,请看下面的示例代码:
public static void concatenateStrings(String startingString) { for (int i = 0; i < 20; i++) { startingString = startingString + startingString; } } public static void concatenateStringsUsingStringBuffer(String startingString) { StringBuffer sb = new StringBuffer(); sb.append(startingString); for (int i = 0; i < 20; i++) { sb.append(sb.toString()); } } |
在测试中可发现,使用StringBuffer的方法只用了0.01秒执行完毕,而使用连接的方法则用了0.08秒,选择显而易见了。
七、多关注GUI(用户界面)。再三强调,GUI对商业客户来说,与程序的功能及效率同等重要,GUI是一 个成功程序的最基本部分,而很多IT经理往往都没注意到GUI的重要性。在现实生活中,许多公司可能为了节省开支,没有雇用那些有着设计“用户友好”界面 丰富经验的网页设计者,此时Java开发者只能依赖他们自身的HTML基本功及在此领域有限的知识,结果,很多开发出来的程序都是“计算机友好”甚于“用 户友好”。很少有开发者同时精通<nobr>软件开发</nobr>及GUI设计,如果你在公司“不幸”被分配负责程序界面,就应该遵守下面三条原则:
1、 不要再发明一次轮子,即不做无用功。现有的程序可能会有类似的界面需求。
2、 先创建一个原型。这是非常重要一步,用户一般想看到他们将使用的东西,而且可以先利用这个原型征求用户的意见,再慢慢修改成用户想要的样子。
3、 学会换位思考。换句话来说,就是从用户的角度来审查程序的需求。举例来讲,一个汇总的窗口可以跨页或者不跨页,作为一个软件开发者,可能会倾向于不跨页,因为这样简单一些。但是,从用户的角度来看,可能不希望看到上百行数据都挤在同一页上。
八、文档需求不放松。每个商业需求都必须记录在案,这可能听上去像童话,似乎在现实生活中很难实现。而我们要做的是,不管开发时间多紧迫,不管最终期限多临近,对每个商业需求都必须记录在案。
九、单元测试、单元测试、单元测试。关于什么是单元测试的最好方法,在此不便细说,只是强调,单元测试一定要完成,这也是编程中最基本的原则。当然了,如果有人帮你做单元测试自然是最好,如果没有,就自己来做吧,当创建一个单元测试计划时,请遵守以下三条最基本的原则:
1、 先于编写类代码之前编写单元测试。
2、 记录单元测试中的代码注释。
3、 测试所有执行关键功能的公有方法,这里不是指set和get方法,除非它们是以自己独特方式执行set和get方法。
十、质量,而不是数量。有些时候因为产品问题、期限紧迫、或一些预料之外的事情,导致常常不能按时下班,但一般而言,公司不会因为雇员经常加班而对之表扬和奖励,公司只看重高质量的工作。如果遵守了前九条原则,你会发现自己写出的代码bug少且可维护性高,无形中质量提高了一大步。
转自: http://news.csdn.net/n/20071126/111088.html
发表评论
-
CentOS 32位与64位查看
2017-05-23 17:24 518getconf LONG_BIT CentOS 版本: ... -
卸载Centos里的OpenJDK
2017-05-23 16:54 559列出安装的Java信息: yum list install ... -
配置YUM源出现Could not open/read repomd.xml 的错误
2017-05-23 16:56 1259关闭本地源: 修改/etc/yum.repos.d/Cen ... -
mac 安装maven
2017-03-24 09:39 533tar xzvf apache-maven-3.3. ... -
Eclipse 中配置已有项目的SVN
2011-05-19 13:35 20041.在SVN的视图界面中的"SVN资源库" ... -
test
2011-04-02 11:33 957<script type="text/Java ... -
Eclipse 安装Weblogic插件
2010-06-22 10:18 6878Using the Eclipse Update Manage ... -
Eclipse Java Home
2010-06-22 08:56 2766当使用新版本的Eclipse时,Eclipse往往会限制使用的 ... -
OO设计原则总结(转)
2010-04-06 08:38 1141设计原则是基本的工具,应用这些规则可使代码更加灵活、更容易维护 ... -
clean后,eclipse不自动build class文件
2009-11-09 14:39 1856clean后,eclipse不自动build class文件 ... -
JAVA程序员面试33问,你能回答多少题?
2009-03-10 09:36 1253第一,谈谈final ... -
FATAL ERROR in native method: JDWP No transports i
2009-02-17 09:01 8179用Eclipse的tomcat插件启动tomcat时报错: ... -
在Dom4j中使用xpath--查看xml数据代码
2009-02-14 16:15 1564最近项目需要操作xml文件,虽然以前也研究过dom4j,但一者 ... -
常用正则表达式
2008-05-27 18:00 1171正则表达式用于字符串 ... -
Java的位移操作
2008-04-19 10:59 23361.左移操作: x << n x可以是byte, ... -
使用javamail发送邮件
2008-04-16 14:16 15921.下载javamail 的jar包:http://cds-e ... -
Java真的在衰落吗?
2008-01-24 10:30 2638国际 好像到处可以听到人们讨论的热点是Java,议论它正走在死 ... -
如何使用Log4j?
2007-12-19 17:15 16141、 Log4j是什么? Log4j可以帮助调试(有时候d ... -
JAXP 1.4 下载
2007-11-23 18:13 3471JAXP 1.4 下载: https://jaxp.dev.j ... -
j2ee相关包下载地址
2007-11-01 10:30 102271. Xerces,是支持SAX的XML解析器。 当前版本:X ...
相关推荐
以下就是根据提供的信息整理出的Java开发者十大戒律的详细解释: 第一条:务必在代码中添加注释 注释是代码的文档,帮助他人(包括未来的自己)理解代码的目的和工作方式。即使是最简单的代码,也可能随着时间推移...
Java开发者的十大戒律 Java 开发者的十大戒律是指 Java 开发者在编程过程中需要遵守的基本原则,以确保代码的质量和可维护性。本文总结了十大戒律,涵盖了代码注释、复杂度控制、代码简洁性、硬编码避免、框架选择...
### Java开发者的十大戒律详解 #### 戒律一:注重注释 在代码编写过程中,良好的注释习惯是至关重要的。很多开发者可能认为注释是可有可无的,但在实际工作中,清晰的注释能够帮助他人更快地理解代码逻辑,同时也...
【Java 开发者 10 条戒律】 1. 注释的重要性:代码注解是开发者之间交流的桥梁,能够帮助理解代码的功能和目的。即使你知道代码如何运作,但随着时间的推移,记忆力会衰退,当需要回顾或他人接手时,清晰的注释能...
### JAVA开发人员的十大戒律 #### 一、养成良好的编码习惯 良好的编程习惯对于提升代码的可读性和协作效率至关重要。...通过遵循以上十大戒律,Java开发者可以写出更加高效、可读性强且易于维护的代码。
【Java开发人员需知的十大戒律】是Java开发者应当遵循的重要原则,旨在提升代码质量、可维护性和可读性。以下是对这十大戒律的详细解析: 1. **加入注释**:注释虽然不直接影响程序运行,但在长期维护中至关重要。...
JavaMail是Java编程语言中用于发送和接收电子邮件的API,它提供了一套完整的邮件服务接口,使得开发者可以方便地在Java应用中实现邮件功能。在Java中,我们通常使用`javax.mail`和`javax.mail.internet`这两个包来...
4. **Java开发者的十大戒律** 这些戒律可能是为了提高代码质量、团队协作和项目成功率而提出的原则,可能包括: - 写可读性强的代码:注释清晰,遵循命名规范。 - 避免硬编码:减少依赖,提高代码复用性。 - ...
同时,指南强调了风格不是戒律,其目的是帮助开发者写出好的代码。尽管具体的风格规则可能因组织和项目的不同而有所调整,但大多数组织和项目都能从一定的风格指导中受益。随着MATLAB语言的持续进化,清晰的代码编写...
Struts2、Spring和Hibernate是Java Web开发中的三大框架,它们各自负责应用程序的不同层面,而SSH(Struts2、Spring、Hibernate)则是这三者整合的简称,常用于构建复杂的企业级应用。这个"struts2+spring+hibernate...