阿里云「飞天发布时刻」2024来啦!新产品、新特性、新能力、新方案,等你来探~ 了解详情
写点什么

ThoughtWorks 技术雷达发布四大技术趋势

  • 2016-11-23
  • 本文字数:3122 字

    阅读完需:约 10 分钟

上周,ThoughtWorks 在北京发布了其最新一期的技术雷达。会上,ThoughtWorks 中国区 CTO 徐昊和中国区高级敏捷咨询师陈加兴分别对该期技术雷达所包含的四大主题及接下来可能会产生“浪潮效应”的一些技术趋势进行了分享。InfoQ 也对两位的预测观点做了梳理和总结,以为软件开发者和决策者提供可借鉴的行情统计和经验洞察。

ThoughtWorks 技术雷达拟定依据

ThoughtWorks 在每年都会出品两期技术雷达,这是一份关于技术趋势的报告。相对于一些根据量化指标制定而出的分析报告和行业预测报告而言,技术雷达中的象限和条目均由行业内一线工作者的经验和具有洞察力的人员筛选得出。他们根据对软件研发的理解和判断,对技术进行过滤,最终拟定而成。徐昊相信,统计数据不能代表任何问题,富有洞见力的一线工作人员以及对软件开发有着充分运用、领先理解的开发者,其所持观点才能为行业预测带来更精准的价值,并将其积累的真实经验带到更多的技术开发者和决策者面前。

11 月期技术雷达图概览

本期技术雷达依旧是以技术、工具、语言和框架、平台四方面内容为切入方向,同时每个象限内又由中心向四周依此分为“采用”、“试验”、“评估”、“暂缓”四大维度,以通过这四大不同维度表示每一项技术的成熟度。

用徐昊的话来解释,即在“采用”象限里的技术条目,只要场景恰当,就应该是技术开发者或决策者选择采纳的默认选项。“试验”环里,强调的是这项技术拥有足够的成功可能性,它们大多属于较新的技术领域,有较大发展潜力,只要在合适且风险可控的情况下,开发者即可尝试使用。此外,“评估”和“暂缓(proceed with caution)”象限则需要开发者对收益、风险、成熟度等条件评定下再谨慎使用。

通过直观的图形展示,技术雷达能将相关领域中值得注意的或新的技术提炼并表述出来。例如这一次在“采用”环的 14 项技术条目中,就有 9 项是新入围条目,包括 Pipelines as code、Babel(JavaScript 编译器)、Grafana(白板生成工具)等。

四大主题预示下一波技术浪潮

根据对技术雷达上众多技术条目的总结,ThoughtWorks 也看到行业内一线在软件开发及使用上的整体情况和趋势,从而总结了本期技术雷达的四大主题。

  • 容器即进程,PaaS 即机器,微服务架构即编程模式

目前行业内一批企业客户在引入容器时,常把 Docker 按照以前虚拟机的使用方式加以同等对待,将应用程序部署在 Docker 中。因此,ThoughWorks 提出要将 Docker 设想为一个进程,可以在任何地点随时启动并销毁,不会随着业务迁移而增加搭建时长。

其次,ThoughWorks 也发现许多大型企业正将开发者工具部署在他们自身平台内,从而形成了一整套开发语言生态。因此,PaaS 应该就是一个部署目标平台,并非围绕开发者提供的工具,或者是一些在线开发工具。

此外,由于容器化和强调松耦合,微服务风格的架构呈现了一个更抽象的开发者世界,为企业提供了更高层次的运行隔离。在 ThoughWorks 总结中,决策者应将微服务架构看作新的编程模式,这也意味着需要抛弃以前一些旧的观念,去认知和实践微服务这种新架构模式。

  • 智能释放的力量

随着 Nuance Mix 和 TensorFlow 等通过框架进入到实用领域,以前看上去很复杂的人工智能、机器学习等技术,也因为云计算和智能算法具体数据的大维度开放,离商业应用越来越近。而这些因素的综合演变也将促成一系列新的工具,包括商品计算、特殊定制的硬件(如 GPUs)、云端资源等。

  • 团队结构的全局影响

面向企业客户的市场一线团队,不再是只有短暂生命周期的项目团队,而要把互联网的产品思维引入到企业级项目中来,即产品思维高于项目运作。其次,应该在企业级项目里构建全功能团队,项目团队要建全自己的力量,向产品团队靠拢,把互联网的产品思维真正引入到内部 IT 项目中。例如,这两年 ThoughtWorks 一再强调,微服务不仅仅是一种技术,而是将它看作重新构建一线开发团队战斗力的一种文化或方法。

  • AR/VR 渐入佳境

