博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
实战中设计的火候
阅读量:6671 次
发布时间:2019-06-25

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

  hot3.png

再次回到设计火候的问题,相当长时间以来潜意识里有一种疑惑,我总想在纸上尽可能详细的设计出来,但是这种做法更加让人疲倦而且慢。

反而稍微做一下设计,然后开始写程序,紧接着再来一次设计,然后进行重构类的修改,反而更加快速。

 

这个现象我们也见得很多了,敏捷方式的一个表现就是这样,但问题是:why?

 

为什么我们不能去尽可能的详细,然后一气呵成的把问题搞定?因为信息量。

 

面对一个规模较大或者新的问题的时候,我们在设计的根节点上可以大致做出框架---比如说这个问题需要用instance来代表每个物体,然后有一个manager统管。这个层次的时候问题信息量很小。

但是如果再往下一级,instance和manager应该承担的具体责任,每个责任要详细的列出来。

这仍旧是可以做的,但是信息量已经很多了,而且这种情况下我们倾向于去定一个完整的解决方案----其中有一些是不必要的。

再往下一级就是实现细节了,每一个需要有什么数据和接口,这一层在我最近几个月编程所解决的问题里面信息量已经大的没法精确控制了。

也就是你仍旧可以去把函数都列出了----我可以去做,但是没有能力做到让我满意的好。

 

到这一个层面信息量太大,解决方案迎着问题‘而生,但是到了细节这个层面问题是什么?太细太琐碎。因为无法精确的把握,所以会出现很多冗余的实现。所以这个做法并不是不能把问题解决,只是整个过程的方法论不够好,因而生产力不高。

 


 

解决方案

 

【设计】设计到刚才的第二级是刚刚好,要做的事情的本质是:

  • 本质的把问题解决方案表达出来----结构和每个模块的职责设计出来
  • 最小集----能够把问题定住的解决方案,尽可能紧凑,没有额外的东西
  • 这里仍旧没有完全细致的表达“粒度”,只是很粗的说了一下,因为这一块是因人而异的,不能脱离开个人经验和能力甚至心情来谈,直接搞起---痛快,但是常常会需要推到重来,深度设计,前瞻,但是憋闷,不那么爽快。

【第一次实现】这部分关键:

  • 保持“最小集”被准确的实现----至于其它部分顺手做了就做了,比如优雅的代码效率上的考量注释等

【重构】在一个版本完成之后,所有细节级的问题就都呈现出来,那么在这个层次去着手解决:也就是重构,时间允许的话就做到完美。

 火候,这个可以说是核心问题,这是一个对具体问题具体人具体分析的一个问题,核心概念是:生产力最大化&个人成长最大化

  • 当前你能最大发挥的复杂度----把复杂度分离到各个阶段,以符合人脑和个人特质的方式做事,这样让你可以在体力消耗,产出上找到最好平衡
  • 成长:没有挑战就没有成长

 


 

本文并不是重复的申述敏捷开发的思想,而是讨论了为什么是这样->如何达到最大的生产力。

 

 

 

 

 

原文链接:

转载于:https://my.oschina.net/dtec/blog/44780

你可能感兴趣的文章
EMC挑战全闪存极限
查看>>
着力大数据与大生态融合 贵阳第一个示范性公园开园
查看>>
ActiveMQ - JMS,Transport,Persistence
查看>>
互联网大数据支撑生态银行建设
查看>>
生态城年内开建智慧城市
查看>>
解密国产大数据法律应用服务平台
查看>>
打造智慧城市新风貌 嘉兴市推广应用万盏LED路灯
查看>>
工业大数据的三大挑战及大数据未来中国五大商业趋势
查看>>
苹果玩心机:取消GPU芯片商订单 打压股价再收购?
查看>>
安全是智慧城市建设的重中之重
查看>>
视频会议系统迎来第四次浪潮
查看>>
云计算崛起带动产业革命 智慧城市已悄然来临
查看>>
报告显示:被调研中国企业超85%已从数字转型中获得回报
查看>>
Stimergy公司的边缘平台加热法国公共游泳池
查看>>
安防企业以内养外适应供给侧改革
查看>>
中国移动2016年低端路由器和低端交换机产品结果出炉
查看>>
ABB公司为Hypertec公司蒙特利尔数据中心设计变电站
查看>>
索尼霸图像传感器头把交椅 巨头林立虎视眈眈
查看>>
4G速度的100倍:美国Verizon宣布完成5G无线规范标准制定
查看>>
大数据产业 能否带领内蒙古跨越资源陷阱?
查看>>