编程那点事编程那点事

专注编程入门及提高
探究程序员职业规划之道!

开始编程

系统整体设计完成后,我们开始了系统的模块设计和编码工作。我的基本思路是,按照程序模块的重要性,逐个模块实现。单个模块的设计和编码同时进行的,完成好一个模块,就发送给郑总审核,以模块程序为交流载体,方便双方沟通。我把模块进行了分工,团队的每一位成员都需要在规定的时间内完成其中的一部分模块,如果不能按时完成,就记录在案,到时候要从最后的收入中扣除一部分奖金。

这是我当时能想出来的管理招数之一。因为当时我们团队的人大多数都是兼职干活,有时会有人找各种借口不完成规定的工作量。如果个个都是这样推三阻四的话,那接来的项目是不可能按期完成的。当然我自己也得负责一部分模块的编程工作,而且还得以身作则保证按时按量完成。谁要我们还是初创的团队呢,我还不可能像那些软件公司的老板一样,订好合同后交给下面的程序员去编写就行了。

这套系统的编码过程中,有一个十分麻烦的地方,那就是产品价格的变化,需要更新的地方非常多。这些都是郑总在常年的工作中总结出来的,他心中非常清楚。他只要一看这些价格数字,就能知道哪些是正确更新后的,哪些是未更新的。可我在短时间内确是很难做到的这一点的,因此,我单独写了一份价格更新对照表,虽说整理着份文件花了不少时间,但磨刀不误砍柴功,这份文件在后续的工作中发挥了重要的作用。

我认为在开发过程中,对于那些容易混淆或需要非常仔细的地方(例如:本系统中的各种价格组成、公式、更新对照等),应该单独写份文档作为项目参考资料,而且这份文档一定要准确无误,就像WindowsAPI参考文档一样,当程序需要调用具体API函数的时候,只要查一下参考文档就可以了,完全没必要去记住那些具体参数,因为短时间内去记住那些参数,是不现实的。随着开发的过程,对于那些经常调用的部分,自然就熟悉了。

项目的开始阶段,一般开发者都能保持相对高的开发热情,但一旦进入编码的中期,这种热情支撑下的开发进度就开始疲态尽显。我们也是遇到了同样的问题,项目进行了20天左右的时候,开发进度明显比预期的低了很多,这点郑总也感觉到了,因为每次发给他审核的模块越来越少了,于是他也开始着急了,经常在邮件中询问开发进度(其实就是催促开发进度),我只能一面应付着郑总的催促,一面督促团队的成员加紧开发。

好在这些人都是自己的好友,有时候我发火骂了他们,也没有跟我翻脸,不过我估计他们心里也不好受。因为我们当时大部分人都是兼职来干的,平时自己都有本公司安排的业务需要做,不可能那些全职开发人员一样,有那么多的时间自己支配。我记得大多时候白天公司的业务太忙没有时间,只能在晚上加班干,经常是干到凌晨2、3点钟才休息,星期六和星期日更是得加班加点地干。

在这套系统的数据库选型中,我是经过一番思考的。从我个人技术熟悉程度上来说,是对DB2和SqlServer比较熟悉。但对于200人规模的中小型公司,没必要选用过大的数据库,Oracle、DB2这类首先被PASS掉了,在SqlServer、MySql、SybaseASA中,MySql中,到底应该选用哪个呢?可能很多人认为SqlServer应该是首选,最初我也在重点考虑它。但是SqlServerd数据库,部署起来有点麻烦,考虑到郑总经常出国谈判,因此在系统开发的过程中,我时常需要对数据库的结构进行调整。因此,数据库一定要便于打包和部署。其次,考虑到数据同步问题,因为这个系统最终数据库的部署,是需要在公司本部放一个中心数据库,另外几台笔记本上各放一个远程数据库。而这些数据库之间,要能够非常方便的进行数据同步。此时Sybase的Mobilink同步技术就进入了我的视线。

综合上面两个主要问题,我最终选择了SybaseAsa数据库,这款数据库,非常方便部署。更新数据库的时候,只需要直接替换数据库文件和日志文件就可以。而且我从Mobilink的资料中了解到,它是基于偶连接的同步技术,专用于中心数据库与多个移动数据库的数据同步的解决方案。Mobilink技术简直就是为这种应用而设计的。同为Sybase的产品,ASA数据库理应与Mobilink无缝衔接。

未经允许不得转载: 技术文章 » 项目管理 » 开始编程