一个模块的功能为何要单一,为何代码不要太长
发布时间:2020-12-13 20:33:44 所属栏目:百科 来源:网络整理
导读:最近帮同事调试一个程序模块时,一个函数中400行代码,当时调试了下,错误很难精确定位,我当时第一个想法就是代码太长,一个函数多个功能,通常很难定位异常出在哪里,但是我要我回答,我当时还很难举个列子说服他,但是我现在想到了一个足以说明问题的例子
最近帮同事调试一个程序模块时,一个函数中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)
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |