Aug 29, 2008

POS开发

整个七八月,都在蓝竹做软件开发实习生,在TD的Application组。每天的事无非是学习、看文档,直到三周以后开始从两份代码拼出一个RF卡的demo。之后过了两周多,Michale让我在一个已有项目的基础上进行修改,以完成一个新的项目。最后项目完成不到80%的时候我应实习期满离开了团队。

开发是在STIP2.1(www.stip.org)上进行的,协议大体采用ISO8583标准。模块的调用采用了异步模式,再加上较为复杂的状态机模型,在编程和测试的时候都出现了很多问题,一步步解决下来,感觉自己在面对这种较为微观的问题时的能力有了一些的提高。

STIP是Small Terminal Interoperability Platform的简称,是在受限系统上进行JAVA开发的标准,目前主要应用在以下的领域,与基于C语言的开发相比,能较大地提高开发效率。
�� EFT-POS terminals(STIP EFT-POS Profile) �� ATM �� Payphones �� Parking Meters �� Utility Meters �� Mass transit terminals �� Vending Machines

STIP的架构大体如下图所示,我们Application组开发的就是Stiplet部分,也就是底层之上的应用:


STIP有专门用于界面描述的STIPML语言,类似于HTML。Stiplet的结构类似于MVC架构,其中Controller部分控制软件的状态和流程。STIP的事件模型如下图所示:

具体到项目的开发,虽然也进行总结,但由于保密协议,能贴的只有上面这些。开发中看了Michale和Command他们原来写的代码,学到了很多,也发现了自己太多的不足。很多地方只有靠扎实的基本功和清晰的思路才能完成,这些也只有在做过很多项目,经历了很多成功和失败后才能获得。

开发过程中我也发现了自己的一些缺点,总结下来由以下几点:
一是团队交流意识的欠缺,虽然在发现问题时能向老员工请教,但交流得还是不够,有些东西靠自己去发现会走很多弯路,费很多时间;在知识学习时尽量自己思考是不错的,但实际工作中有些问题还是要多多交流,对一些概念的理解上不能模糊。
二是基本功不扎实,具体体现在阅读和改写达三四千行的类和较为复杂的算法上。比如状态机和协议的解析,这些都需要有扎实的语言基础和清晰的思路。
三是在和客户沟通上应该及早发现问题,及时主动沟通,有些东西客户的文档里可能没有写,但在实际的情况下是相当重要的需求;有时用户的需求文档也许制作的流程并不规范,存在着一些相互矛盾的地方,这些都是要尤其注意的。

总得来说在蓝竹的实习学到了很多东西,也发现了自己的一些不足,不仅是在技术方面,也包括做事的态度,方式等等一些地方。谢谢帮助过我的Command、Michale和海啸。

0 comments: