当年真是充满活力啊,大概12年年中,完成了人生第一个项目,总结了30条代码经验,过去几年了,分享下咯....
适合1年左右新手阅读喔
代码规范:
一、DAO:所有的关于session的用try。。catch。。finally
在try中执行,finally中colse session
二、页面的增改,将对象 填充到页面。。。。
删除的时候:可以学增加,删除,前提是,先查询得到对象,修改不需要,因为可以修改本来就能获得对象
三、删除:删除后 page保持不变 传id,不涉及到模型对象
Page模式的时候,在tolist 的时候也要将page放入request中,在tolist的时候初始化page,关于ESP系统中的分页 由一汽大众任务管理中的分页为准,所有的提交用函数提交,在函数上加分页标识,最简单的也用函数提交
四、各种验证,各种空值,需要多加注意
五、封装list判断方法
list!=null &&list.size()>0 return true or false
六、以后jdk版本不低于jkd1.6.5
七、Action中page用构造方法实例化
八、CheckBOX不勾上就没法传值
九、当数据的处理很频繁的时候有可能从数据库中查询出来的是空的
现在的解决方式是用for循环重新查询,有数据则break,else,,,continue.(根本的解决方式是,后台逻辑尽量不用对象查询)。尽量一句sql完成一个功能。当然在系统的关键部位都要加for循环和日志。
十、写代码,先写注释,将要实现的什么功能先写好,
将注释写完后,在注释中添加代码。
代码的前后台尽量分开,后台代码尽量用sql,而前台代码可以用HQL。
十一、尽量想办法一个方法中最多开一个session,
而session中做的事情只是和数据库交互。
也就是效率第一
十二、在代码中写死的任何参数用常量类封装或者用一个配置文件封装,
正代码中不得存在任何写死的变量或常量
十三、在使用一个新的版本的时候 尽量先去看看他有一些什么新的功能或者优化
在和数据库交互的时候全部用for+try的结构
十四、关于jdbc的resultSet,set值的时候要记住按照查询出来的顺序set,否则会报‘流已关闭’哦
十五、Java 中的按位或 a |=b;意思是把a和b都换成2进制然后赋值给a,意思是a= a|b;a|b是一种算法
&:当两边操作数的位同时为1时,结果为1,否则为0。如1100&1010=1000
| :当两边操作数的位有一边为1时,结果为1,否则为0。如1100|1010=1110
~:0变1,1变0
^:两边的位不同时,结果为1,否则为0.如1100^1010=0110
十六、程序的好坏评估
一个程序,一个系统是否优秀,不是他的代码有多优秀,算法有多精妙,而是他的适应性。一个优秀的程序必须有很强的适应性,特别是对于敏捷软件来说。
对于敏捷软件来说,需求必定是源源不断的改变,程序要能及时的适应这些需求,改的最少的情况下来实现相应需求,当然这也对代码的要求有些偏高 ,有时候甚至会降低代码性能,这些付出一般情况下都是值得的。
一个好的程序追求高复用,一个好的工具被多次复用是大家都追求的,就像当前流行的很多框架一样。当然这里的复用工具一定要制度化,很多敏捷软件开发小组最缺乏的就是这点,很多人写wangNiMaUtil。我表示非常的鄙视
一个好的程序,最重要的不是他的代码,而是是否有一套和他紧密相连的文档。这里的文档包括需求文档、设计文档、架构文档、数据字典、(UML图)、技术文档、伪代码。
十七、软件质量
软件的质量通常是指一个测试小组(质量保证小组)来确定,如果质量不行就交给程序猿进行返工。其中有两项重要的标准。
1.缺陷发现率
2.缺陷密度
缺陷发现率,失败的测试用例/所有经过测试的用例数。
缺陷密度,一般以1000行代码为一个单位,发现的缺陷个数,平均下来的数值就是缺陷密度,缺陷密度越高代表软件的质量越差。
PS:一般来说80%的缺陷出现在20%的代码中。
十八、幂等性
幂等性是指HTTP请求中一次到N次请求的副作用
十九、REST------一个资源有一个唯一ID(一个唯一的URL对应某个文件或者某段信息<原子信息>)
二十、MYSQL Sql中数字相加,用ifnull()判断 ,如ifnull(null,0),null+数字为null
二十一、四种事务处理方式
1.Supports
Supports:如果有带有事务的方法调用该方法,则使用事务,否则不使用。
2.NoSupports
NoSupports:绝对不支持事务,反正就是不会支持事务.如果一个带有事务的方法调用它,它将先把事务停掉,然后执行完毕,然后再将对应事务重新开启。
3.Requried
Requried:如果当前有空闲事务则使用空闲事务,如果没有则重新创建一个事务
4.New Requried
无论如何都会重新创建一个事务
二十二、Mybatis中用in、exist、not in等函数要用$符号,而不是和其他的一样用#
二十三、RGB取色
RGB是按照16进制进行选取,16进制的代表字符是0-9,A-F。
颜色的位数是6位,那么比如00FF11(00代表R-red,FF代表G-gree,11代表B-blue),这个颜色就是带有一点点蓝色的深绿色。
所以如果要是红色,则可以直接写FF0000,需要黑色FFFFFF,需要紫色FF00FF.....F代表最大,0代表最小,可以根据需要调。知道原理就不需要严重依赖取色器了
二十四、Ajax请求<option>的value只能为数字,否则将会没有任何反应,用GOOLE浏览器进行调试,发现返回400 bad request
二十五、MYSQL字符串写条件为 = 数字的时候会忽略该条件 如varchar类型的sid写成sid=0则会忽略该条件
二十六、建索引
1.越不重复效率越高,(那种状态的字段就不用建了)
2.有可能为null的不要建立,遇到null也无法建立
3.查询频率
二十七、注意left join 中的条件和where后的条件
如 left join table1 on XX=OO and table1.XX=1
& left join table1 on XX=OO where table1.XX=1