This Month

时间过的很快,不知不觉回来上班已经一个月啦。在这段时间里,收获了很多,体会了很多,同时也发现了自己很多的问题和不足。对于这个学习期间的我们,善于总结,我相信这些都是我们经验的积累。主动学习,我相信我们的知识也会越来越丰富。

这段时间里,我主要做的是建设银行代收付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 世界杯也要结束啦,希望阿根廷能拿冠军,不知道周一上午能放假让我们看决赛不,哈哈哈>加油。~

This Month,布布扣,bubuko.com

时间: 2024-10-21 00:02:58

This Month的相关文章

SqlSever基础 dateadd month 增加五个月

镇场诗:---大梦谁觉,水月中建博客.百千磨难,才知世事无常.---今持佛语,技术无量愿学.愿尽所学,铸一良心博客.------------------------------------------ 1 code 1 select getdate() 2 select dateadd(month,5,getdate()) 3 select dateadd(month,-5,getdate()) 2 show ------------------------------------------博

year:2017 month:7 day:19

2017-07-19 JavaScript 一:javascirpt的对象 1:数组对象 声明方式:(1)var arr=new Array(): (2)var arr=new Array(12): (3)var arr[1,2,3,4] 2:字符串对象 一些有关的方法(1)indexof()获取字符下标 (2)concat()要连接到字符串上的字符 (3)split()通过输入的东西来分割字符串 (4)substring()有两个参数,<包头不包尾> 3:Date对象 声明方式:var da

[PHP学习教程 - 日期/时间]001.月份第一天&amp;最后一天(Month First Day &amp; Last Day)

引言:在时间处理上,对于前/后台人性化的展示当前月份最大天数,这个是网站必须要处理的一个方面.但通常这一块会由第三方类库直接包装,这里我们做一个简单的Mark. 今天,我们就为大家提供一个函数,获得指定月份的第一天和最后一天! 大家请直接看教程! 功能函数 函数非常简单,下面贴出使用方式 语法:array(firstday=>, lastday=>) = firstAndLastDay(年份, 月份) 参数解析: $y-年份 $m-月份 返回结果: array(本月开始时间时间戮,本月结束时间

InterviewQuestion_SQLServer_Probl_将数据表year|month|amount查询成year|m1|m2|m3|m4的样式

题目:有个年度统计表,结构如下: 怎么样把这个表,查询成这样一个结果: 这是在面试过程中遇到的一个关于数据库的题,没有一点思路,不知它考查到的知识点是什么,如何下手? 网上搜了一下,有哥们儿说这是典型的"行转列问题",好像用到"交叉表查询",下面看看具体的代码! 文件:SQLQuery1.sql /* 环境:Microsoft SQL Server 2012 工具: Microsoft SQL Server Management Studio 数据库: Interv

mysql日期函数 当前日期 curdate() , 当前年 year(curdate()), 取date的年份 year(date) ,取date的月份 month(date)

获取系统当前日期时间: sysdate() 获取系统当前日期:curdate() 获取系统当前时间:curtime() 获取给定日期的年份: year(date) 获取给定日期的月份:month(date) 为指定日期增加一个时间间隔的函数:date_add(date,INTERVAL expr unit) (1) 查询作者的出生年份 作者出生年份 = 当前年份 - 作者年龄  = year(curdate()) - age 注: 当前日期 curdate() , 当前年 year(curdat

MONTH(date)

MONTH(date) 用于返回 date 对应的月份 mysql> SELECT MONTH('2017-02-23'); +---------------------+ | MONTH('2017-02-23') | +---------------------+ | 2 | +---------------------+

Html5学习3(拖放、Video(视频)、Input类型(color、datetime、email、month 、number 、range 、search、Tel、time、url、week ))

1.Html拖放 <!DOCTYPE HTML> <html> <head> <meta charset="utf-8"> <title>菜鸟教程(runoob.com)</title> <style type="text/css"> #div1 {width:350px;height:70px;padding:10px;border:1px solid #aaaaaa;} <

H5自带的type=date或者month等日期控件移动端显示placeholder

H5自带的type=date或者month等日期控件移动端placeholder会无法显示 解决方法: html部分 <li class="info-item select-item"> <input type="month" class="info-input time" placeholder="*入学时间" id="time-sel"> <span class="

MongoDB中$month和$dayOfMonth的坑

最近用到$month和$dayOfMonth这两个命令,发现有点坑.总感觉查出来的数据和我从数据库里看的数据不一样... 从网上找到资料,我才发现 函数 $dayOfMonth 是基于 0时区来处理的,把0:00 -- 8:00 时间内的数据计算到了前一天了.所以在统计查询时,条件与函数的时区要一致. 参考:http://blog.csdn.net/miyatang/article/details/50854571