正文
Drucker 说的,我们就先不去追究了 ... ...)
所以,也可以说 MDD 是这句管理学中的名言在软件开发领域的一个实践。
什么是 MDD 呢?这也是一种开发理念,或者叫做哲学,即
通过实时指标来驱动快速、精确和细粒度的软件迭代
。
The use of real-time metrics to drive rapid, precise, and granular software iterations.
MDD
的创新之处在于将应用程序(服务)的监控( Metrics )提高到系统整体这一层次,在设计初期就开始将 Metrics
设计也包括进来,就如同写代码之前,先写测试用来一样。也就是说,未雨绸缪,在系统出问题之前,在系统设计之初,就设计一套规则来评价系统的稳定性、健康状态以及其他各种的考核目标(即服务本身的
KPI)。
一言以概之, MDD 可以帮助我们更早地
发现问题
和
明确目标
。从一定意义上来说, MDD 也是大数据。
我们都知道,监控的主要目的是为了发现问题。但是除了能及时、没有遗漏地帮我们发现问题之外, MDD 带来的另一个好处是通过对现状的可视化和具体化,来帮助我们对未来进行规划和预测,进而实现业务改善。
比如可以根据当前服务器内存使用率、网络带宽这些基础设施因素及趋势,预测未来一段时间的容量规划。
相对于传统上通过制定各种复杂、严格的研发规定,以及无数的评审、研讨会议来确保软件安全发布、稳定运行,
MDD 理念的特别之处在于在应用程序本身中,采集必要的监控信息,通过持续交付方式,进行快速迭代并进行反馈和修正(请参考一下 PDCA 环或者
OODA 环的相关知识),所有决定都是基于对不断变化的情况的观察。
总之呢,毕竟要穿几尺腰的裤子,拦腰虎抱不准,目测不灵,还是得量量才知道。
图片来自: http://www.jituwang.com/tuku/201305/295805.html
程序运行起来才能为用户提供服务,才能为用户提供价值,为公司赚取收入;躺在 Git 仓库中的代码,编码风格再好,注释再详细,如果没有运行,并没有一毛钱的用处。
对于静态代码我们有各种工具和原则来进行管理,对于运行中的代码, Metrics 能为我们提供整个系统的详细情况,哪些代码执行过,执行过多少次,哪里有错误,有多少错误,都能让我们一目了然。