时间过的很快,不知不觉回来上班已经一个月啦。在这段时间里,收获了很多,体会了很多,同时也发现了自己很多的问题和不足。对于这个学习期间的我们,善于总结,我相信这些都是我们经验的积累。主动学习,我相信我们的知识也会越来越丰富。
这段时间里,我主要做的是建设银行代收付API的开发, 由于刚开始没有接触这块,所以可能对这块知识比较陌生,但是好在老大给我们做了一次简要的培训,同时有开发文档和原来的代码,所以熟悉起来还是比较快,不到一周就把代收付的接口开发出来了,结果可想而知,把代码上传到SVN上面,老大进行检查的时候,很多很多的问题就出来了。在这之后的两周就是一直修改自己的代码,首先谈谈我的编码格式吧,因为我的编码风格实在是让自己不堪入目。
1.包的分类
在我的第一个版本中,我只有三个包,而且这三个包的分类也很不清晰,API的开发流程是,首先是初始化,其次是发送报文,然后是解析银行的回执报文,最后转换参数保存即可,所以包的定义一般也差不多跟着这个流程定义就好,根据老大的建议,我把包分为了五个,首先有一个入口的包com.dsf.vo.impl,里面写的是各类API的接口函数,第二个是一个组报文和解析报文的包com.dsf.xml,而第三个就是处理包com.dsf.process,第四个就是工具包com.dsf.util,第五个就是常量包com.dsf.constans。这样如果以后进行维护就一目了然。
2.常量的定义
如果有两处以上用到了某个值,那么就把这个值定义为常量,这样修改起来也很方便,起初我把所有常量都放在一个文件里,显得很乱很杂,之后进行修改把常量严格分类,有些只是节点名,有些是常量值,有些是数据库需要配置的值等等。
3.严进严出
由于自己写代码的严谨性不是很高,所以很多代码都是经不起考验的,比如有些参数必须不能为空的,没有进行参数的检验,虽然在之后的某个阶段会报异常,但是,如果进行了参数检验,那么就可以减少很多不需要进行的流程,然后可以立即反馈该流程是失败的。所以在进行组报文之前,必须将参数进行检验,以防止在组报文阶段又出现参数为空,而组成一个错误的报文。同样的在报文解析时,也需要好好的进行参数的检验。确保我们反馈出正确的信息。
4.异常封装
有时候一段代码能够抛出几个异常,然后我直接把这些异常同时抛出来了。其实这样写也不规范,所以要将这些异常进行封装,最后抛出一个大的异常,但是一定要确定能够捕捉到所有的异常。这样封装之后的代码显得格外的整洁。
5.日志
日志的作用其实很重要很重要,是为了以后查询的时候可以一目了然,可是我的日志记得实在是烂的可以。日志记录的风格差不多都一样,公司日志主要分为3个级别,分为了debug,info,和error,一些初始化的信息都可以用debug级别就行啦,记录一些重要信息就用info级别,至于错误信息就一定要用error级别。所以在日志的记录这一块又进行了修改。
以上主要是我的编码风格进行的一些修改,接下来总结我编码中出现的一些错误,其中出现了一个很低级,但是却很严重的错误,这个错误让我想起了以前实验室的时候一个学长和我说过,因为错的深,所以才会刻骨铭心。至少这个错误我想我会刻骨铭心,在建立socket流读完文件的时候,在出现异常的情况下,没有关闭流,事实上是不管什么时候必须把流关掉,所以应该在finnally执行这个语句的,可是我却放在了if中去关闭,所以在抛出异常之后,根本就不会往下执行,也就是if语句根本就不会执行到,也是就socket流也没有关闭,我想这样的错误,错一次,刻骨铭心,以后就不应该再犯。有些逻辑上的处理不对,所以也会犯下一些逻辑错误,对于这一块,由于对业务熟悉的不够而犯下的错,自己应该努力向同事学习公司的一些业务。
在这一个月里,我想用两个字来概括,那就是充实。有了这个接口作为我的第一个试用期任务,我想在接下来的工作中,我的编码风格会变得更加整洁,我会更加注意自己编写的代码,既能够让自己看的清楚,也能够让别人赏心悦目,写代码就像写文章,只有好的文章,才值得让别人学习。以后在写代码一定要多问问自己,为什么要这么做,这么做的目的是什么,而不是完成就行了。在理解业务的基础上进行开发,那么以后我们的重构量就会越来越少。代码也会越来越漂亮。谢谢在这期间一直帮助我的同事,谢谢他们的帮助让我成长。
周末的活动似乎也没有在实习期那么多啦,想的更多的是好好休息,能够在新的一周有一个好的状态去上班,深圳的云真的很漂亮,好想附照一张。但是.....这周末和我童鞋一起来珠海玩啦。来到了海边,一起捡生蚝,来到了和澳门最近的地方,好繁华,好开心好开心,嗯。2014还有半年,告诉自己,开心工作,快乐生活。<ps 世界杯也要结束啦,希望阿根廷能拿冠军,不知道周一上午能放假让我们看决赛不,哈哈哈>加油。~