编程语言:vb6
我做实验设备软件,已经一年半了,从开始接不到项目,到现在基本上项目可以连续起来。这一年中,做了十多个项目,基本上都是很类似。我在自己没有接业务之前,很自大,觉得没有自己写不出来的程序,而且可以很快完成。
但事实上,并不是这样。去年的前三个单子,两个超出时间超出一倍,一个流产,并且三个程序用了我将近半年时间,半年之中,我也不是每天都写程序,因为我自制力不强,很喜欢偷懒。所以像我这样懒散的人,如果做自由职业者,一定要慎重考虑)。
两个成功的单子,因为技术要求不高,所以我可以完成,花的时间超出预期,是因为我对自己当前技术条件下工作量估计不准,换句话说,就是没有自知之明。而第三个单子失败原因有三个:
一是自己技术不足,这也包括两个方面
1、串口实时通讯处理不当,在vb6中通讯效率不高。
2、欠缺软件工程方面知识,导致后期代码无法维护。
二是客户下位机正在开发中,通讯协议不成熟不稳定,同时整个系统构架不合理,还要我帮助客户完善构架,花费时间过长,工作量过大,和我当初和客户报价时相差甚远,而我又不好意思像客户提高报价,心态变得急躁。
三、个人感情问题和合伙人矛盾影响心情,又因为一、二综合原因,使整个人情绪低落,甚至自信心动摇,对自己能力产生了怀疑,最后没有信心完成项目。
到五月份,接了第四个单子,迫于经济压力,不得暂时抛开个人感情问题,全力完成这个单子。同时这个单子,也是比前面三个都要复杂。在我总结了第三个单子失败的基础上,开头进展还算顺利。
可是到了后期,维护代码还是感觉困难。于是,我开始寻找维护代码的方法。在网上孜孜不倦的搜索,我终于发现了重构。这种感觉就像黑夜中见到光明,饥饿的人看到面包一样,心情一下子明朗起来。先是下载了那本经典著作《重构:改善既有代码的方法》,看了这本书,我马上满怀希望的把重构用到项目之中。
可实际上,效果有改善,可是并不明显。和我的预期,以及书中作者描写的快感和神奇作用,有很大的差距!后来我总结了原因:
一是所有的代码都在几个窗体和类模块之中,整个程序互相耦合度很高,作为刚知道重构技术的人来说,很难进行整体上的重构,只能进行局部的变量名和函数改善,所以效果有限。
二因为一的原因,和设计到串口通讯,重构的关键技术——测试,很难进行。没有良好的测试,重构自然步履维艰。同时,我也没重视测试,直到后来才领悟到这点。最近才找到了vb6下面单元测试工具——comunit
三重构的方向很模糊,不知道怎样重构是往改善软件结构上进行。当时我很明确的意思到这点,这个时候我根本不知道做什么,只能一步步探索。在探索过程中,重新学习了面向对象设计,软件工程,知道了耦合和内聚等概念。后来发现了设计模式这个技术。
不管怎么样,第四个单子,我最后从客户那里拿到全部报酬。同时我知道了面向对象、重构、设计模式、单元测试等技术。
在后面的单子里,基本上都是顺利完成,我对这个技术也就越来越重视了。我买了三本书《重构:改善既有代码途径》《设计模式》《代码大全》,并且寻找到了vb6下的单元测试工具comunit。我也知道了,敏捷开发,极限编程,原型开发,迭代增量开发等名词
因为这些单子都很相似,有大量的重复工作,所以想做一个框架和一组组件。以后遇到相同的项目,直接组装程序。
目前模块有,用户管理模块,数据库创建模块,这个两个模块是框架中和其他部分耦合最低的,所以可以明显看出来,就先做了。框架的其他部分,我目前还不知道具体怎么做。
其他部分,应该有这样的效果:串口通讯模块根据不同的协议是可以替换的。实时逻辑控制和其他耦合应该是很低的。数据储存、报表生成应该是很容易的。
下面的目标是:继续学习设计模式,做抽象对象练习,学习单元测试技巧,进行测试驱动开发,关于串口通讯寻找mock object的方法。向.net平台过度。
原文链接:https://www.f2er.com/vb/261239.html