博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
流程图与代码的重构
阅读量:7080 次
发布时间:2019-06-28

本文共 863 字,大约阅读时间需要 2 分钟。

hot3.png

前言
有句名言:编写代码让你耗尽心力,调试代码则让你才尽思穷。这句名言是我在《测试驱动的嵌入式C语言开发》中看到的。要做到该书提及的测试驱动开发,决不是一两年可以学会,甚至一辈子也难以企及。
我之所以提到上面的名言,是在开发软件的过程中深深体会到的。嵌入式开发有个跳不过的难题:编写的代码必须下载到目标平台才能运行,这个过程长并且难以调试。我也就造就嵌入式开发的“后期调试模式”。
实践
在设计软件时,我比较喜欢先参考别人的代码,把别人的思维和自己的设计方法整合,编写出一套新的代码。之后,我的软件就编写出来了。
完成了?
yes!现在我就可以看自己的软件行为了。然后,现实很残酷。我的软件总是有这样或那样的BUG,然后我去自己的代码中查找问题的源头。问题在于,这个代码是我写的,实在是太熟悉了,我觉得完全不存在问题。但是,事实胜于强辩,程序并没有按照我认为的方向运行下去。
我只能对着苍天喊,你爷爷的!
你爷爷不理我!
其实我是知道这样写的代码总会出问题的,因为之前的软件开发经验已经告诉我了。
然后,测试我的代码还是花了一个通宵,结果还很悲惨。
第二天,我画了流程图,重构自己的代码。终于让自己的程序按照设定的思路运转起来。而结果是,BUG也几乎没有,只有一个平台限制性问题我不清楚,错误使用。
总结
当然,我并不是认为流程图是万能的,事实也是如此。它并不能代替软件架构。我认为流程图的作用在于聚焦代码的局部行为,这里的局部指关注某一状态的变化,而不是指代码范围。流程图可以关注的,或者是整个模块,或者是整个源文件,或者整个函数,等等。
流程图在实现代码方面是不可缺少的手段。即使在以后软件要改变时,流程图也能帮你更好的调整软件的行为。
流程图的危害?!
别人在跟我说代码时,我听不懂我要画流程图!只要你的代码符合我的流程图,我说,没问题!
A:上面的文章是随便写的,谁能把它重构下?!!!
B:笨蛋,这个有流程图吗?

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

你可能感兴趣的文章
CMD命令进入文件夹
查看>>
PostgreSQL存储过程<转>
查看>>
Angular企业级开发(8)-控制器的作用域
查看>>
BZOJ 4538: [Hnoi2016]网络 [整体二分]
查看>>
从XML文件乱码问题,探寻其背后的原理
查看>>
BSD Socket~TCP~Example Code
查看>>
Spring配置文件总结
查看>>
CodeForces 388A Fox and Box Accumulation (模拟)
查看>>
bzoj 4830: [Hnoi2017]抛硬币 [范德蒙德卷积 扩展lucas]
查看>>
MySQL具体解释(21)------------缓存參数优化
查看>>
8款基于Jquery的WEB前端动画特效
查看>>
客户端接收发邮件时,出现“无法连接到服务器
查看>>
关于Unity中UI中的Mask组件、Text组件和布局
查看>>
nodemon是个好东西
查看>>
C/C++拾遗(一):关于数组的指针和数组元素首地址的一道经典题
查看>>
《AndroidStudio每日一贴》5. 怎样高速查看某个方法/注解的定义?
查看>>
Gradle入门学习---认识buildeTypes和dependencies
查看>>
iOS开发 - 二维码的生成与读取
查看>>
.Net中的缓存依赖配置
查看>>
让你提前认识软件开发(14):程序中的算法
查看>>