做一些有界面有读写的软件时经常遇到的一个问题,就是函数写多了,互相之间的调用关系就越来越乱,一直不知道有没有什么好的解决办法。
下边这个是伪代码,最近做网站遇到的,路由变了要重新加载数据,数据变了要修改对应路由,重新读数据的时候还得判断有没有保存,等等。
// 大概意思
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 函数,或者用一些额外的变量去控制。
想问问大家有什么心得,或者方法。
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.