流程图与代码的重构

前言
有句名言:编写代码让你耗尽心力,调试代码则让你才尽思穷。这句名言是我在《测试驱动的嵌入式C语言开发》中看到的。要做到该书提及的测试驱动开发,决不是一两年可以学会,甚至一辈子也难以企及。

我之所以提到上面的名言,是在开发软件的过程中深深体会到的。嵌入式开发有个跳不过的难题:编写的代码必须下载到目标平台才能运行,这个过程长并且难以调试。我也就造就嵌入式开发的“后期调试模式”。

实践
在设计软件时,我比较喜欢先参考别人的代码,把别人的思维和自己的设计方法整合,编写出一套新的代码。之后,我的软件就编写出来了。
完成了?
yes!现在我就可以看自己的软件行为了。然后,现实很残酷。我的软件总是有这样或那样的BUG,然后我去自己的代码中查找问题的源头。问题在于,这个代码是我写的,实在是太熟悉了,我觉得完全不存在问题。但是,事实胜于强辩,程序并没有按照我认为的方向运行下去。
我只能对着苍天喊,你爷爷的!
你爷爷不理我!
其实我是知道这样写的代码总会出问题的,因为之前的软件开发经验已经告诉我了。

然后,测试我的代码还是花了一个通宵,结果还很悲惨。
第二天,我画了流程图,重构自己的代码。终于让自己的程序按照设定的思路运转起来。而结果是,BUG也几乎没有,只有一个平台限制性问题我不清楚,错误使用。

总结
当然,我并不是认为流程图是万能的,事实也是如此。它并不能代替软件架构。我认为流程图的作用在于聚焦代码的局部行为,这里的局部指关注某一状态的变化,而不是指代码范围。流程图可以关注的,或者是整个模块,或者是整个源文件,或者整个函数,等等。
流程图在实现代码方面是不可缺少的手段。即使在以后软件要改变时,流程图也能帮你更好的调整软件的行为。

流程图的危害?!
别人在跟我说代码时,我听不懂我要画流程图!只要你的代码符合我的流程图,我说,没问题!

A:上面的文章是随便写的,谁能把它重构下?!!!
B:笨蛋,这个有流程图吗?

转载于:https://my.oschina.net/zhuzihasablog/blog/89317

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值