从6月10号到6月20号,除中间星期六休息了一天,整整连着加班10天,这也算是俺做程序员以来的记录。不知为什么,心里总有些想法一吐为快,故写下此文,以备记忆。
6月6号,经理要求我和另外一位开发以及测试人员需要到客户那出差,期限为一周,对于以前出过差的我,心里充满着好奇,甚至有点向往。来到客户现场,完全感觉自己就是一个土鳖,人家都是西装革履精神焕发,而我,一身运动休闲,完全显得格格不入。给我的感觉是,这才是真正上班的样子,与心里向往的大致。其实,这次来客户这,任务还是非常艰巨的,做的是一个支付平台项目,主要是为基金公司提供统一的支付接口,处理不同银行间报文的差异。而这个系统的开发周期短的惊人,仅仅只有18天,包括我在内才两个核心开发人员,这次来客户这的任务就是基金公司、支付平台、银行三方联测,压力山大。压力归压力,自从选择了程序员这条不归路,也就准备承受这份压力的勇气。
6月10号到6月12号,基金公司和支付平台的通信接口才调通,可以想象,我们的程序是多么的糟糕。这其中主要的问题是对报文信息加密、解密的问题,因为客户方最初说他们使用的是C#,所以我们提供的仿真程序是用C#做的和JAVA的通信,在公司测试的是没有一点问题,到客户现场,客户又说他们使用的是C++,简直是坑爹啊,三天的时间都用在帮他们调试Base64、RSA加密、解密以及乱码的处理,不过最后还算是把问题解决来,最终原因还是出在客户那边,但也办法,也得陪着笑脸加班,谁叫他们是甲方、是上帝呢。
6月13号到6月16号,模拟托管行通信,这也是一个天大的坑,这个模拟程序是公司另外一个同事为了方便测试人员测试临时开发的,因为报文数据不能手动一笔一笔的发送(当然他们以前确实是这么做的),整个链路经过加班加点的测试终于通过了,但模拟托管行程序始终没有反应,中间的沟通花费了好长时间,到最后终于通了。
6月17号到6月18号,测试整个完整的通信过程,从客户方的客户端发送报文->客户方的发送程序->我们的支付平台->xxx伺服器->xxx->托管行模拟程序,之后再逆向返回报文给客户端程序,这个过程中发现的最大问题是,当客户方连续发送多个报文时,xxx伺服器就断了,相应的整条链路也就断开了,因为xxx伺服器是分公司开发的,所以有的找他们沟通联系,而且这个问题的重现又比较复杂,所以中间又花费了好长时间,最后更新jar包,整个过程才顺利的跑起来。反编译他们的代码,其实就是超时时间和消息队列没有处理好导致的。
6月19号到今天,替换模拟托管行为真正的银行,当然是用银行的专线测试路线。中间需要做的是将支付平台部署到客户的机器上,利用他们的专线通过xxx连接银行进行通信,这个过程遇到的问题是java.lang.IncompatibleClassChangeError: Expected static method异常,在IDE上clean一下就没有问题,但部署是以bundles的方式提供jar包,所以解决起来比较麻烦,后来我将对应的方法写成static的,重新maven打包部署,问题才解决。
长久的加班后,终于迎来两天双休,这在心中是那么的珍贵和享受。意大利-哥斯达黎加的比赛开始了,先写到这了,后面也许会更辛苦,但只有有一个永不放弃的心,一切问题都能迎刃而解。fightting!!!
加班10天的过程