我刚刚完成一个c#项目,从项目立项到最终完成,其中颇多感慨,作为一个非IT为专业的企业,想立足于通过计算机软硬件完成自己对生产经营活动的信息化、自动化改造,而且在内无项目分析师,外无专业性机构帮助的情况下,仅仅通过我一个刚刚懂得编程的人来做,其前路不仅是荆棘满地,更有悬崖峭壁,乃至几番想到放弃但是最终还是完成该项目,深得CSDN的和“程序员”杂志的帮助,再此多多感谢。
项目计划初次到我这里,询问是否可行,本着学会了c#一切皆可行的雄心壮志,一口应承下来,并说一定会漂漂亮亮完成任务。当时领导大喜,本项目说来并不复杂,就是将公交IC卡用于长途客运中的IC卡自动售票。也就是说在客运站中摆放一排自动售票机,乘客刷卡买票后即可乘车。虽说来简单,实行起来却颇多困难,首先客票打印即是很困难,把那种根本未有自动售票功能的普通客票票进行自动查询客票的代码从而记录到系统中,并涉及到将客票打印后在检票口检票和如何进行退票等一系列动作 ,同时公交IC中心的服务器上,需要将消费数据实时传输到他这里,以便公交IC卡的补卡,并且要注意及时将挂失卡数据送到自动售票机,以避免挂失卡刷卡购票。
仔细想了一下后,感觉颇晕,有无从下手之感,心里大有起伏,反复不能平静下来,难道未等开始就要放弃,心有不甘啊,没经历狂风暴雨就撤退,就是男人。索性先放几天假,出去玩玩。几天后,想起自己经常浏览CSDN和购买“程序员”杂志,心想,目前不就是所谓项目分析阶段吗,找来与UML相关的书籍看了看,找出项目分析中的各类关键词,从一开始的不甚了解的UML图,一路画下去,虽不专业,但是思路也逐渐清晰起来,先是大体划分5个模块,即与客运站服务器沟通模块、公交IC卡服务器沟通模块、自身业务逻辑模块、票据读入打印模块、日志记录模块,有了日志记录模块,相关性能测试和记录操作失败的情况就有了帮助,这时在CSDN网站上出现频率较高的一个词“单元测试”,出现在我的脑海里,对啊,既然代码要单元测试,我何不将模块划分成几个单元逐一编写,由模块和单元组建成一个一个实体的类,然后分模块建立一个工程进行单个模块的编写,编写后再测试性能如何,然后最终将几个模块组合在一起,呵呵,如此我的谋局基本完成。
其实以上所说就是项目分析师的工作,具体分到模块就是程序员们写代码的开始,有时候很多人认为学会编写代码就可以了,至于设计模式几乎没有用处,(这其中也包括很多人感觉用不上的接口)对于一个想做大项目和快速成熟的程序员来说,只有当你遇到了稍微大一些项目,需要你谋局时,那些理论才会从书上跳下来,帮助你实现项目规划和建设。有兴趣的朋友请看我下一篇,模块编写篇——就是折磨你