为什么要抛弃Pact?使用 EOLINKER API Studio 快速实现契约测试(CDC)

因为前后端对接的过程中会出现信息不对称,以及工作进度不一致的情况,因此希望通过事先约定好API返回数据的文档,根据文档来开发后端代码,以及生产可以被前端调用的虚拟的API,帮助前后端能够同时开展工作并且保持前后端代码的正确性,加快后期的系统集成测试甚至是取消系统集成测试。

我们将以上的做法称之为契约测试。契约测试最开始的概念由 Martin Fowler 提出,它又被称之为:消费者驱动的契约测试(Consumer Driven Contracts),简称CDC。这里的契约是指软件系统中各个服务间交互的数据标准格式,更多的指消费端(client)和提供端(server)之间交互的API的格式。

契约测试带来的变化主要是:

  1. 将前后端测试解耦,前后端可以分别在对方还没有完成工作的时候就开展测试;
  2. 将测试过程前移,加速或者取代集成测试;
  3. 保证数据的一致性,让后端服务返回的数据就是前端想要得到的。

Continue reading “为什么要抛弃Pact?使用 EOLINKER API Studio 快速实现契约测试(CDC)”

微服务与API网关

当一个企业正在构建(或已经是)微服务的架构,我们可以将企业内部的系统架构简单地划分为内网系统以及边界系统:

内网系统:不涉及到外部数据交互,内部互相调用较多,API的粒度较细,有全链路追踪的要求,通讯协议多为RPC,追求性能以及稳定。

边界系统:涉及外部数据交互,一般处于内网与互联网(App、Web等应用)之间,几乎是外部调用,API的粒度较粗,通讯协议多为HTTP(REST),追求性灵活以及安全。

当我们谈论API Gateway(以下简称网关)的时候,一般指的是位于边界系统,链接内网与外网应用、第三方企业、用户的一个枢纽,负责帮助企业解决内部API对外暴露时的性能以及安全方面的问题。

Continue reading “微服务与API网关”

定位与心智的价值

企业经营中最重大的战略决策就是要将所有资源集中起来抢占一个定位,使品牌成为顾客心智中定位的代名词,企业因此才能够获得来自顾客心智中的选择的力量。就如现在的iPhone是高端智能手机的代名词,苹果花费巨大的人力物力去抢占的并非是市场份额,而是心智的份额。因此我们会发现iPhone虽然市场占有率较低,但是却攫取了绝大部分的利润。企业的心智资源才是最重要的内在价值以及护城河。

因此衡量企业价值的方式不再单纯限于绩效以及盈利能力,在互联网行业中我们能够看到非常多的企业即使长期亏损也能获得大笔投资,因为占有用户的心智本身就是企业的价值。

本篇文章内容源于《定位》一书,并在其中融入自己对产品与定位的思考。

Continue reading “定位与心智的价值”

《研发管理革命》-第一章/第三节:No Scrum

我们在上一节了解到如何通过Scrum(敏捷开发模式之一)来提高研发工作效率[点击查看历史文章]。然而我们也发现Scrum并非总是可行,尤其是在中国国内,我们发现Scrum似乎在大部分公司身上都不可行,Scrum在许多公司内部昙花一现并且迅速被抛弃。因此我们应该重新审视这一种“被神化”的敏捷开发模式,并且在恰当的时候对它Say NO!

Continue reading “《研发管理革命》-第一章/第三节:No Scrum”

如何看待岗位薪酬、员工关系以及个人成长?

最近看到刘润写的一篇文章《如何告别“学生思维”,更好地参与商业世界?》,非常认可文中的许多内容,因此选取其中的精华内容再加上自己在工作中的感悟,整理成本文。希望这篇文章可以帮助我们重新看待岗位薪酬、企业和员工的关系以及个人成长等问题。 Continue reading “如何看待岗位薪酬、员工关系以及个人成长?”

《研发管理革命》-第一章/第二节:Scrum

Scrum是橄榄球比赛术语,指在一个团队中,所有成员在球场上四处移动并且把球在团队的内部来回传接。而在我们今天讲的话题中,Scrum指的是一种增量式的软件迭代方法,由Jeff Sutherland发明,目前常用于敏捷开发领域:通过将庞大的目标拆分为可以短期执行并且可以评估效果的任务,在每个短周期(Scrum中称每个周期为“冲刺”)结束之后及时回顾和调整计划,让信息更透明、进度更可控。 Continue reading “《研发管理革命》-第一章/第二节:Scrum”

当意见不一致时,Boss是怎么想的

最近有朋友跟我提起一个问题:“做一件事情有方案A和B,我认为A会更好,但是Boss选择了B方案。虽然我尊重/服从Boss的决定,但是我真的认为A方案好一点,这时应该怎么办?争论可能会留下不好的印象,不争论又会觉得不服气。”

这恰巧是我每天的工作之一:协调工作和做出最终决策。因此借此机会记录下我的思维方式以供参考。 Continue reading “当意见不一致时,Boss是怎么想的”