函数之间的调用关系很乱怎么办

2017-03-20 16:07:16 +08:00
 xujinkai

做一些有界面有读写的软件时经常遇到的一个问题,就是函数写多了,互相之间的调用关系就越来越乱,一直不知道有没有什么好的解决办法。

下边这个是伪代码,最近做网站遇到的,路由变了要重新加载数据,数据变了要修改对应路由,重新读数据的时候还得判断有没有保存,等等。

// 大概意思
reload_detail() {}
reload_list() { change_url(); }
save_detail(){ reload_list(); }
change_url() { on_url_change(); }
on_url_change() {
	if(not save) save_detail(); 
	reload_list();
    reload_detail(); 
}

这个问题也不限于做网站,做类似的东西感觉总会遇到这个问题。

一是关系乱不好设计更不好 debug 。而且一个不小心程序就不按照设计好的走了,比如有两个函数都会去修改路由,然后这俩函数还互相调用,然后就乱了。

二是即使能按流程正常走,有时候也会发生一个动作内,某个函数运行多次的情况。比如路由改变保存一次,读数据的函数里又保存一次,造成了资源浪费。

我自己只是做些小东西玩,对着 bug 多改几次也就差不多了,但总觉得不是个方法。

我能想到的,一个是画流程图之类的东西(如果有的话请给个关键词)。另一个在代码层面,比如有一个 save 函数,还有一个无副作用的 _save 函数,或者用一些额外的变量去控制。

想问问大家有什么心得,或者方法。

1924 次点击
所在节点    问与答
1 条回复
zungmou
2017-03-20 16:13:59 +08:00
参见我的帖子:
https://www.v2ex.com/t/348805

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/348866

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX