一个模块的功能为何要单一,为何代码不要太长

来源:互联网 发布:刺猬缩水软件下载 编辑:程序博客网 时间:2024/05/01 17:22
最近帮同事调试一个程序模块时,一个函数中400行代码,当时调试了下,错误很难精确定位,我当时第一个想法就是代码太长,一个函数多个功能,通常很难定位异常出在哪里,但是我要我回答,我当时还很难举个列子说服他,但是我现在想到了一个足以说明问题的例子:
void Func()
{
    ......
    .....
    view *a=new view;
    view *b = new view;
//  100行代码
.....
.....
    ListView c;
.....
.....
//  100行代码
    c.addItem(a);       //把指针数组赋值而已
    c.addItem(b);
.....
.....
 //  100行代码
//  delete a;
// delete b;
....
....
// 100行代码
    tansview(c); ------------------------------------------此时在这里报错,而不一定会在    c.addItem(a);c.addItem(b);报错。


如果模块化 
出现的情况时这样:
func1(c)
       view *a=new view;
    view *b = new view;
        c.addItem(a);       //把指针数组赋值而已
    c.addItem(b);

func2(a, b)
{
   delete a;
delete b;
}

func3(c)
tansview(c);

调用时候

func1(c)
func2(a,b)
func3(c)

如果这时候问题出在func3(c) 此时很快你可以把问题从func3(c)追溯到func2(a,b)如果没发现问题再追溯到func1(c)
    
原创粉丝点击