避免不好的代码习惯

记录这些是为了提醒自己:

1. 由于项目需求的原因,原来的部分页面需要修改,我在修改的时候突然发现了一个问题,直接说根本的吧,需要把一值传入后台,这个值是页面中计算好的,就拿商品总价来说吧,商品单价是1.6元,这个时候页面上有个让输入数量的文本框,我输入的3,结果发现传入后台的总价却是4.800000000001,由于以前遇到过这样的问题,立马就知道了原因,js在计算的时候会产生这个问题,以前曾在博客园看到过相应的文章,具体的也忘了,最后用了(Number($(window.parent.document).find('#price').val()).toFixed(1) * $("#counts").val()).toFixed(1)这样的写法才解决问题,但是我想这不是解决问题的根本,直接把两个值传入后台进行运算这样应该更安全一点,这个记下来是为了以后写代码的时候注意一下,由于自己的字体比较差,也懒得写在本本上,记录在这里方便啊。

2. 项目用的全套的spring,全部对原生的simplejdbctemplatedao 进行了限制,由于表达能力有限,直接就说结构吧
  dao包中有这样几个类/接口:
  BaseDao.java 这个类中有一个属性 

    @Autowired

    protected SqlServerDao dao;

  SqlServerDao.java 这是一个接口,里面提供的整个项目的增删改查的方法

  SqlServerDaoImpl.java 这个类实现了接口SqlServerDao,里面有一个属性private SimpleJdbcTemplate sjt;这个属性是通过spring的配置实现注入的

  主要就是这3个,其他的都是继承BaseDao这个类,我想说的是继承BaseDao,可以用BaseDao中的属性和方法,也可以这样说,只是为了用SqlServerDao中的方法,而SqlServerDao是一个接口,里面的方法是有限的,不过大多数的数据库的方法已经提供了,这也就是限制操作数据库的根本,如果我想查询一个数据,而现有的接口中无法满足我的实现方式,这时候怎么办呢?难道要去SqlServerDao接口中新增方法? 目前是这样的,所以我就产生了疑问,为什么不提供一个方法,把SimpleJdbcTemplate这个属性给返回出来呢?这样岂不是就能用它提供的许多方法了吗?,问了一下老员工,他说是为了以后数据库变动,当时我听后觉得也是,如果数据库变动之事修改一下底层的实现方法而已,但是现在想想还是不对,数据库变动不是修改底层的那几个接口的问题,因为业务逻辑中也写了相应的sql代码,如果这不是标准的,那岂不是也要去到业务中修改,这可是一件很恐怖的事情啊!现在我也没有想到对应的解决方案,如果用mybatis吧所有的sql语句写在xml中也许修改会少一些。因此先把这些想法记录下来,以后遇到类似的可以在考虑一下

posted @ 2013-07-04 17:42  andysd  阅读(280)  评论(0编辑  收藏  举报