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

2008-02-23 09:32:50来源:互联网 阅读 ()

新老客户大回馈,云服务器低至5折

【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%的事情都砸了,或者是导致别人认为你把事情几乎都做砸了.
如果你对一些事情发表了一些很不严谨的看法,那么别人会认为你在别的事情上也很不严谨.
依此类推,代码质量,文档完整性等等,都会让人产生类似的推理.

(当然一个代码写的很乱的人,往往文档也很乱.)

【强制绑定是不受欢迎的】

不要在程序中强制绑定一些额外的功能.

有的框架往往功能很多,是"大型计算机",有很多功能,但是在我需要打字的时候,给我打字的功能即可,不要强制我使用网络功能,打印功能,负载均衡功能等等.

一般来说,如果一个东西有很多功能,那么做好做成可配置,可插拔的,这样用户使用你的东西,没必要在不使用高级功能的时候,浪费用户的内存,磁盘.开发人员还得多copy好多lib文件,占用调试时间,岂不是很麻烦.

不要买一送一,我不想要就别给我. :)

【有时候也得考虑兼容性】

一般来说,一个公司的客户会有很多,用户的运行环境是各种各样的.JDK1.3,jdk1.4甚至还有jdk1.2.这样我们在编程的时候就必须做一些妥协,有些函数库就不能使用.
如果这些用户的jdk不能升级(一般来说都需要购买新的产品才能升级),或者我们必须对这些情况妥协,那么我们就要在开发中考虑这些问题.

例如以前,在Servlet 2.2的时候,因为没有setCharacterEncoding,我们必须手动对各种字符进行转换.当Servlet2.3的时候,可以使用这个函数了.但是为了客户考虑,我们只好没有升级还是使用原来的方法.(当然后来大多数用户都使用了新的App Server,我们就可以使用filter来处理编码问题了).

向下兼容性确实让人头疼,JDK1.5也发布好久了,不过我们现在也不能使用,只能自己没事测试测试.

在编程的时候,一定要设置好IDE的兼容性设置,防止我们使用了不能使用的特性.JBuilder,Eclipse都有类似的设置.

【成本与现实,给用户以选择余地】

全文检索,lucene,like是三种对大文本字段检索的方法.那么你采用哪一种呢?

也许你会毫不犹豫的说"全文检索" (我看你像TRS公司的托 :P).

正如"强制绑定是不受欢迎的"里面所说的一样,我还是觉得应该给用户以选择的余地.

全文检索是要花钱的或者需要配置,而且一般来说数据库专用的全文检索都是不通用的,lucene是需要开发人员开发的,只有like最简单了,但是太简单了,而且性能也差.

这个时候,也许我们就应该提供几种方式供用户选择了,用户如何选择那就看他们了...



【结束语】

实际开发设计中肯定还存在很多其他的问题,本文不可能一一论述.到此为止. :)

希望各位在开发设计中成为高水平的设计师. :)

上一篇: 在J2ME中实现游戏功能选择界面(附源代码)
下一篇: 在J2ME中实现欢迎界面(附源代码)

标签:

版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有

上一篇:osworkflow api 之jdbc和hibernate

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