- 浏览: 1057353 次
- 性别:
- 来自: 郑州
文章分类
- 全部博客 (605)
- 数据挖掘 (22)
- spring (40)
- 工具使用 (39)
- java (137)
- JavaScript (40)
- webwork (12)
- web (120)
- 资源 (7)
- SSH (5)
- oracle (20)
- J2ME (1)
- 环境配置 (37)
- 项目管理 (29)
- mysql (14)
- struts (4)
- 项目总结 (27)
- ibatis学习 (33)
- 学习计划 (2)
- 缓存 (7)
- 重构 (3)
- Android (1)
- jquery (12)
- UML (3)
- 用户体验 (4)
- 习惯 (7)
- sakai (1)
- urlrewrite (4)
- rss (5)
- C plus plus (5)
- 算法 (5)
- 海量数据处理 (7)
- office(word、excel) (1)
- 面试题 (3)
- solr (8)
- 大数据 (2)
最新评论
-
hujin19861102:
截图看不见,最后一个webwrok的配置看不见
Ext+Webwork+Json 实现分页表格查询效果 -
蜗牛笔:
弱弱的问一句,要是分出来的词在词典中没有,那么两部分的pos- ...
ICTCLAS 中科院分词系统 -
weipeng1986:
授人予鱼不如授人予鱼,我想问你的是你是怎么总结的。比如第四种情 ...
JAVA中字符串连接效率的测试 -
xiaoqiang2008:
执行两次的原因是什么,好像楼主没弄清楚啊!是不是在web.xm ...
关于Spring中用quartz定时器在定时到达时同时执行两次的问题 -
Kent_Mu:
...
ibatis-dynamic的用法
开发注意事项
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
发表评论
-
fork/join框架
2017-03-09 11:03 517http://blog.csdn.net/ye1992/art ... -
protobuffer
2017-03-09 10:54 718http://blog.csdn.net/antgan/art ... -
整理上传代码容易忽略的注意事项
2013-08-31 11:28 1187每个公司都有自己的代码代码上传流程:如果打包发布的话,是不存 ... -
mysql版本升级引发的问题
2013-05-16 15:25 1672问题描述: 1. ibatis 中 mysql语 ... -
网站的记住密码功能设计
2013-02-27 19:09 1320http://greenyouyou.blog.163 ... -
大型网站架构演变之路
2013-02-27 19:08 1160http://www.cnblogs.com/ivanjack ... -
使用Filter统计Java(J2EE)的web程序http请求响应时间
2013-02-27 19:07 1403http://www.cnblogs.com/ivan ... -
java bean与xml相互转换
2013-02-06 10:27 2060最近在做的项目,在各个平台之间需要大量传输数据,且结构比较 ... -
java 反射
2013-01-14 18:21 841http://www.cnblogs.com/rollenh ... -
字符串替换
2012-12-17 11:17 1169高效的字符串模式替换实现效果如下 String str ... -
httpURLConnection获取网络数据:XML格式返回与Json格式返回
2012-12-15 16:57 149381.服务器端代码样例: public class ... -
利用Freemarker实现表到功能界面的一键生成
2012-11-22 18:03 1039利用Freemarker实现表到功能界面的一键生成 h ... -
ibatis in ##的问题
2012-11-02 13:25 889http://www.hake.cc/a/biancheng/ ... -
ibatis缓存强制刷新与命中率
2012-10-19 19:06 1403缓存强制刷新: // spring注入 private Sq ... -
eclipse 的一些设置
2012-08-16 22:06 17691. 控制台信息太多,程序跑完后只能保留最后的一部分之前的 ... -
jdk1.5 System.arraycopy与jdk1.6 中Arrays.copyOf()&Arrays.copyOfRange()
2012-08-16 21:56 3301在JDK1.5的类System类中有方法 ... -
Eclipse报Java heap space错误的解决方案
2012-08-16 16:43 12079当运行大数量的数据时: (1) 如果是java 应用程 ... -
求两个字符串的最大公共字符串
2012-08-10 20:41 1073http://blog.csdn.net/wangcj625/ ... -
ffmpeg 截取视频 播放中的图片
2012-06-19 09:14 1324http://www.cnblogs.com/live365w ... -
memcached 项目中的使用
2012-06-13 09:29 1078http://ljh2008.iteye.com/blog/6 ...
相关推荐
本文档为百度地图开发相关文档,主要对SDK使用以及相关配置注意细节进行记录,避免走弯路,也可以解决一些配置不齐的异常(如UnsatisfiedLinkError)等。本文档内容是本人在开发时遇到的一些问题,希望能帮助更多的...
在进行Java编程时,许多开发者往往会忽略一些琐碎但至关重要的细节,这些细节可能在项目的开发和维护中造成不可预见的问题。为了解决这些问题,可以参考《Java Pazzlers》(Java解惑)这本书,其中对许多常见的编程...
### 公司开发流程与日常运营细节 #### 公司结构与人员配置 一家典型的IT公司内部结构较为复杂,但通常包含以下基本组成部分: - **老板**:负责公司的整体战略规划与决策。 - **行政部**:处理日常行政事务,如...
在分析AC690N系列的开发细节时,首先需要注意的是在遇到初始编译失败的问题时,解决方案可能是修改isd_tools.cfg文件中的FLASHID参数为e04015。这表明开发环境的配置对项目的顺利进行有着至关重要的作用。开发者在...
开发者应注重细节,从用户的角度出发,打造既美观又实用的软件,同时遵循最佳的编程实践,确保代码的质量和性能。手机开发是一项综合性极强的工作,只有充分理解和运用上述注意事项,才能开发出受到用户欢迎的优秀...
### PI数据库开发注意事项 #### 实时数据库概述及特点 实时数据库是一种专为处理实时数据而设计的数据库系统,与传统的关系型数据库相比,它具备独特的特性和应用场景。实时数据库主要用于实时数据的采集、处理和...
#### 二、JavaScript开发注意事项 JavaScript作为前端开发的重要语言之一,其使用细节同样值得关注: 1. **jQuery绑定事件:** 使用jQuery绑定事件时,要注意避免绑定过多的事件处理器,这可能会导致页面性能下降...
作为一名程序员,注重细节是至关重要的。这不仅关系到代码的质量,还直接影响到项目的成功率和团队的效率。在软件开发过程中,有许多方面需要我们关注,以下是一些关键的细节要点: 1. **编码规范**:遵循良好的...
在固件开发中,有很多关键技术细节需要注意。例如,需要注意 delay 的设置、IFCLK 和 CLKOUT 的同步延迟、Random Macros 的使用等等。这些建议将对固件的性能和可靠性产生重要影响。 USB 固件开发是一个复杂的过程...
此外,注重细节还包括对项目进度的精细化管理,如采用敏捷开发方法,定期进行迭代和反馈,以便及时调整项目方向。 综上所述,这个文档资料很可能提供了一套详细的指导,帮助读者了解如何在IT项目中有效地执行这些...
在开发注意事项方面,可能会提到如何有效地利用框架提供的组件和服务,避免常见的陷阱,以及如何优化代码结构以提高性能。例如,正确地配置依赖注入、合理组织业务逻辑层和数据访问层、遵循一定的编码规范等,都是...
本文所介绍的网购系统开发过程中的技术知识和注意事项,为相关研发人员提供了一定的参考和指导。随着技术的不断进步和市场需求的变化,网购系统的设计与开发也将不断面临新的挑战和机遇,研发人员需要持续学习和创新...
此外,帮助文档是SDK中不可或缺的部分,它详尽地介绍了开发包的使用方法、函数接口、错误代码以及注意事项。开发者可以通过查阅文档,获取关于API的详细说明,解决开发过程中遇到的问题。良好的文档支持可以帮助...
此外,在 Wince 6.0 流驱动开发中,需要注意一些细节问题,例如驱动程序的接口函数的实现、驱动程序的配置文件的编写等。 Wince 6.0 开发环境搭建和流驱动开发是 Wince 6.0 应用程序开发的基础,需要认真地学习和...
网站开发公司根据客户的要求制定《网站建设方案》,并与客户确定网站建设方案的具体细节及价格。 第三步:签署协议,支付预付款。在这个步骤中,双方签订《网站建设协议》,客户提供更为详尽的图片资料,并支付预付...
* 印度商业习惯:爱钻营、急功近利、很精明,图方便,喜欢凭样交货,谈判注重细节,费时较久。 * 印度民族特点:宗教、假日;素时主义,爱喝红茶、牛奶。 七、巴西客户开发方法 * 巴西商业习惯:不妥协、坚持已见...
### DM365开发文档详解 #### 一、概述 ...通过仔细研读文档中的每一部分,不仅可以迅速掌握DM365评估板的使用方法,还能深入了解其背后的开发原理和技术细节,从而为后续的实际项目开发打下坚实的基础。
"说明_Readme.html"文件通常是程序附带的文档,里面会包含使用教程、注意事项、软件版本信息等重要细节。在这个案例中,用户应首先查看此文件以获取关于如何正确使用"开发语言判断器"的指导。通常,这种文档会解释...