2023年6月16日,全球知名软件及技术咨询公司Thoughtworks举办了技术雷达28期媒体深度解析会。Thoughtworks中国区CTO徐昊,中国区港澳总经理、全球技术顾问委员会成员刘尚奇,中国区社会影响力与可持续发展负责人周妮娜受邀出席,并分享了对本期技术雷达最新主题的专家意见。
关于技术雷达
作为技术领域的先驱者,思特沃克一直致力于推动创新和引领行业发展。我们的使命是支持卓越软件并推动 IT 行业革命,由此,技术雷达应运而生。至今,技术雷达发布已经历经十四载。
技术雷达是Thoughtworks每半年发布一期的技术趋势报告,由Thoughtworks全球各地的20多位资深技术领袖组成的技术雷达技术顾问委员会(TAB),依托我们在解决客户面临的严峻业务挑战时获得的观察结果、对话内容和一线经验,反复总结讨论提炼而来,旨在以清晰脉络向从CTO到开发人员在内的各类利益相关方提供高信息量的行业洞察。
技术雷达的四个象限
技术雷达使用图形,以条目展示不同的技术内容,每个条目对应一项技术。我们把条目归类于技术、工具、平台、语言和框架四个象限,而采纳、评估、试验和暂缓环则代表我们对其作出的成熟度的评估。软件领域瞬息万变,我们追踪的技术条目也如此,它们在雷达中的位置会随技术趋势而改变。
技术雷达的环
第28期技术雷达涵盖107个条目和五大主题,主题包括《实用人工智能的飞速崛起》、《易用的无障碍设计》、《Lambda 陷阱》、《数据分析和人工智能中的工程严谨性》以及《声明,还是编程?》。本次技术雷达媒体发布会对以下三个主题进行了深入解析:
实用人工智能的飞速崛起
在过去几个月里,类似 ChatGPT 这样的工具已经彻底改变了人们对人工智能的认识,并使得这类工具开始被广泛使用。作为一个已经”阅读”了数十亿个网页的大型语言模型(LLM),ChatGPT 可以提供额外的视角,协助完成不同的任务,包括生成创意和需求、创建代码和测试等。
对于人工智能的应用,技术雷达建议不要过度或不当使用。使用这些人工智能工具可能会存在知识产权和数据隐私方面的担忧,包括一些尚未解决的法律问题,因此我们建议企业在使用前征求其法律团队的意见。现今,AI 模型能够生成一个良好的初稿。但生成的内容始终需要由人类监测、验证、审查和负责任地使用。如果忽视这些预警,机构和用户可能面临名誉和安全风险。甚至有些产品用例也提醒用户,“AI 生成的内容可能存在错误。在使用前请确保它的正确性和合理性”。
“ChatGPT足够惊艳,但如果不能安全的为我所用,或是能找到类似的解决方案,那只会带来恐慌。” Thoughtworks中国区CTO徐昊在对《大语言模型的两条道路》这一话题解读时表示。
在大语言模型的使用上,Thoughtworks中国区CTO徐昊认为当下可以分为两种方式。“一种方式基于传统的机器学习,源自迁移学习(Transfer Learning)逻辑。既然存在一个预先训练的模型(pre-trained model),那么采用更接近某个特定领域的数据,进行迁移学习,就可以将预先训练的能力迁移到不同的领域。”徐昊解释道。在本期《技术雷达》中,我们提及了领域特定的大语言模型(Domain Specific LLM),使用领域特定数据对通用大型语言模型进行微调能将它们用于各种各样的任务,包括信息查询,增强用户支持和内容创作。这种实践已经在法律和金融领域展现出现它的潜力。另外, 自托管式大型语言模型(Self-host LLM)也已经成为现实,自托管有许多好处,比如可以更好地控制模型在一些特定使用场景的微调、提高安全性和隐私性,以及支持离线访问。然而不可避免的是,这种方式可能保留或二次分享您的数据,这会对保密信息和数据的所有权带来风险,同时消耗的成本也应该纳入考量因素。
另一种方式基于大语言模型本身的阅读理解和推理能力。徐昊认为:“在这种方式下,不需要复杂的数据收集,昂贵的GPU,长时间的训练。通过几次对话修正,就可以将大语言模型迁移到您所希望的领域。”比如在本期《技术雷达》中提到的提示工程和LangChain。前者指的是为生成式 AI 模型设计和优化提示的过程,以获得高质量的模型响应。这个过程包括精心设计特定、清晰易懂和与所需任务或应用相关的提示,以引导模型输出有用的结果。而后者是一个用于构建基于大型语言模型(LLMs)应用的框架。这些模型已经引起了一场生成式人工智能在各种场景下的竞赛。
在上下文构建方面,徐昊认为,LLM的未来之路仍然存在争议,如何进行选择,将来的主流模式是什么,仍然需要业界探索。
易用的无障碍设计
多年来,无障碍设计一直是备受组织重视的因素。在本期技术雷达中,Thoughtworks着重展示了团队在工具和技术方面经验的增长,这些经验使开发具备了更好的无障碍设计。在条目设计中的无障碍注解中,我们推荐了Figma的无障碍性注释插件,包括The A11y Annotation Kit, Twitter 的 Accessibility Annotation Library 和 Axe 的工具集 Axe for Designers。这些工具能促进团队内的沟通,帮助团队从工作的开始就考虑到文档结构、语义化的 HTML 和替代文本等重要的元素。而像是 axe DevTools、Accessibility Insights for Web 或 ARC Toolkit 等工具,可以帮助从业者实现智能辅助无障碍测试。我们很乐于看到人们对无障碍设计的重视,为更多的人提供改进后的功能访问方式。
“为了避免进一步恶化的社会排斥,拆掉无形的数字围墙是每一个技术工作者和企业的重要责任。” 针对如何实现无障碍设计,Thoughtworks中国区社会影响力与可持续发展负责人周妮娜带来了题为《拆掉数据围墙——实现信息的可访问性和易用性》的解读。她指出:“在数字化时代,许多群体不得不面对由于年龄、教育水平、残障程度、收入、地理位置等因素导致的数字筑墙。” 这些困境使堵在数字筑墙之外的数字弃民逐渐被物理世界排斥,举步维艰。为了消除社会排斥,每个技术工作者和企业都有责任将数字包容和信息无障碍技术融入产品和组织中。
负责任的企业和产品团队应该关注什么,又如何坚持长期主义将可及和易用的无障碍技术融入到产品开发的端到端流程呢?根据Thoughworks自身系统改造和服务客户的经验,周妮娜总结了以下四个维度的方法:
- 从人的深层需求出发找到通用性设计的方向
- 早期采纳无障碍技术以降低获客成本
- 在敏捷交付全生命周期中融入无障碍实践和工具
- 提升企业文化作为推动数字包容的基石
技术与人和社会的关系是相互交织的。未来对无障碍产品和服务的需求必将增加,如果不提前做好准备,企业的改造成本将大幅增加。无法提供无障碍服务的企业也将逐渐失去庞大的少数群体用户,处于商业竞争中的劣势地位。
Lambda 陷阱
无服务器函数 AWS Lambdas 越来越频繁地出现在架构师和开发者的工具箱中,并被用于实现各种基于于云基础架构的任务。然而,就像许多有用的东西一样,有时候解决方案开始时简洁实用,但随着不断成功、持续演进,最终违反范式中规定的约束、变得沉重不堪,终遭弃用。在本期技术雷达中,我们将 Lambda 陷阱作为主题之一,这是因为在看到许多无服务器风格解决方案成功应用的同时,我们也从项目中听到了许多警示性的故事,比如当涉及到复杂执行和跨多个相互依赖的 Lambdas 的数据流时,有可能会导致 Lambda 弹球反模式。在代码层面上,根本不可能将领域概念和所涉及的多个 Lambdas 之间做简单映射,这使得任何改变和添加都具有挑战。
Thoughtworks 中国区港澳总经理、全球技术顾问委员会成员刘尚奇在技术雷达新闻发布会上以《Lambda陷阱:通过从微服务迁移到整体架构来降低 90% 的成本?》为题,发表了自己的看法。
刘尚奇认为:“无服务器函数并不是解决所有问题的灵丹妙药。 在采用它们之前需要考虑其局限性并进行权衡取舍。 无服务器函数的挑战之一是管理它们的复杂性和依赖性。 随着应用程序的增长和发展,它们可能需要越来越多的无服务器功能来处理不同的任务和事件。 这可能会导致无服务器功能变得过多、相互依赖且难以维护的情况。 这就是我们所说的 Lambda 流沙。”
像所有的技术解决方案一样,无服务器有其适宜的应用场景,但它的许多功能在使用时都需要权衡利弊。刘尚奇建议,无服务器功能最适合简单、无状态和短期任务,这些任务可以从云的可扩展性和成本效益中受益。 对于需要状态管理、数据一致性或事务完整性的更复杂或长时间运行的任务,建议使用其他架构或技术。
可以尝试的替代方案之一是基于函数的无服务器架构转向更粗颗粒度的微服务架构甚至模块化单体。 单体是包含系统所有功能和逻辑的单个应用程序,与微服务相反,微服务是相互通信的小型独立服务。 单体应用传统上被认为是过时和不灵活的,但一些公司声称他们可以通过从微服务切换回 Monoliths 来降低成本和复杂性。这也反应了当下行业应对架构复杂化的反思。
架构风格的选择需要考虑诸多因素,例如应用程序和组织的大小、复杂性、领域、要求和目标等。无服务器功能是构建基于云的应用程序的强大工具,但它们并非没有挑战或限制。 开发者需要小心Lambda陷阱。
以上是Thoughtworks对于第28期《技术雷达》中三个主题的解读,更多主题和条目请访问我们的网站查看完整版。《技术雷达》尝试尽可能多地捕获软件行业的演进趋势,为了给新的内容腾出空间,我们会调整每期出现在雷达中的条目,有些近期没有更新的内容可能会被挪出,但略去某项技术并不表示我们不再关心它。任何宏观的变革,都会有一些微小的信号,我们会持续关注这些微小的改变,支持卓越软件事业的发展,直至掀起 IT 革命。