0%

find命令的设计非常棒!棒在设计理念,它把文件查找文件处理分离了。

  • 文件查找: 静态的,可预知的,可枚举的。按名字查找,名字支持正则表达式;按文件大小查找;目录递归查找。这些都是固定不变的。
  • 文件处理:动态的,不可预知的,未来会不断发展。因此设计时,find预留出了-exec回调拓展。让用户可以自定义文件处理算子,这个回调契约或说接口就仅仅是命令行。

通过find命令的演示,可以诠释架构师的价值,中台的价值。中台的意义在于面向未来业务的可拓展性,面向不可知的可拓展性。这个可拓展要在开闭原则的前提下进行。

阅读全文 »

再好的产品设计都不可能一开始就尽善尽美。一方面人类的认知是有局限性的,是由浅入深的,是随着业务实践过程而发展的;另一方面尽善尽美是需要成本的,很多时候需要小步快跑和持续交付,在不断给用户创造小确幸的过程中得到用户肯定和支持,才能赢得完善的机会,否则可能等不到完美就死了。同样的,当我们内部发现一个不那么完善的东西时,也要把自己带入当时的阶段,然后再综合当前的情况,用发展的眼光来解决问题。请不要对产品的历史吹毛求疵。今天暴露的各种问题,一定程度说明了昨天的设计取得了阶段性成果,不然就死在无人问津里。

有了这种心态后,才能静下心来思考运营过程中的各种问题,对一个问题做深入思考,追问几个为什么,层层递进找到问题的病根,避免头痛医头脚痛医脚。

阅读全文 »

微服务架构体系首先要解决系统间连通性的问题。有两大流派:

  • 基于RPC: 比如Apache Thrift,阿里Dubbo等等。
  • 基于REST: 基于HTTP的RESTful,借助HTTP/1.1的持久链接和HTTP/2.0的多路复用,已经完全适合server-to-server的高频次、低时延、少连接的通信场景,不输给二进制协议的RPC。但其方便性、跨平台型和生态性则远超RPC。这也是诸如Java领域的SpringCloud发展迅速的重要原因。
阅读全文 »

在企业应用中,主数据的边界往往被无限扩大,违背程序设计的单一职责原则。它犹如全局配置文件,违背面向对象的思维框架。为什么会这样?因为

在程序设计中,有一个矛盾——用户视角与系统视角的矛盾

  • 用户视角,要求一站式服务;
  • 系统视角,要求单一职责。

认识清楚这一点后,问题就迎刃而解了,把「一站式」服务看成是一个独立的职责。这一点上,程序设计和企业经营、营销思想上是一致的。营销中有个非常重要的思维是站在用户的角度看企业,它与经典的4P理论并不冲突,但恰到好处地补充了从「连接」的两个角度去思考问题。

阅读全文 »

一个计数器很平凡,一组计数器却很伟大。上市公司的财报,会计的复式记账,其计算最终归结为计数器;《增长黑客》里说的数据化运营,无论分析的角度多么复杂,其计算最终依然归结为计数器。道家说:一生二、二生三、三生无穷。计数器就是这个能生无穷的一。

阅读全文 »