个人实现大型软件研发的方法

问题一、如何集中精力设计一个模块

如果自己一个人研发,必定是先实现其中的一个模块。

这个模块必定会有与其他模块交互的地方。

此时其他模块还没实现,甚至连大致原理都没有想好,此时应该怎么办/p>

猜测接口、TODO列表法

1、建立一个TODO列表,先假想这个模块已实现,猜测接口和工作原理,然后调用这个猜测出来的接口。

     并且把这些猜测出来的东西记录在TODO列表中,还要把使用这个猜测接口的地方也记录在TODO列表中。与

     猜测接口记录在一起。这样的话,就可以集中精力去设计一个模块。等一个模块完全设计好了,再去想别的

     模块。

             从前,本打算开发一个稍具规模的软件,就遇到这样的情况。当时的我,一个模块还没写好,发现需要

     依赖其他模块,半路又去设计其他的模块,然后,那个模块实现到一半的时候,又发现它需要另一个模块,

     我因此陷入了无尽的深渊。    

问题二、完成一个模块之后,如何进行做单元测试

     写好了一个模块,供其他模块调用,但是其他模块还没有写好,如何测试这个模块是一个问题。

     每个模块如何进行单元测试。一个程序有很多模块组成,一个模块需要与其他模块一起才能执行,现在只开发出了当前这个模块,其他的模块尚未完成,如何测试这个模块是否正确叫做“孤立的单元测试”。如果在概要设计阶段,考虑到如何以最省事、高效的方式来测试这个模块,则后面的工作会十分轻松。
     解决方法:在概要设计阶段就把单元测试如何进行的问题考虑进去(只有这个办法)

     就是在设计程序的结构的时候,多考虑模块单元测试如何进行。

     每实现一个函数,就把这个函数的测试代码写好。等实现的函数越来越多,测试的代码也会累积起来。

以后每做一些修改,把测试代码跑一遍,就可以避免很多的错误了。

其他心得:
1、在设计每个模块的时候,应该按照下面的顺序进行设计:

     a) 确定外部接口
     b) 确定内部接口
     c) 实现内部接口
     d) 实现外部接口

     当需要添加新的特性时,也是按照上面的顺序进行设计。
     外部接口例如一个类的公有成员、QT中的信号/槽
     内部接口如:私有成员、保护成员

     先设计,后编码。

2、设计一个类的各个成员函数时,尽量做到可以按任意的顺序修改属性。

3、根据经验,自己实现的类,如果主要是供自己使用,那么构造函数一个就够了(多数情况下是一个默认构造函数就够了)

4、写程序时经常由于使用拷贝、粘贴功能而导致一些错误。

5、根据我的经验,输入型外部接口越少,这个类出错的可能性也就越少。所谓输入型外部接口,指的是这个类接受其他类的传递过来数据的接口;而输出型接口指的是这个类把数据传递给其他类处理的接口。

6、一个类接口的设计是否完善,考虑下面这些:

    是否有遗漏的接口、是否有不需要的接口、是否有重复的接.

7、使用一个C++框架时,继承一个类并重载别人的非虚函数时,最好在尾部加上及

来源:眨巴眨巴

声明:本站部分文章及图片转载于互联网,内容版权归原作者所有,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2012年7月26日
下一篇 2012年7月26日

相关推荐