当我们碰到复杂问题,任务分解能力就非常重要了,任务分解在英语里面叫divide and conque,非常形象地说明了任务分解是为了分而治之,各个击破。任务分解一般可以分成三步:
第一步
透彻理解复杂问题的输入、处理过程和输出,比如一个智能行程程序的输入是:
- 目的地国家或城市
- 逗留天数
处理逻辑是:
- 在数据库里找到对应的国家或城市
- 如果是城市,则要按照热度拿出景点。如果是国家,则要按照热度拿出城市。
- 如果是城市,需要把多个景点连成一条线,如果是国家,需要把多个城市练成一条线。
最后输出一个旅游行程
第二步
按照逻辑先后顺序和由简至难的原则拆解任务,比如:
- 设计领域模型
- 确定数据源
- 编写数据爬虫
- 实现路线构造逻辑
- 编写UI
第三步
从第一个任务开始,如果发现第一个任务过大,再进一步细分,比如在编写数据爬虫的时候你可能要加一个任务去了解和学习目前流行的爬虫包和框架。另外在实现任务的过程中可能会发现新的任务,按照逻辑先后顺序加到任务列表中,然后依次完成每个任务即可。
任务分解的目的是帮助我们更容易地去解决问题,一个复杂的问题很可能导致我们拖延甚至放弃,但是问题分解之后,我们可以快速启动起来,从解决小的问题开始逐步找到感觉,最终击破复杂的问题。