`

开发注意细节

    博客分类:
  • java
阅读更多

开发注意事项

1.         服务器端必须提供输入数据正确性的验证,客户端的Javascript验证可以没有。这是基于安全性的考虑,因为Javascript是很容易被绕过的,增加客户端验证只是为了减少服务器压力、界面更加容易使用。

2.         适度使用Session,尽量不要在Session里放很大的集合对象,以免内存消耗过大,因为很多用户访问的时候会产生很多的Session。参数传递应该尽量通过Request。熟悉HTTP有助于更好的理解Session、Cookie、Request等的机制。

3.         在带有分页的查询界面,尽量不要使用POST方法来传递参数,POST传递的参数在地址栏里是看不到的,刷新后会有重新提交表单的提示。使用GET方法传递参数要注意URL的长度不能超过1K。

4.         分层应该清晰,一般目前我们分为View(Jsp或FreeMarker加上Action)、Bean(Service)、DAO这么三层,即显示层、业务层、数据层。记录集ResultSet这种只能出现在DAO层中的对象不能出现在Bean(Service)层中,同样HttpServletRequest这种只能出现在View层的对象也不应出现在Bean(Service)层中。这并不是绝对的。

5.         尽量使用简单SQL,避免两表以及多表联查。多表联查会导致数据库压力大幅增加,而且不利于在内存中对部分记录进行缓存,代码的重用性也难以提高。

6.         避免在循环里执行findXXById这样的方法,不如执行一个findXXByIds这样的方法一次性把记录取到Map里。大部分有实际对象对应的表应该提供这样一个方法。

7.         如果使用最原始的jdbc编程的话需要注意资源的正确释放,在循环里new出来的Statement或者ResultSet就要在循环里关闭。

8.         在编写SQL进行查询的时候,需要能够判断这个SQL是否已经使用了索引,避免全表扫描,必要的时候增加索引。

9.         在写一个方法前,首先查看有没有相同功能或者很类似功能的方法已经有了,尤其是工具类方法,往往已经写过了,避免重复代码的产生,发现重复代码及时进行处理。如果一段代码被重复使用两遍或以上,那么可以考虑专门写个方法来放这段代码,同样多次使用的常量也应该专门定义出来。

10.     在一个方法里并不一定只能有一个return,如果已经有结果了尽早return,没必要增加嵌套的层次,那样会导致代码可读性不佳,但也不能return太多,代码看起来比较舒服就可以了。

11.     不要满足于能够熟练的编写DAO和Bean(Service)的代码,相比较而言,后台如果在成熟框架的支持下,编码是没有太大难度的,也不值得沾沾自喜,因为这是对Java研发工程师基本的要求。适当的培养一下前台的编码能力,学会使用Dreamweaver。不要轻视界面,也别认为这是界面设计的事情,界面对用户来说就是软件,学会编写CSS和调整界面对你没有坏处。

12.     非常明确Java和javascript作用的范围,明确它们能做的事情。

13.     一般很奇怪的现象都是由一些低级错误引起的,如果你查了一段时间也没有结果,那么让别人来查吧。

14.     不要用可能被修改的字段来做主键,那样会让相关记录的更新成为一个大麻烦。

15.     如果被迫使用Hibernate和jdbc混合操作数据库的话,不要用Hibernate来做复杂查询和统计。Hibernate用的不好的话,带来的便利是非常有限的。

16.     数据库中经常被读取,但是很少修改的话,应该把这样的数据读到内存中用OSCache之类的缓存起来,然后定期或者触发的去更新,有助于减少读数据库次数,提升性能。

17.     编码的时候应该注意部署环境带来的影响,这种影响包括操作系统不同带来路径的差异;应用服务器和数据库服务器之间时间的差异;外网可能部署在多台服务器上,放到Session里的对象因为需要复制所以要实现java.io.Serializable接口等。

18.     尽量不要在jsp上编写太多代码,保持jsp的整洁很重要,用Dreamweaver打开不至于一塌糊涂,根本看不出来这是个什么界面。

19.     目前我们的项目一般都使用Spring来管理数据库事务,而且一般都配置在Bean(Service)即业务层这一层,应该注意要保持事务的完整性,不要把一些应该放在一起的操作分散在Action这一层。相关的更新操作可以认为是一个事务,比如:增加一个家长,同时更新学生是否有家长的字段。

20.     在Spring的配置中,对于有些需要保持独立事务的方法操作,比如生成主键等,应该声明该方法为独立事务ROPAGATION_REQUIRES_NEW。Bean(Service)里如果抛出checked exception,事务默认是不会回滚的,需要加以声明,比如<prop key="*">PROPAGATION_REQUIRED,-PassportException</prop>。

21.     在一个Bean(Service)中引用其他Bean(Service)的时候尽量引用Bean(Service),而不是DAO。因为其他的Bean(Service)往往封装DAO的操作后,又做了进一步的完善,比如增加校验等,所以应该重用这些方法,而不必要去引用DAO的方法来重写这些操作。

22.     至少在Bean(Service)的接口定义上增加注释,方便他人引用你写的方法。

23.     好好利用集合框架里的Map、List、Set。尤其是HashMap、ArrayList、HashSet用的最多,这些类是多条数据操作的基础,它们都不是线程安全的。

24.     现在跑的快的页面,随着数据量的增加,可能会变的很慢,所以应该意识到页面可能变慢的原因,而不是现在看起来很快。影响速度的大部分原因是对数据库的压力太大了,在java代码执行上花费很多时间的情况是不常见的。

25.     避免不必要的跳转,如果页面执行的足够快,那么中间的载入进度提示页是不必要的,那样会让用户觉得闪烁。

26.     注意页面的文件大小,并不是每个用户的带宽都是非常理想的,文件小一点,速度快一点,总是感觉更好一点。

27.     不要去修改用户的浏览器,比如隐藏他们的地址栏、菜单、右键菜单等,这可能会引起部分用户的反感。尽量不要使用弹出窗口,可能会被拦截。

28.     网站的权限控制至少应该保证有访问权限的用户才能访问页面,通过隐藏链接之类的方法是很不安全的,用户看不见了并不表示安全了。权限的控制尽量使用框架里的拦截器这样的机制,而不是把权限控制代码写的到处都是。过滤器不宜过多的使用,不仅因为过滤器的作用范围很难控制,而且容易引起页面执行效果的混乱,错误不易排查。

29.     页面里大部分情况使用相对路径,保持Action路径层次和页面一致,这样应用就可以发布在各种目录下。

30.     最后一点,多沟通,多交流。


本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/icemanws/archive/2010/01/06/5144086.aspx

分享到:
评论

相关推荐

    百度地图开发注意细节

    本文档为百度地图开发相关文档,主要对SDK使用以及相关配置注意细节进行记录,避免走弯路,也可以解决一些配置不齐的异常(如UnsatisfiedLinkError)等。本文档内容是本人在开发时遇到的一些问题,希望能帮助更多的...

    Java编程中须注意的细节.pdf

    在进行Java编程时,许多开发者往往会忽略一些琐碎但至关重要的细节,这些细节可能在项目的开发和维护中造成不可预见的问题。为了解决这些问题,可以参考《Java Pazzlers》(Java解惑)这本书,其中对许多常见的编程...

    公司开发细节描述

    ### 公司开发流程与日常运营细节 #### 公司结构与人员配置 一家典型的IT公司内部结构较为复杂,但通常包含以下基本组成部分: - **老板**:负责公司的整体战略规划与决策。 - **行政部**:处理日常行政事务,如...

    AC690N系列开发细节注意点.pdf

    在分析AC690N系列的开发细节时,首先需要注意的是在遇到初始编译失败的问题时,解决方案可能是修改isd_tools.cfg文件中的FLASHID参数为e04015。这表明开发环境的配置对项目的顺利进行有着至关重要的作用。开发者在...

    手机开发注意事项

    开发者应注重细节,从用户的角度出发,打造既美观又实用的软件,同时遵循最佳的编程实践,确保代码的质量和性能。手机开发是一项综合性极强的工作,只有充分理解和运用上述注意事项,才能开发出受到用户欢迎的优秀...

    PI数据库开发注意事项

    ### PI数据库开发注意事项 #### 实时数据库概述及特点 实时数据库是一种专为处理实时数据而设计的数据库系统,与传统的关系型数据库相比,它具备独特的特性和应用场景。实时数据库主要用于实时数据的采集、处理和...

    java和JavaScript开发细节

    #### 二、JavaScript开发注意事项 JavaScript作为前端开发的重要语言之一,其使用细节同样值得关注: 1. **jQuery绑定事件:** 使用jQuery绑定事件时,要注意避免绑定过多的事件处理器,这可能会导致页面性能下降...

    做程序员需要注意的细节

    作为一名程序员,注重细节是至关重要的。这不仅关系到代码的质量,还直接影响到项目的成功率和团队的效率。在软件开发过程中,有许多方面需要我们关注,以下是一些关键的细节要点: 1. **编码规范**:遵循良好的...

    USB固件开发.pdf

    在固件开发中,有很多关键技术细节需要注意。例如,需要注意 delay 的设置、IFCLK 和 CLKOUT 的同步延迟、Random Macros 的使用等等。这些建议将对固件的性能和可靠性产生重要影响。 USB 固件开发是一个复杂的过程...

    参考资料-选准课题组好团队科学论证注重细节-重大项目.zip

    此外,注重细节还包括对项目进度的精细化管理,如采用敏捷开发方法,定期进行迭代和反馈,以便及时调整项目方向。 综上所述,这个文档资料很可能提供了一套详细的指导,帮助读者了解如何在IT项目中有效地执行这些...

    力软敏捷开发框架资源手册.rar

    在开发注意事项方面,可能会提到如何有效地利用框架提供的组件和服务,避免常见的陷阱,以及如何优化代码结构以提高性能。例如,正确地配置依赖注入、合理组织业务逻辑层和数据访问层、遵循一定的编码规范等,都是...

    基于Java的网购系统设计与开发的注意事项.pdf

    本文所介绍的网购系统开发过程中的技术知识和注意事项,为相关研发人员提供了一定的参考和指导。随着技术的不断进步和市场需求的变化,网购系统的设计与开发也将不断面临新的挑战和机遇,研发人员需要持续学习和创新...

    明华读卡器MWRF35的开发包SDK

    此外,帮助文档是SDK中不可或缺的部分,它详尽地介绍了开发包的使用方法、函数接口、错误代码以及注意事项。开发者可以通过查阅文档,获取关于API的详细说明,解决开发过程中遇到的问题。良好的文档支持可以帮助...

    wince 6.0 开发环境搭建 以及 wince6.0 流驱动开发的2种方法

    此外,在 Wince 6.0 流驱动开发中,需要注意一些细节问题,例如驱动程序的接口函数的实现、驱动程序的配置文件的编写等。 Wince 6.0 开发环境搭建和流驱动开发是 Wince 6.0 应用程序开发的基础,需要认真地学习和...

    网站开发流程 网站开发详细说明

    网站开发公司根据客户的要求制定《网站建设方案》,并与客户确定网站建设方案的具体细节及价格。 第三步:签署协议,支付预付款。在这个步骤中,双方签订《网站建设协议》,客户提供更为详尽的图片资料,并支付预付...

    客户开发方法市场开发外贸客户开发.pdf

    * 印度商业习惯:爱钻营、急功近利、很精明,图方便,喜欢凭样交货,谈判注重细节,费时较久。 * 印度民族特点:宗教、假日;素时主义,爱喝红茶、牛奶。 七、巴西客户开发方法 * 巴西商业习惯:不妥协、坚持已见...

    DM365的开发文档

    ### DM365开发文档详解 #### 一、概述 ...通过仔细研读文档中的每一部分,不仅可以迅速掌握DM365评估板的使用方法,还能深入了解其背后的开发原理和技术细节,从而为后续的实际项目开发打下坚实的基础。

    开发语言判断器

    "说明_Readme.html"文件通常是程序附带的文档,里面会包含使用教程、注意事项、软件版本信息等重要细节。在这个案例中,用户应首先查看此文件以获取关于如何正确使用"开发语言判断器"的指导。通常,这种文档会解释...

Global site tag (gtag.js) - Google Analytics