1)这是关于编程思路,实践教学的 第8课
2)在专栏里,可以找到之前的课程
3)持续更新,关注不迷路
4)有问必答,不信试试看
阅读友情提示课程宗旨,先说程序设计,再来看如何写代码,从这视角来学习,会容易很多!
回顾上一课和大家分享了能快速提高写代码效率的技巧,与使用UML类图来捋清楚数据结构关系的方法。
上一节课的链接:
本节课 耐心看完后,你会学到:- 一个让写代码变得轻松的方法
- 一个能缕清楚任何思路的方法
- 若干干货或细节
小时候记得很多动漫里的主角在自己变强后都感叹,自己掌握了终极奥义!当时就在想“奥义”是什么东西?
“奥义”这词来自于佛教,意思是事情背后深刻的道理,传说掌握奥义的人能以不变应万变,能四两拨千斤。
其实早在很久、老古人就以很庸俗易懂的话,把这个奥义流传下来,当我们遇到极大的挑战时,老前辈会不急不燥的和我们说“大事化小、小事化了”。
这八个字就是对这个奥义的终极总结。它也有一个好理解的名字“拆大象”的方法。在这个连载课程里,分析“虚拟地球”时简单的使用过这个方法,如果看过这篇文章的朋友会有印象,这节课,我们来炒个回锅肉,吃透这个终极奥义。
我们来看一下,上一节课留下来的问题:“我们一直说虚拟地球要有人,那么人会有哪些行为?”
好了问题摆在这里了,那我们如何用“拆大象”的方法去解决它? 在动手“拆”之前先来了解一下这个方法的步骤。
步骤:
- 把这个问题拆解成若干小问题。
- 把这些小问题拆得更小,直到你能掌控它。
- 对拆解出来的问题进行一个回溯。
一些注意事项:
- 问题不是拆解的越小越好,拆解到我们能掌控就好。能掌控的问题,我们用流程图这个工具去刻画它。
- 最好使用一张纸、一支笔或思维导图工具记录自己思考的过程。
好!开始动手拆!第一次拆解:
通过上面的图片,我可以很直观的看到这个大问题可以拆解成下面5个问题。我们也可以用文字排版的层级关系来描述它。
- 虚拟人会有哪些行为?
- ---- 最基本的生存
- ---- 扩大自己的势力
- ---- 人与人之间的交流
- ---- 繁殖后代
- ---- 影响行为的性格
我发现拆解出来的问题,很难在脑袋里有画面,很难去掌控它们。所以我决定继续拆解。第二次的拆解: