个人随笔
目录
边界思维
2025-03-11 21:11:48

在所有的架构思维模式中,如果说最终只能留下⼀种思维模式,那就是边界思维。腾讯公司前CTO张志东曾说过“优雅的接口,龌龊的实现”,可以说是边界思维最好的诠释。

在技术领域,“封装”“⾯向接⼜的编程”等技术,也都是边界思维的体现。只要⼀个系统对外的接⼜是简洁、优雅的,即使系统内部混乱,也不会影响到外界其他系统。相当于把混乱的逻辑约束在⼀个⼩范围内,⽽不会扩散到所有系统。

边界思维是⼀种通⽤的思维⽅式,下⾯从⼩到⼤来看边界思维在不同层⾯的体现。

对象层⾯(SOLID原则)

在⾯向对象的五⼤原则中,第⼀个原则S 就是单⼀职责原则(The Single Responsibility Principle)。通俗地讲,就是⼀个函数、⼀个类、⼀个模块只做⼀件事。不要把不同的职责杂糅在⼀起,这就是边界思维的⼀种体现。

当然,这⾥所说的“⼀件事”是从同⼀个抽象层次来说的。对⼀个类来说,⾥⾯所有的函数处在同⼀个抽象层次中,不要让⼀个函数做两个函数的事情;对于⼀个模块来说,⾥⾯所有的类处于同⼀个抽象层次中。

接口层⾯

对于开发⼈员来说,做⼀个系统往往先想到的是如何实现。⽽利⽤边界思维,⾸先想到的不是如何实现,⽽是把系统当作⼀个⿊盒,看系统对外提供的接口是什么。接口也就是系统的边界。接口定义了系统可以⽀持什么、不⽀持什么。所以,接口的设计往往⽐接⼜的实现更重要!站在使⽤者的⾓度来看,并不在意接口如何实现,⽽更在意接口的定义是否清晰,使⽤是否⽅便。具体来说,就是:接口的输⼊、输出参数分别是什么?哪些参数可选,哪些必选?如果输⼊参数很多,为什么不是分成多个接口?设计策略是什么?接口是否幂等?各种异常场景,接口的返回结果都是什么?

产品层⾯

除了技术,产品同样需要有边界思维。对于产品,常说的⼀句话是:内部实现很复杂,⽤户界⾯很简单。把复杂留给⾃⼰,把简单留给⽤户!尤其现在的AI产品,更是把这句话发挥到了极致。AI 算法本⾝很复杂,但对⽤户来说,使⽤却越来越“傻⽠化”,以前还有图形界⾯,现在直接对着系统说句话,它就明⽩了。

组织架构层⾯

组织的各个部门之间如果没有⾮常清晰的边界,就会导致该⾃⼰做的事情不做,互相推诿、踢⽪球;不该⾃⼰做的事情抢着做,你争我夺。最后整个体系权责不分,做事效率低下,还容易产⽣各种问题。


回到系统,不管⽤哪种分析⽅法和设计⽅法,最终必须保证每个系统有清晰的边界,各⾃分⼯清晰。⽆论谁要了解这个系统,他不⽤看这个系统是怎么实现的,只要看系统的接⼜,就能知道系统⽀持什么,不⽀持什么。

边界思维的重点在于“约束”,是⼀个“负⽅法”的思维⽅式。什么意思呢?⽐如要看⼀个开源软件的功能,要看的不是它能做什么,⽽是它不能做什么!“不能做什么”决定了系统的边界,或者说它的“极限”。

做架构尤其如此,架构强调的不是系统能⽀持什么,⽽是系统的“约束”是什么,不管是业务约束,还是技术约束。没有“约束”,就没有架构。⼀个设计或系统,如果“⽆所不能”,则意味着“⼀⽆所能”。

 26

啊!这个可能是世界上最丑的留言输入框功能~


当然,也是最丑的留言列表

有疑问发邮件到 : suibibk@qq.com 侵权立删
Copyright : 个人随笔   备案号 : 粤ICP备18099399号-2