软件的可维护性
2004-07-02 19:49
316 查看
软件要怎么做才有一个好的维护性呢?
这个问题的标准答案可能没有,因为涉及的概念很多,面很广。
由于我现在从事的工作有一部分涉及到别人的代码的维护,所以,我说说我的看法
1。首先要有一个好的框架,或许我现在也不大明白什么是框架
比如,你的程序需要放访问一个链表,但是所涉及的操作是由两个线程来操作,那么你的数据需要加锁
如果你有这几个数据经常在一起被访问: int number,int id,int name ; 所涉及的操作也是对这几个数据都要产生影响,建议你将它写成结构。
从大的方面来说: 假如你要考虑你的类的设计,涉及的操作和数据,和数据存取的形式,以及需要重载得操作。
我看到了一个程序:
for(i=0;i<LENTH;i++)
for(j=0;j<WIGHT;j++)
m_List [i][j] = new CMyListBox;
我个人觉得这样的代码给维护的工作带来了很大的麻烦,如果能够写成new CMyListBox[WIGHT]这样的形式的话会好得多,因为在你的传递过程中,如果采用了引用的方式,很容易不知觉中将内存释放,而在你的程序推出的时候很难找这个问题。
2。应该多写函数来控制
有一句话我比较赞同,能够自己控制你程序的流程的越多越好。
如果维护一个一个的变量,你自己也会很麻烦。如果能够写成函数的形式,一个功能功能的测试的话,对你自己来说也是很方便,同时这也是C语言的方式。(至少可以有功能块得测试)
3。小的东西是能够用函数来代替,如果是一个大的东西,包括数据和操作。C++给我们说了,要用类。但是类如果写得比好,封装成动态库更好。假如你的程序发布了过后,可以不改你的接口,而只需要将动态库换掉
好像也不用编译:)
4。程序的书写,希望能有自己的方式。但是应该有一个让人容易明白的方式,至少要明白作者,功能、时间、如果算法比较复杂,请详细说明。
5。变量的书写。虽然变量的命名很随意,但是希望能够参照一个好的方式。比如
bool m_bPlay ; 和bool m_play ;或则bool m_flag ;意思是要能够说明变量的用途
今天吃饭吃到了虫,郁闷,错误指出,谢谢!
这个问题的标准答案可能没有,因为涉及的概念很多,面很广。
由于我现在从事的工作有一部分涉及到别人的代码的维护,所以,我说说我的看法
1。首先要有一个好的框架,或许我现在也不大明白什么是框架
比如,你的程序需要放访问一个链表,但是所涉及的操作是由两个线程来操作,那么你的数据需要加锁
如果你有这几个数据经常在一起被访问: int number,int id,int name ; 所涉及的操作也是对这几个数据都要产生影响,建议你将它写成结构。
从大的方面来说: 假如你要考虑你的类的设计,涉及的操作和数据,和数据存取的形式,以及需要重载得操作。
我看到了一个程序:
for(i=0;i<LENTH;i++)
for(j=0;j<WIGHT;j++)
m_List [i][j] = new CMyListBox;
我个人觉得这样的代码给维护的工作带来了很大的麻烦,如果能够写成new CMyListBox[WIGHT]这样的形式的话会好得多,因为在你的传递过程中,如果采用了引用的方式,很容易不知觉中将内存释放,而在你的程序推出的时候很难找这个问题。
2。应该多写函数来控制
有一句话我比较赞同,能够自己控制你程序的流程的越多越好。
如果维护一个一个的变量,你自己也会很麻烦。如果能够写成函数的形式,一个功能功能的测试的话,对你自己来说也是很方便,同时这也是C语言的方式。(至少可以有功能块得测试)
3。小的东西是能够用函数来代替,如果是一个大的东西,包括数据和操作。C++给我们说了,要用类。但是类如果写得比好,封装成动态库更好。假如你的程序发布了过后,可以不改你的接口,而只需要将动态库换掉
好像也不用编译:)
4。程序的书写,希望能有自己的方式。但是应该有一个让人容易明白的方式,至少要明白作者,功能、时间、如果算法比较复杂,请详细说明。
5。变量的书写。虽然变量的命名很随意,但是希望能够参照一个好的方式。比如
bool m_bPlay ; 和bool m_play ;或则bool m_flag ;意思是要能够说明变量的用途
今天吃饭吃到了虫,郁闷,错误指出,谢谢!
相关文章推荐
- 将15位身份证补全为18位身份证的算法示例详解
- C++算法系列之日历生成的算法代码
- 谁来关心我们这些程序员
- 千年零一虫
- 我的应聘总结!
- Microsoft Visual Studio .NET 2003制作安装程序
- Java测试规范(引用)
- 独具量身定做特色的管理软件--数据大师
- 解析IP地址为主机域名
- 将某一主机域名解析为IP地址
- 输入输出流为什么要用缓冲区?
- 力争最简单把*、&说清楚
- 日子一天天过........
- 怎样为任何控件和区域添加提示信息:用自己封装的CTip类
- 非对称加密算法中求解大正整数模大正整数的余数的快速计算法
- 使用 .NET 框架将现有代码作为 Web 服务提供
- Decal SDL-Delphi的范型类库-通用数据结构与算法类库(一)