任务 1:Tasking 任务分解
最后更新于
最后更新于
接下来我们会系统地讲解 Tasking 的方法论。
完成任务没有思路首先是因为我们对问题描述得不够清晰。很多人在思考问题的时候是用蛮力的,想不出来就使劲想,憋着不干别的,等着大脑里蹦出一个答案。这种做法是非常不可取的,尽管我们大脑的潜意识具有仅次于阿尔法 Go 的思考力,你也不能这么虐待它,好钢要用在刀刃上。 正如上图所示,很多人思考任务也就是一句话的任务描述,而一句话根本是不够清晰的,我们需要一些思维框架让问题更加清晰。
计算机程序可以简单的抽象为输入,处理和输出。所谓的处理,是处理过程的简称,也就是代码,它既可以是左边的结构化的代码块,也可以是右边封装好的函数。无论哪一种,都有输入输出。 这个思维框架就是很好的思维框架,既然程序是要考虑输入和输出的,而我们的任务就是写程序,那么自然也要考虑输入输出
回到之前的图,把输入输出加上,就变成了上面这个样子。 每个输入输出都有名字和数据结构。 就输入来说,如果是代码块,那么就是另一块代码创建某个变量,如果是函数,那可能就是参数。 就输出来说,如果是代码块,那么就是创建出来给别的代码块使用的变量,如果是函数,那可能就是返回值。 而不管哪一个,都是有名字和数据结构的。 往往输入的数据结构可以从前面的输出中找到,所以可以省略掉就不想了。
如果是面向对象的话,输出的 name 就不太重要了,重点是数据结构的类名。
请看如下示例,我们有 3 个函数,这也是描述我们任务的一种方式。
唯一需要强调的就是穷尽了,我们思考问题的时候,需要把输入输出穷尽。在实际工作中需要和业务和产品尽可能地沟通了解清楚。 如果不把输入输出穷尽,和 森林里谁没有参加会议的问题一样,我们是无法想清楚问题的。
拿一张白纸
进行粗粒度的任务拆分
对其中复杂一些的步骤进行进一步分解
检查和梳理所有任务的输入输出,确保穷举
检查所有任务,确保输入输出明确的情况下,任务独立
对火星移民计划进行上述操作