虽然像 OpenVR 和 Unity 这样的软件开发平台已非常成熟,但新的 NLP 工具及硬件提供的接近自然的交互,为 AR/VR 技术的采用提供了较大助力。在建立实验室探索下一代应用时,ThoughtWorks 发现,由于通过抽象介质向用户直接传递沉浸式体验,因此 VR 在远程协作和讲述时有惊人的移情作用。但同时挑战也在于,创作和交付 VR/AR 内容应用的技能和能力远远跟不上硬件发展的步伐。

枚举最令人兴奋的几大技术条目

在 ThoughtWorks 团队梳理出 110 项技术条目同时,徐昊和陈加兴也对其中几项较新或具有较大拓展潜力的技术模型进行了解读和分享,例如 Anemic REST、APIs as a product、IndiaStack、CMS as a platform 等。

这些模型大多分布在“试验”、“评估”、“暂缓”三大维度内。这也意味着,即使很多技术条目在目前阶段并没有庞大的利益产出以证明其未来可能释放的价值,但其形成的影响并不会掩埋其创新上的成败。限于文章篇幅,InfoQ 主要选取了分享中三则较为典型的技术成果进行展示。

  • Anemic REST(贫血 REST)

谈论微服务越来越火热的今天,很少人会想到其技术是基于 RPC 的调动方式实现的。而 REST 里面最吸引人的地方,即它属于迁移或迁转的一种过程,可自然的鉴定业务的当前及未来的状态,使企业划定业务的场景和业务边界,从而帮助企业更好的描述现在所产生的业务模型。

但一部分批评者职责 REST 导致了系统间繁琐低效的交互,且无法适应客户端需求的变化。ThoughtWorks 发现,这类问题出现的根源并不在 REST 本身,而是源于未能将领域作为一组资源来正确建模。通过模板化的 URL、简单地暴露静态分层数据模型开发一个服务,会导致出现贫血 REST。贫血 REST 是一个反模式,它与贫血领域模式密切相关,根据它所设计出来的服务,在 Richardson 成熟度模型中,会处于成熟度较低的层次。

此外,RSET 虽然能非常忠实的反映页面上的各类交互。但如果核心 API 是围绕极易发生变化的 UN 交换设计,那变化快速的 APIs 将无法跟随企业的发展和业务模式的转变一起成长。这样,REST 承诺的优点就无法恰当表现。因此,ThoughtWorks 将贫血 REST 放在了“暂缓”维度上。

  • IndiaStack

IndiaStack 是一组开放 APIs,由印度研发。Open API 驱动了印度政府在认证服务、数字签名(eSign),统一在线支付和电子合同层(e-KYC)上的一系列数字创新,可以使印度公民通过统一的 ID 接入上述服务。

从这个层面上说,IndiaStack 实际上代表一组关系国计民生的微服务规范,在此规范上可实现印度人民网上支付等需求,以及与每个人生活息息相关的功能和内容,形成这样的规范其实是对每个公民的基本权利的保障。

由此,徐昊也得出一种反思——如果从政府的角度来讲,个人身份除了在实际物理空间存在特定指示外,难道不应该有一个开放网上服务,通过这种固定的身份表征让个人快速接入或关联一些政府相关的网站么?

印度的 IndiaStack 是很好的技术实验。它所传递的一种思想是:当我们真正见证到软件正成为整个行业乃至社会的核心驱动力时,我们也应该思考,政府在互联网环境中或信息化时代里应扮演怎样的角色、处于怎样的地位。

  • Overambitious API 网关

在亚马逊提供了 API 网关后,很多的大型企业也希望自己有能力开发这样的 API 网关(除了开源框架之外),他们不太满足于使用现有的开源框架,或者直接购买亚马逊的服务。

去年 5 月,ThoughtWorks 在其服务的一家企业中发现,对方正开发一个所谓的微服务框架,该框架主要是提供分布式事务和服务事务处理,而里面的“微服务”就是仅提供了数据 CRUD 操作,即上面提到的“贫血 REST”服务,通过网关进行各种流程编排、功能聚合和事务处理,但最终结果的确失败了。所以 ThoughtWorks 也提出,整个 API 网关应该是做轻量级服务的注册和发现,过度庞大的 API 网关产品,其功能在本质上就是反向代理,这助长了难以测试和部署的系统设计

