ThoughtWorker 每段时间会出一个技术雷达,由 ThoughtWorks 中 一群资深技术领导组成的 ThoughtWorks 技术顾问 委员会创建了该雷达。他们定期开会讨论 ThoughtWorks 的全球技术战略以及和对行业有重大影响 的技术趋势,特别篇会着重看一下技术雷达值得注意的一些技术趋势。
简单介绍下ThoughtWorker的技术雷达,技术雷达主要分为四块,技术,平台,工具和语言&框架,对于技术趋势,TW采用采纳,实验,评估,暂缓四个等级来做一个简单的评估。
采纳:我们强烈主张业界采用这些技术。我们会在 适当时候将其用于我们的项目。
试验:值得追求。重要的是理解如何建立这种能力。 企业应该在风险可控的项目中尝试此技术
评估:为了确认它将如何影响你所在的企业,值得 作一番探究
暂缓: 谨慎推行
技术
轻量级的 RFCs 方法 采纳
RFC(Request For Comments)意即“请求评论”,是一种正式文档,其包含与上下文相关的设计和架构思想,以促进团队协作和 决策,包含了关于Internet的几乎所有重要的文字资料。如果你想成为网络方面的专家,那么RFC无疑是最重要也是最经常需要用到的资料之一,所以RFC享有网络知识圣经之美誉。通常,当某家机构或团体开发出了一套标准或提出对某种标准的设想,想要征询外界的意见时,就会在Internet上发放一份RFC,对这一问题感兴趣的人可以阅读该RFC并提出自己的意见;绝大部分网络标准的制定都是以RFC的形式开始,经过大量的论证和修改过程,由主要的标准化组织所指定的,但在RFC中所收录的文件并不都是正在使用或为大家所公认的,也有很大一部分只在某个局部领域被使用或并没有被采用,一份RFC具体处于什么状态都在文件中作了明确的标识。
ThoughWork认为RFCs 提供了一个决策审计记录,有利于未来的团队成员查看,与此同时记录了组织技术和业务的演进过程。RFCs 可以成为促进演化架构的宝贵工具。不过,为了获得最佳效果,建议组织采用轻量级的 RFCs 方法。如果不限定范围并明确要点,这些文件往往会随着时间的推移而变得越来越长,类似于传统的解决方案架 构文件一样最终被归档和遗忘。
对告警规则的单元测试试验
告警是每个业务都会接触并且需要配置的,越复杂的业务,对应的告警规则也会越复杂,然后告警规则是否有效可靠,我们只能再事故真实发生时,才能检验到。
为此对告警规则的单元测试让团队通过预先、 主动地测试和完善规则,来更好地定义规则,从而增加对规则的信心。这有助于减少误报,并确保报告真正的事件。Prometheus 等工具支持对规则进行单元测试。
通过对依赖进行健康检查化解包幻觉风险 评估
随着AI的发展,出现了一种新的恶意包传播技术,称之为“AI 包幻觉”,当你使用AI工具来生成代码,或者寻求建议时,AI可能向你推荐一部分恶意包,这是由于ChatGPT 以及其他可能的生成式 AI 平台有时会通过幻觉的来源、链接、博客和统计数据来回答,比如当攻击者先向ChatGPT灌输我可以通过某个包来实现某个功能,则下一个提问者提出了类似的问题后,可能会收到建议使用这个包的回答
ThoughWork认为在开发过程中使用 GenAI 工具的团队需要重视这类风险。团队可以 通过对依赖进行健康检查化解包幻觉风险 :在选择依赖之前查看它的创建日期、下载数量、GitHub 评论及星标数、贡献者数量、活动历史记录等。一些依赖健康检查可以在包存储仓库和 GitHub 上执行,而像 deps.dev 和 Snyk advisor 等工具也可以提供帮助
平台
Lokalise 试验
Lokalise 是一个全自动的本地化平台,它支持特定上下文的翻译。使用Lokalise API可以来翻译可本地化的内容。 Lokalise支持多种文件格式的可本地化字符串。一个值得强调的方面是它支持上传整个文件,其中每个键-值对都被视为单独的记录并被翻译。Lokalise 的Web界面提供了便捷的访问方式,供人工审阅员验证翻译结果,或者根据需要简化、重新表达翻译内容。
Kraftful 评估
用户体验(UX)研究平台,比如Dovetail,为组织提供了一个工具,帮助他们了解和改善客户体验。通过这个工具,企业能够迅速、轻松地通过收集和分析来自客户反馈、调查、访谈等渠道的数据,深入洞察客户的需求、偏好和行为。情感分析、客户分割、市场研究、数据分析和洞见生成是产品开发中有价值的任务,而这些正好是大语言模型擅长的领域,因此我们看到了它在产品开发领域存在巨大的颠覆潜力。
Kraftful 是一个自诩为产品构建者副驾驶的工具,也是一种用户体验(UX)研究平台。用户可以将30多种用户反馈来源连接到这个平台,它可以分析数据并识别功能请求、常见投诉、用户喜欢的产品特点,甚至列出您的竞争对手。为了获取更多细节,您可以像向 ChatGPT 或 Google Bard 提问一样,这里的好处是它针对您的数据进行了优化。一旦您确定了要从用户反馈中解决的问题,Kraftful 会基于所有基础数据(包括验收标准)为您生成用户故事,即使对经验丰富的产品经理和业务分析师来说它也是一个出色的助手。
工具
Mermaid采纳
Mermaid 允许使用者通过使用类似 Markdown 的标记语言来生成图表。值得注意的是,它在 GitHub 和 GitLab 等流行源代码存储库中得到原生支持,从而可以在 Markdown 文档中嵌入并轻松更新 Mermaid 图表。 ThoughWork倾向于使用 Mermaid 作为他们的图表即代码工具,因为它易于使用、集成广泛,且支持的图表类型不断增多。
Bloc 试验
Bloc 是 Flutter 的一款响应式状态管理库。在 Flutter 可用的状态管理 选项中,我们想突出 Bloc,因为我们团队在使用该库构建复杂移动应用程序时体验很好。当UI组件通过流和事件接收器与业务逻辑进行通信时,围绕 BLoC 模式 结构化的组织代码实现了业务逻辑与表示层的完全分离。Bloc 在 IntelliJ 和 VSCode IDE 中都提供了良好的插件支持。
Chromatic试验
Chromatic 是一款可视化回归测试工具,可帮助捕捉网络应用程序中的用户界面回归。它的工作原理是拍摄用户界面组件的快照,并在组件发生变化时将其与之前的快照进行比较。Chromatic 是一种托管服务,可与流行的云代码托管服务集成。它建立在 Storybook 之上,进行组件级可视化回归测试。它可以在不同的视口宽度下渲染组件,以进行响应式测试,并与 CI 工作流集成,为每次提交生成用户界面变更集,从而方便审查。
Mob 试验
mob 是一个用于远程结对编程或集体编程中无缝进行git交接的命令行工具。它将所有版本控制工具隐藏在一个命令行界面背后,简单地说,他会为你自动创建临时分支,然后在最终提交的时候把commit合入到主分支中,并删除你的临时分支,可以认为是将一系列git操作合并为一个命令行,方便我们使用。这使参与集体编程会话变得更加简单。它还提供了关于如何远程参与的具体建议,例如,在Zoom中“窃取屏幕共享”,而不是结束屏幕共享,以确保参与者的视频布局不发生变化。
Yalc 试验
Yalc 是一个简易的本地 JavaScript 包管理库以及跨本地开发环境进行发布与包管理的工具。对于有一些限制的 npm link 指令来说,Yalc 是一个更可靠的替代品。在使用多个包的时候 Yalc 特别好用,尤其是当有些包使用 yarn,而有些包使用 npm 的时候。它同样能帮助在发布包到远端之前进行本地的测试。
Github合并队列 评估
GitHub 增加了一个新的合并队列功能,GitHub 合并队列功 ,它允许我们自动排队接收的拉取请求,并将它们合并到特殊分支中,按接收顺序进行排序。然后,我们可以选择自动执行我们自己的“合并检查”,以防止不兼容的提交。这本质上是模拟主干开发(即使 PR 尚未合并到主代码分支中),允许开发人员在上下文中测试其功能,而无需等待批准拉取请求。使用 GitHub 合并队列,即使你不能直接提交到主干,也可以获得主干开发的好处。
Tabnine 评估
Tabnine 是目前炙手可热的编程助手领域的有力竞争者之一。它提供了内嵌的代码补全建议,以及直接在 IDE (Integrated development environment, 集成开发环境) 中进行对话的能力。与 GitHub Copilot 类似,Tabnine 的出现远远早于现在这个各家纷纷大肆炒作的时期,也因此成为了该领域中最成熟的产品之一。与 Copilot 不同的是,Tabnine 使用的模型仅在获得授权的代码上进行训练,并提供了一个可以自行托管的版本,供担心其代码片段会被发送给其他第三方服务的组织使用。Tabnine 既提供有受限制的免费版本,也提供付费版本,后者会有更全面的建议,还提供了一种使用本地模型的模式(尽管功能较弱),供您在没有互联网连接的情况下使用。
语言和框架
Playwright 采纳
使用 Playwright,您可以编写在 Chrome、Firefox 和 WebKit 中运行的端到端测试。 通过使用 Chrome 开发者工具(DevTools)协议(CDP),Playwright 可以提供新功能并消除 WebDriver 中出现的许多问题。 基于 Chromium 的浏览器直接实现了 CDP。不过,为了支持 Firefox 和 Webkit,Playwright 团队不得不向这些浏览器提交补丁,这有时可能会限制框架。
Playwright 的功能包括:内置自动等待,这使得测试更可靠、更易于理解; 浏览器上下文,可让您测试跨标签页的持久会话是否正常工作;以及模拟通知、地理位置和黑暗模式设置的能力。 Playwright 为测试套件带来的稳定性给我们的团队留下了深刻印象,并且喜欢它可以并行运行测试以更快地获得反馈。 Playwright 的其他特色包括更好地支持懒加载和追踪
fast-check 试验
fast-check 是一个为 JavaScript 和 TypeScript 设计的基于属性的测试工具,它能够自动生成测试数据,从而无需创建不同的测试即可仔细检查各种输入,这使得它更容易发现边缘场景。
Htmx 评估
htmx 是一款轻量简洁的 HTML UI 库,近期突然迅速走红。与其他越来越复杂的预编译 JavaScript/TypeScript 框架不同,htmx 鼓励直接使用 HTML 属性来实现诸如 AJAX、CSS transitions、WebSockets 和服务器发送事件等操作。从技术角度来看,htmx 并不复杂,但它的流行让人想起早期网页中超文本的简洁风格。该项目的网站上还提供了一些关于超媒体和网页开发的深入(且有趣)的文章,这显示出 htmx 团队对其目标和理念进行过认真思考。