您还未登录! 登录 | 注册 | 帮助  

您的位置: 首页 > 业务知识 > 正文

程序员知识体系探索:点、线、面、体

发表于:2018-04-28 作者:右军 来源:技术锁话微信公众号

想写一写"点线面体"有一段时间了,但一直未动笔,怕说不好。我发现我最近经常也在说某某是点状的模式,没有形成体系。

那么对于自己也不够那么清晰的内容做一下梳理还是非常有必要的。知之为知之,不知为不知,是知也!

曾鸣教授:点线面体


曾教授在得到 App 曾经开了一个免费的讲座,智能商业二十讲。里面有一章,第八讲:新定位—点、线、面、体。

曾教授说,现在如果有人再来找我讨论企业下一步发展战略问题,我经常反问的第一句话就是,点、线、面、体,你的定位到底是什么?先得明确这个问题,后面一系列的问题才能展开讨论。

点、线、面、体,每一个定位背后,逻辑是不一样的,需要的运营原则、资源调配的方法,甚至竞争壁垒,最后可能的发展路径都不一样。 所以先明确自己在未来网络化世界的定位,是决定企业发展方向的第一步。

面,我指的是大家通常意义上讲的平台或者生态型的企业,典型的例子例如淘宝。

面的核心是要创造新模式的可能性,它要广泛地连接不同的玩家,换句话说,面起码是一个市场。

点是这个面上各种各样新的角色。比如说在淘宝上有很多丰富的角色,从卖家到给卖家提供物流服务、模特服务、软件服务,甚至是代运营服务的商家,这些角色都是淘宝这个面上的不同的点。

在淘宝平台这个面上,要让淘宝卖家赚到钱,淘宝才能发展。模特服务、广告服务等都是为线(卖家)或者面(淘宝平台)服务的。

难得的是这些点和线形成了网络协同效应,这样就比纯粹上下游关系的模式多了很多种可能。

那么由面,如何形成体呢?同样是阿里巴巴这个例子。虎嗅网曾报道过 2017 年阿里 Q4 财报,披露业务板块如图所示:

这里跳过财报细节,可以看到电商、云计算都形成对应的板块,就是我们说的面。整合在一起就是“体”。当然面和面之间有协同和联动,让他们有机的在一起。

梁宁:点线面体的战略选择


本模块第一节,我讲一个非常重要的战略判断框架。这是一个非常简洁的思考结构,叫点线面体。

点线面体是曾鸣教授的理论,他在得到 App 的课程《智能商业20讲》中做了阐述。我也从曾鸣教授这个新型的定位方法中收益良多。

梁宁女士在产品思维 30 讲中讲“点线面体的战略选择” 实际讲的是 360 的故事。

首先瑞星通过低价干掉了江民、而 360 通过免费干掉了瑞星。注意划重点,这 2 场战役都是“点”上的竞争,这个点就是杀毒软件。瑞星在专注杀毒产品的基础上未形成面和体的产品体系。

360 从一个免费安全的点入手,快速变成了一个安全平台,接着变成流量分发平台,这就是 360 的三级火箭策略。

360 安全成功之后,通过搜索阻击百度,但这场仗输给了"势",就是移动互联网。今天我们可以看到,很多搜索是在 App 内部的。

上图为某机构公布的 2017 年 12 月国内 App 活跃度的数据。可见最 hot 的 App,它的行业划分不是搜索。搜索已经内化为 App 内部生态的基础服务和能力。

如果你的面所承载的体是在下沉的,面做的再精彩,亦无法跟上历史前进的车轮。

程序员的点线面体

这里先抛一张示意图,点线面体是一种演进,在各阶段还有细分。

点:我们首先定义为解决具体问题,比如实现多文件的上传下载。一个复杂度一般的系统 owner,我们都可以暂且纳入到点这个层面。但 System 就需要一些系统化思维。

从系统 owner 到二级域 

如上图所示,System 的 owner,从系统的角度是一个点。但从功能(Func)到 System 的角度可以是一个面的变化。包括有平台能力视角、稳定性视角、运维视角。

那么对于研发人员要迈出的一步就是,从完成功能 A 下载(点)逐步进阶到整体功能覆盖(线)、进而考虑多维视角:平台能力视角、稳定性视角、运维视角...

线:但从系统到产品线(二级域)可以理解为一种点到线的跃迁。之前考虑的是单个系统的职责、质量;现在要考虑一条产品线(N 个系统)。

从二级域到一级域


从产品线(二级域)到一级域,可以理解为由线到面的跃迁。

在面的视野上,除了平台能力视角、稳定性视角、运维视角,可能又有了业务治理视角、业务运营视角等。

对于业务身份,你写的代码,是别人的噩梦吗? 这篇文章曾提及,使用扩展点的方式。

扩展点的设计是所有的扩展点(ExtensionPoint)必须通过接口申明,扩展实现(Extension)是通过 Annotation 的方式标注的,Extension 里面使用 BizCode 和 TenantId 两个属性用来标识身份。

业务身份对于业务层的跟踪和治理作用非常大,类似于技术侧 traceId 的可追溯性。

如上图所示,全局架构可以称之为面; 对于足够复杂的一级域,亦达到了面的 level。

从面到体,就技术人员发展而言,我认为有 2 条途径:

  •  
  • 比如从一级域的问题终结者到全域架构,视野俯瞰是整个公司的技术架构。
  • 也可能是从架构师角色走向管理岗,比如 CTO。

由线到面 vs 由面到体

解决的是由线到面的问题,还是由面到体的问题,我认为最大的分解点在于(二者满足其一):

  •  
  •  
  • 是否解决的问题域有足够的扩展,比如从一级域到全域架构。
  • 是否重新定义问题域、技术输出模式、产品模式或者商业模式。

我们可以看一个例子,电商系统发展面临的问题。包括有有系统问题、业务问题、技术支持问题。

鉴于问题域是整个电商平台(够广)、问题维度涉及方方面面(有较强复杂度),是达到面这个层次的,但是还不能称之为"体" 这个层次,因为解决的问题域的已知比较确定的问题域。

from 公开演讲资料《蘑菇街每秒订单数 25 倍提升历程》

对比,聚石塔这个 case,就可以看到由面到体的变化。从输出技术、到输出产品、到解决方案,解决是不同层次的问题。

from 公开演讲资料《聚石塔电商云容器服务应用和实践》

总结:点、线、面、体是在任何专业领域都可以采用的 4 要素方法论。小到一位贴瓷砖的工人,大到数万人公司的参谋长。

4 要素方法论对于程序员知识体系,也有不同层的划分,就研发体系、运维体系也有各自的细分。

本文所列的观点仅仅代表业务发展到一次规模公司的程序员的发展和自我完善途径。

作者:于君泽,花名右军

简介:蚂蚁金服高级技术专家,IT 从业超过 15 年。对高并发、分布式架构、内建质量、研发管理有一些心得,维护个人公众号“技术琐话”。