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

     最近帮同事调试一个程序模块时,一个函数中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)
    
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值