分享给新手程序员

来源:互联网 发布:网络报警平台 编辑:程序博客网 时间:2024/03/29 08:23

 

当年真是充满活力啊,大概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

二十八、Spring 同一个类非事务方法调用事务方法 该事务方法无法得到体现

二十九、拼接字符串的时候,尽量不要用=拼接,因为有可能引起防火墙sql注入的误解

三十、在配置通配符的时候,/代表目录,.do等代表后缀,若要拦截所有目录下的.do则配置/**/*.do

0 0
原创粉丝点击