菜单

TechnologyRadar

有态度的前沿技术解析
第23期

下载技术雷达 第23期

English| Español| Português| 中文| ไทย|

本期主题

近来GraphQL在业界很流行。我们一方面鼓励团队使用GraphQL及相关的新兴工具,另一方面也提醒大家要谨慎行事,以避免因使用这个目的单一的技术来解决过多问题时所带来的弊端。
最初设计用于文档浏览的Web浏览器,现如今却主要用于呈现应用程序。针对这种阻抗失谐的长期挑战,开发人员一直在重新思考如何最好地构建Web应用程序。
各种各样创新型的可视化工具已经涌现出来。其所覆盖的领域包罗万象,包括基础设施、数据科学和云平台资源。一图胜千言。随着开发人员生态系统变得越来越复杂,一张可视化图表往往能极大地帮助他们应对不可避免的认知超载问题。
基础设施即代码的实践,已经步入青春期。与第一代相比,其相关工具已经有了很大的改进。但是和大多数青少年一样,其身上的积极和消极因素共存。
让非程序员能够执行以往只有程序员才能做到的任务,我们围绕如何促进编程大众化的相关工具和技术话题展开了讨论。但是,与我们以往对许多低代码工具的态度一样,相关的取舍原则依旧未变。

GraphQL 浮夸风


我们看到 GraphQL 在很多团队中的采纳率激增,同时其支撑生态也在蓬勃发展。它解决了现代分布式架构(如微服务)中的一些共性问题:当开发人员把系统分解成很多小块时,他们通常还要把信息重新聚合起来才能解决业务需求。GraphQL 提供了一些功能,可以方便地解决这类日渐普遍化的问题。就像所有强大的抽象一样,它提供的是一种折衷方案,团队要认真考虑,以避免长线上的负面影响。比如,我们已经看到有团队通过聚合工具暴露了过多的底层实现细节,导致架构出现了不必要的脆弱性。当团队试图借助聚合工具来创建规范化的、通用的、中心化的数据模型时,就会把短线上的便利变成长线上的麻烦。我们鼓励团队使用 GraphQL 及其迅速成长的周边工具,但是,要小心别过度追求技术通用性,不要试图用一项技术解决很多问题。

与浏览器的斗争仍在继续


网页浏览器原本是被设计用来浏览文档的,但现在主要用来承载应用程序,这种抽象的不匹配一直困扰着开发人员。为了克服这种不匹配所带来的诸多问题,开发人员一直在重新审视和挑战那些公认的用于浏览器测试、状态管理和构建快速且丰富的浏览器应用程序的方法。我们在技术雷达上可以看到这一类的趋势。第一,自从2017年 Redux 作为管理 React 应用状态的默认方法被移到“采纳”环以来,我们看到开发人员要么仍在尝试其他的方法(Recoil), 要么推迟对状态管理库的选型决策。第二,人们对 Svelte 越来越感兴趣,而它正在挑战虚拟 DOM 的概念, 后者则正是 ReactVue.js 等流行的程序开发框架所遵循的概念。第三,用于处理浏览器端测试的新工具不断涌现:Playwright 是改进 UI 测试的又一个新尝试,而 Mock Service Worker 则是一种将测试与后端交互分离的新方法。第四,平衡开发人员的开发效率与应用性能一直都是我们需要面对的一个挑战,浏览器定制的腻子脚本的目的就是改变这个权衡的范围。

可视化一切


这一期技术雷达中,有几个条目来自不同技术领域但却拥有一个共性,即可视化。你会发现很多关于基础设施、数据科学、云资源,以及很多其他极富创新性的可视化工具,其中不乏一些可以有效可视化复杂抽象的方法。也有一些交互式的数据可视化工具和控制面板工具,如 Dash, BokehStreamlit,还有一些基础设施的可视化工具,例如微服务架构中的服务网格可视化工具 Kiali。 随着开发人员的生态环境变得越来越复杂,一幅能清晰地解释问题的图像对减轻大家的心智负担无疑是大有裨益。

基础设施即代码的青春期


随着组织看到自动化基础设施所带来的好处,管理基础设施即代码变得越来越普遍。这为创新型的工具和框架的创建者们提供了反馈。诸如CDKPulumi之类的工具,提供了远远超过第一代工具的功能。其改进如此之大,以至于我们相信基础设施即代码已经进入了积极与消极因素共存的“青春期”。我们惊喜地看到在所有象限中,都有相关雷达条目,从积极的方面反映了相关生态系统日益成熟。但是,我们还讨论了该领域因为缺乏成熟模式而面临的挑战,以及许多公司在尝试用最佳方式利用此功能时所面临的挑战。所有这些都表明,该领域在持续增长,但尚未成熟。我们希望基础设施社区,继续从软件设计中汲取教训,尤其要关注创建松散耦合的可部署基础设施。

编程大众化


让非程序员能够执行以往只有程序员才能做到的任务,我们围绕这个促进编程大众化的工具和技术进行了一些讨论。而诸如IFTTTZapier之类的解决方案在该领域已长期流行。我们发现,人们开始越来越多地使用诸如Amazon Honeycode这样的低代码环境,以创建简单的业务应用程序。尽管此类工具提供了适合其目的的编程环境,但将其产出移至规模化的生产环境时仍会遇到挑战。开发人员长期以来一直设法利用电子表格向导工具,在特定领域和传统编码环境之间找到折衷方案。越来越多的现代工具的问世,在更广泛的领域重新激起了大家的讨论。但取舍的原则,依旧未变。

查看存档并阅读往期内容

订阅。保持关注。

我们将持续发布与技术雷达相关的内容。点击订阅,可在第一时间获得通知。

谢谢!

如果你已经订阅技术雷达,请关注收件箱,我们会尽快与你取得联系。