关于顶层设计

你是否经常感觉到事情凌乱,互相冲突,且无法高效完成或者,你们的团队内部完成了不少重复工作,数据对接不得不耗费大量的时间手动完成br> 读读这篇文章吧,你会喜欢的!

本文按如下目录组织!

  • 为什么要顶层设计/li>
  • 何时进行顶层设计/li>
  • 怎样进行自己的顶层设计/li>

为什么要顶层设计

图解

一张图来解释就是这样的,假设一个公司有四个人。他们彼此之间都需要交流,情况是这样的。每增加一个人,这个人就需要和先前所有人加一条线,就需要加N条线。

关于顶层设计

事例

最近我刚参加了一个机器学习的比赛,这非常棒。我主要做数据处理部分,我的数据处理好一部分之后,就发给队友用。队友马上把他套入了模型中,然后得到了结果。

队友跑完模型之后说,该死的,结果太差了,我们这样,再加几个特征。

很快我就加完了特征,但我传给他之后,他又需要操作一遍,因为他的数据和他的代码已经高度嵌套。他就把他改好后的数据传递给我,说,算了,我不好改这个,你直接在我这个后面把那几列加上好吧。

而这当然只是个开始,后来整个项目的过程中,我们也为了我们不合理的分工,缺位的顶层设计吃了很多苦头。

当然,虽然我们花费了很多时间用在这种没有意义的互相配合对方的数据。(适合来自对方法的API接口格式这种工作上)最终我们还是完成了任务。

感慨

有句话说得好,叫做不要过早优化。所以我们这次做项目,直接啥也没想,抡起数据就开始干。但实际上我们为此付出了高昂的代价。不要过早优化指的是,有些优化没有必要,等一等,你可以让那些真正有意义的优化沉淀下来。这不等于说,你可以啥也不想就开始干。

面向对象中一句话说得很好,不应该面向对象实现接口,而应该面向接口实现对象。很多时候,我们的很多时间花在了不必要的安装环境,数据格式对接上。这其实是不合理,反应了软件设计者,工具设计者的失职。一个好的工具,应该能够让我们花费更多时间在自己的核心业务上,而不是这种边边角角的工作上。

而面向接口,就可以完全实现这点。
顶层设计,就是接口设计。大家都乖乖按接口的指示来交互,这就是最高效的方式。

何时进行顶层设计

顶层设计的最大误区就是,认为只有大型的组织需要顶层设计,我作为一个个人而言,不需要顶层设计。

但实际上不是如此,与自己相关的一切复杂的,有价值的事务,都应该进行顶层设计。

例如你将要写的一个复杂的代码,或者是你准备开工的一个开源的大型项目,或者是你想要进行创业,又或者你写出了一个成熟的软件,需要推广,甚至这个国庆你去哪儿玩,花多少钱。

对,真的出去玩这种事情你可能都需要顶层设计,想清楚你究竟需要什么为一个个人而言,你出去玩的时候同时受到时间,地点,他人等等诸多限制。出去玩一趟,并且潇洒的回来,其难度不亚于写好一长串代码且不报错。

写长串代码不写注释是难以想象的,同样的,出去玩七天,不写规划也是不可想象的。

这些你都需要进行顶层设计,例如你会考虑到,我一个女孩子家,一定要住高级点的酒店,保护自身安全。你也会想到,我应该如何安排玩耍的顺序呢果缺少一个顶层设计,缺少顶层设计的决策依据,哪怕你选宾馆,你甚至都会陷入泥沼无法自拔。

还有需要顶层设计的是自己知识体系,你的简历应该就是围绕着你顶层设计过的知识体系展开的。同样的,如果你有志于收集各种网页资源来帮助你的成长,那么你的网页收藏夹也是需要顶层设计的。

当然也不是什么东西都需要顶层设计,例如我听歌,我就明确了我就是随意听听,当然也就不需要顶层设计了。

怎样进行自己的顶层设计/h2>
  • 一个图片,一个文档,可以反复查阅。
  • 不断修改自己的顶层设计
  • 顶层设计时可以使用思维导图,其他绘图软件等工具
  • 顶层设计的应该觉有可扩展性

实际上,完成一个顶层设计是没那么难的。因为顶层设计这种东西,只要有,就已经帮助很大了。另一方面来说,顶层设计也不是要求一次性做好的,而是可以逐步做,慢慢完善的。

例如你可以查看我的阅读指引,那就相当于是我的文章的包含范围的顶层设计。

来源:蒸发杰作

声明:本站部分文章及图片转载于互联网,内容版权归原作者所有,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2019年8月15日
下一篇 2019年8月15日

相关推荐