感悟设计——《棋经十三篇》之自知篇

《棋经十三篇》,是我国围棋史上最重要的理论著作。最近越看越觉得和设计之道有非常大的共同之处,于是写下所思所得。

  自知篇第六
  夫智者见于未萌,愚者暗于成事。故知己之害而图彼之利者,胜。知
可以战不可以战者,胜。识众寡之用者,胜。以虞待不虞者,胜。以逸待
劳者,胜。不战而屈人者,胜。《老子》曰﹕“自知者明。”


夫智者见于未萌,愚者暗于成事。
富于智慧的人,在事物发生前就能看出动向,愚昧的人,即使事情已经完成也不明白其中的道理。设计是为了未来做提前的预备,所以有效地设计离不开准确的预测。智慧和愚昧的区别在哪里?不在天分,不在于智商,只是日常点滴工作的心态和习惯,日积月累下来,所导致的差距是非常巨大的。

故知己之害而图彼之利者,胜。

任何项目都有方方面面的困难,不可尽数,了解当前的急所,需要决断力。如果一眼望去,满目尽是困难,却找不到最关键的问题,那么何从下手?


知可以战不可以战者,胜。

是不是所有的东西都要在架构上加以考虑呢?那些过于长远的需求变化,那些过于超出团队理解能力的酷炫的设计工具、设计理念,那些现在设计的成本高于未来再修改成本的方案,与其战不如不战。好的架构师不仅懂技术,更要懂产品、懂团队、懂成本。


识众寡之用者,胜。

同样的问题,放在不同规模的代码下,放在不同大小的团队中,放在不同性质的项目里,架构是否一样?

以虞待不虞者,胜。
其实做任何事情都一样,事前做好充分的准备,并随时做合理的调整,对于结果不要太有得失心。充分的准备并不一定保证你获得好的结果,但我们依然要做。看重过程,而不是看重单次的结果——因为再好的过程也可能会偶尔失利,但从长远来统计,好的过程总体上必然导致更好的结果。

以逸待劳者,胜。
到底做出一个好的设计辛不辛苦?累不累?一个常见的现象,追求进度,不仔细考虑设计,直奔代码,那么后期测试、修复问题非常痛苦,让人精疲力尽。另一个现象,追求完美的设计,前期花费大量时间,导致进度落后,只能加班,而一旦需求变化,却发现原先完美的设计不能适应,天翻地覆地一通大改,结果原先完美的设计也烂了。这两个看起来殊途同归,其实喻示着对于设计能力不足的人来说,无论是进行设计还是不进行设计,做软件都是一个痛苦并且没有成就的过程。
世上本没有完美的设计,所谓完美的设计是根据当前人员、时间、问题,做出的最佳平衡,它可能远称不上完美。对于实际项目来说,设计方案好不好,也只有一个评判标准,那就是能否使得项目的整体工作量最小化。显而易见,仅仅考虑技术无法做出最佳平衡,也无法实现整体最小化。当然,要做一个优秀的方案,累也是很难避免的,但这个累是最佳平衡下的累,是保障项目成功的最小工作量,并且累过了之后有成就感。


不战而屈人者,胜。
不战而屈人,是最高境界。软件设计也要追求这个境界。比如说,指针灵活强大,但容易出错,与其投入巨大精力去确保指针正确使用,不如在设计上就尽量避免指针的使用,如果一个方案能同样满足需求,又不使用指针,那么这个方案就非常有价值。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值