公众号推荐:

跳进 AI 的奇妙世界,一起探索未来工作的新风貌!想要深入了解 AI 如何成为产业创新的新引擎?好奇哪些城市正成为 AI 人才的新磁场?《中国生成式 AI 开发者洞察 2024》由 InfoQ 研究中心精心打造,为你深度解锁生成式 AI 领域的最新开发者动态。无论你是资深研发者,还是对生成式 AI 充满好奇的新手,这份报告都是你不可错过的知识宝典。欢迎大家扫码关注「AI前线」公众号,回复「开发者洞察」领取。

2016-11-23 22:367544
用户头像
Cherry倩芸 InfoQ高级策划编辑

发布了 51 篇内容, 共 20.4 次阅读, 收获喜欢 34 次。

关注

评论

发布
暂无评论
发现更多内容

前端leetcde算法面试套路之二叉树

js2030code

JavaScript LeetCode

2 分钟,教你用 Serverless 每天给女朋友自动发土味情话

阿里巴巴云原生

阿里云 Serverless 云原生

大数据 Hadoop 的五大优势

千锋IT教育

Python进阶(三十八)利用matplotlib 进行折线图,直方图和饼图的绘制

No Silver Bullet

Python matplotlib 11月月更

分享一招应对BOM表的检查方法,摆脱被BOM支配的“恐惧”

华秋PCB

检查 PCB PCB设计

直播CDN调度技术关键挑战与架构设计

京东科技开发者

架构 系统架构 直播 CDN加速 CDN技术

JavaScript刷LeetCode拿offer-树的遍历

js2030code

JavaScript LeetCode

Wallys/Introduction of DR9074 series network card/qcn9074/qcn9072/qcn9024/industrial M.2 card

wallysSK

QCN9074 QCN9024 QCN9072

首批!腾讯云通过金融开源技术服务能力评估

腾源会

开源

大咖说·先临三维|高精度3D视觉技术商业应用与实践

大咖说

科技 高精度3D视觉

还在为数据库事务一致性检测而苦恼?让Elle帮帮你,以TDSQL为例我们测测 | DB·洞见#7

腾讯云数据库

数据库 腾讯云 数据一致性 tdsql 腾讯云数据库

用javascript分类刷leetcode3.动态规划(图文视频讲解)

js2030code

JavaScript LeetCode

聚焦年轻消费人群 百草味入围最受“Z世代”喜爱品牌TOP10

E科讯

js对象和原型、原型链的关系

hellocoder2029

JavaScript

JavaScript刷LeetCode拿offer-二叉树层序遍历篇

Geek_07a724

JavaScript LeetCode

【Go电商实战05】结合项目解答使用Go中间件遇到的问题:中间件的概念和应用

王中阳Go

golang 学习方法 中间件 11月月更 电商实战

Redis6.0新特性、剖析线程模型(单线程和多线程)

C++后台开发

redis 多线程 后端开发 单线程 C++开发

js异步编程的三种模式

hellocoder2029

JavaScript

js函数式编程讲解

hellocoder2029

JavaScript

JavaScript刷LeetCode拿offer-js版字典

Geek_07a724

JavaScript LeetCode

挖到宝了!2022阿里大佬手写“精品”Sping Boot学习笔记

小小怪下士

Java 程序员 阿里 springboot

java Apache poi 对word doc文件进行读写操作

@下一站

编程 原创 word Java core 11月月更

java企业级开发中常见的注入方式

千锋IT教育

vue和react的区别有哪些,哪个好

千锋IT教育

扒去Spring事件监听机制的外衣,竟然是观察者模式

程序知音

Java spring ssm Java后端 后端技术

Python进阶(三十七)Windows7使用nginx+apache部署django项目

No Silver Bullet

Python Apache nginx django 11月月更

Python进阶(三十九)使用matplotlib进行绘图分析数据

No Silver Bullet

Python 绘图 matplotlib 11月月更

MASA MAUI Plugin (六)集成个推,实现本地消息推送[Android] 篇

MASA技术团队

blazor MASA MAUI Xamarin MASA Blazor

【Redis】Redis AOF持久化

石臻臻的杂货铺

redis 11月月更

一路同行:开发者与华为云的2022

脑极体

10月月更获奖名单出炉啦!快来看看你上榜没有!

InfoQ写作社区官方

热门活动

ThoughtWorks技术雷达发布四大技术趋势_ThoughtWorks_Cherry倩芸_InfoQ精选文章