设计迷踪:给JAVA设计开发新手的一些建议和意见(四)

【MVC,MVC2,WEB设计编程的分层】
 请阅读文章 http://forum.javaeye.com/viewtopic.php?t=11712&postdays=0&postorder=asc&start=0
【可扩展不等于功能强大,不要夸大其辞】
 现在的系统,因为接口或者其他方法的使用,都具有很大的扩展性.但是扩展性不等于功能强大.
 存在一个接口,用户可以实现自己的接口,确实非常方便.但是如果你的系统本身只实现了一个接口或者根本没有实现,那么对用户来说就谈不上方便.
 例如WebWork的validators,本身是一个接口,但是实际上本身实现的具体类很少,而且功能很差,这个时候如果你说WebWork的校验器很厉害,那么就可能不太恰当了.当然扩展Webwork的Validator还是非常方便的.
 当然,可扩展性还是需要的,但是不要吹嘘,在这个浮躁的年代,让我们多干点实事. :)
【20/80原则】
 在工作中,我经常想到20/80原则,也就是"巴雷多原则".例如我们可以看到:
       时间:我们20%的时间会产生成果的80%
       产品:产品的20%带来利润的80%
       阅读:20%的书篇幅包括了内容的80%
       工作:20%的工作给我们80%的满意
       演讲:20%的演讲产生影响的80%
       领导:20%的人作出80%的决定
 从上面可以看出,很多时候它都很有说服力.
 在这里我想提到几点,但是和上面的可能出发点有所不同:
 1.程序的80%都是在处理特殊情况,所以我们一定要对特殊情况重视,不要因为是特殊情况,就不很重视.80%的客户对特殊情况都很重视.
   文档对特殊情况也要详细描述,因为开发人员80%的时候在查找这些东西,而对那些经常用到的用法却很少查阅文档.
 
 2.优化问题:80%的瓶颈都出在20%的代码上,所以在优化代码的时候不需要优化所有代码,只需要优化20%的关键代码就够了.当然追求完美的人我们就不多说了.
   记得有一条优化的原则是"不要优化!不要优化",是非常有道理的.
    
 3.如果你20%的事情做砸了,往往会导致80%的事情都砸了,或者是导致别人认为你把事情几乎都做砸了.
   如果你对一些事情发表了一些很不严谨的看法,那么别人会认为你在别的事情上也很不严谨.

时间: 2024-10-13 18:47:13

设计迷踪:给JAVA设计开发新手的一些建议和意见(四)的相关文章

设计迷踪:给JAVA设计开发新手的一些建议和意见(一)

[概述]-------    在工作中,作为一个程序员或者一个设计师,总是要设计一些函数库或者一个框架,当然最经常的还是做项目,即使是一个项目,也会被经常改动,甚至交给别人改动.当你做这些工作的时候,你的这些成果都是要给别人了解使用的,或者说给以后的你使用的,为了别人的方便或者为了自己的方便,我们要尽可能做好设计.[放正心态,任何东西都是不断发展的]---------------------------------- 技术是日新月异的,每一天都有新的技术出来,正所谓"山外有山,人外有人"

设计迷踪:给JAVA设计开发新手的一些建议和意见(二)

[处理好你的异常]-----------------  异常处理是Java编程中非常重要的一个部分.建议在使用异常之前阅读<Effective Java Programming Language Guide>或者<Practical Java>. 下面从书中摘出几条建议:  *绝对不要忽略异常  *千万不要隐藏异常***  *仅在不正常的情况下使用异常  *对可恢复的情况使用可检查异常,对程序错误使用运行时异常(RunTimeException)  *给方法引发的异常做文档  *在

设计迷踪:给JAVA设计开发新手的一些建议和意见(三)

[空接口的使用] 在接口使用的时候,空接口有2种情况: 1.类似Cloneable,Serializable,他们往往是做一个标记,表示需要某个功能.当然你也可以这么用,来表示你的类具有某个功能,实现了你的某个接口. 2.你的接口继承了别的接口(非空),你的接口本身没有声明函数.这种情况一般是你不希望用户使用父接口来作为参数类型,因为他们的用途可能不同,此时就可以用空接口来实现. 第一种情况我们不再多说,搜索一下关于Cloneable,Serializable的文章就会了解很多. 我们来看下面的

java web-Java Web开发新手请教个问题(eclipse第三方jar的正确导入方式)

问题描述 Java Web开发新手请教个问题(eclipse第三方jar的正确导入方式) 比如我导入第三方jar包, 我在JSP页面用了这个包,eclipse编译倒是通过.但浏览器弹出来就显示XXX cannot be resolved to a type. 我是这样导入的:右击项目,Build Path-->Libraries-->Add External JARS,还有我把该jar包也放在项目中的WEB-INF的Lib文件下了,还是没用. 凡是用到第三方包,eclipse编译都通过,浏览器

约瑟夫java设计大作业

问题描述 约瑟夫java设计大作业 这是17世纪的法国数学家加斯帕在<数目的游戏问题>中讲的一个故事:15个教徒和15 个非教徒在深海上遇险,必须将一半的人投入海中,其余的人才能幸免于难,于是想了一个办法:30个人围成一圆圈,从第一个人开始依次报数,每数到第九个人 就将他扔入大海,如此循环进行到仅余15个人为止.问怎样排 法,才能 的使每次投入大海的都是非教徒 的设计思想,java设计大作业 解决方案 //a代表教徒,b代表非教徒 public class Test { /** * Enter

用Java设计COM服务器

本节将介绍ActiveX控件.Automation服务器或者其他任何符合COM规范的服务器的开发过程.下面这个例子实现了一个简单的Automation服务器,它能执行整数加法.我们用setAddend()方法设置addend的值.每次调用sum()方法的时候,addend就会添加到当前result里.我们用getResult()获得result值,并用clear()重新设置值.用于实现这一行为的Java类是非常简单的:   public class Adder { private int add

代码-java设计一个管理系统

问题描述 java设计一个管理系统 基于java设计一个学生成绩管理系统,要求有界面,且有增加,查询,修改,删除,退出功能,代码怎么写? 解决方案 这个在网上搜索一下就可以吧. 解决方案二: 界面的代码用easyUI可以自动生成,数据用SQL 解决方案三: 找个jservlet的资料看看你就知道怎么弄了

Java设计一个教学管理系统,要求如下

问题描述 Java设计一个教学管理系统,要求如下 设计一个教学管理系统,考虑到教师.学生.班级.课程.成绩等变量;设计实现类和类的关系,如下: 1.教师和学生都能登入系统,有不同的功能,登录密码为空(提示用继承和多态实现) 2.教师可以录入指定班级指定课程的学生成绩,以字符串输入 3.学生可以登录进去查询某门课程的成绩(自己的或全班的都可以查)和自己的排名 注意:每一个类中要使用无参的构造方法;并且实现数据域的封装 解决方案 教学管理信息系统的设计 解决方案二: http://down.51ct

java 音乐播放器-java设计音乐播放器,如何实现暂停后继续播放?

问题描述 java设计音乐播放器,如何实现暂停后继续播放? 做课程设计,想采用JAVA语言做个音乐播放器 音乐停止后再点播放按钮时总是从开始的位置播放的 求大神们支招如何实现从暂停位置继续播放? 实现过程中应用了第三方JAR包,javazoom.jlgui.*:这个也没多少文档,也不知道里面有实现的方法没 还有如何实现对音量的调控? 解决方案 http://bbs.csdn.net/topics/390328293