在当今软件开发领域,大型语言模型(LLM)展现出了巨大潜力,同时也暴露了传统软件代码的长期缺陷:代码混乱、难以安全修改,且底层逻辑往往不透明。MIT计算机科学与人工智能实验室(CSAIL)的研究人员正在探索一条更加'模块化'的前进道路。
传统软件开发的困境
现代软件开发面临的核心挑战是什么?正如MIT教授Daniel Jackson所指出的,'功能碎片化'是软件可靠性的主要障碍。以Instagram为例,添加一个'share'按钮的功能并非完全自包含,而是分散在处理发布、通知、用户认证等多个服务中。所有这些代码片段必须仔细协调,任何改动都可能在其他地方产生意外副作用。
"我们今天构建软件的方式,功能不是局部化的。你想了解'sharing'是如何工作的,但必须在三四个不同的地方寻找它,当你找到它时,连接关系隐藏在低级代码中。"Jackson解释道。
概念与同步的革新方法
为了解决这一难题,MIT研究团队提出了'概念'和'同步'的创新架构模式。
什么是概念?
概念是一个系统中的独立功能单元,每个概念都设计用来完成一项特定任务,包含其状态和可执行的操作。例如,点赞、评论、分享等功能可以各自成为一个概念。
什么是同步规则?
同步规则则描述了概念之间如何交互的高层规则。开发者可以使用一个小的领域特定语言(DSL)直接阐明这些连接关系,而不是编写混乱的低级集成代码。
"你可以将概念视为完全干净和独立的模块。同步规则则像合同一样,它们精确地说明了概念应该如何交互。"Jackson解释道,"这很强大,因为它使系统既更容易被人类理解,也更容易被像LLM这样的工具正确生成。"
DSL:连接人类与AI的桥梁
研究团队设计的DSL是这一方法的关键创新。在这个语言中,规则简单明了:一个概念的操作可以触发另一个概念,从而使一个状态的变化与另一个状态保持同步。
"为什么我们不能像读书一样阅读代码?我们相信软件应该是可读的,并且基于我们的理解来编写:我们希望概念映射到熟悉的现象,同步规则代表我们对它们组合时发生什么的直觉。"博士生Eagon Meng表示。
这种方法的好处超越了代码清晰度。由于同步规则是显式的和声明式的,它们可以被分析、验证,当然也可以由LLM生成。这为更安全、更自动化的软件开发打开了大门,AI助手可以提出新功能而不会引入隐藏的副作用。
实际应用案例研究
在真实世界的案例研究中,研究团队展示了这种方法如何将原本分散在多个服务中的功能整合在一起。
研究人员将点赞、评论和分享等功能分别分配给单一概念——类似于微服务架构,但更加模块化。没有这种模式,这些功能分布在许多服务中,难以定位和测试。使用概念与同步方法,每个功能变得集中且可读,而同步规则精确地说明了概念之间的交互方式。
研究还展示了同步规则如何提取通用关注点,如错误处理、响应格式化或持久化存储。而不是在每个服务中嵌入这些细节,同步规则可以一次性处理它们,确保系统的一致性。
更高级的应用方向
概念与同步方法还有更高级的应用可能:
- 分布式系统协调:同步规则可以协调分布式系统,保持不同服务器上的副本同步
- 数据库交互:允许共享数据库以干净的方式交互
- 最终一致性:弱化同步语义可以实现最终一致性,同时仍然在架构层面保持清晰性
软件开发的范式转变
Jackson认为这种方法可能导致软件开发文化的更广泛转变。一个想法是创建'概念目录',即经过充分测试的、领域特定的概念共享库。应用开发将不再是从头开始缝合代码,而是选择正确的概念并编写它们之间的同步规则。
"概念可能成为一种新的高级编程语言,同步规则是用这种语言编写的程序。"
"这是一种使软件中的连接关系可见的方式,"Jackson说,"今天,我们将这些连接隐藏在代码中。但如果你能明确地看到它们,你就可以在更高层次上推理软件。你仍然必须处理功能相互作用的固有复杂性。但现在它是公开的,而不是分散和模糊的。"
行业专家的评价
这一创新方法获得了行业专家的高度评价。
"多年来,我们清楚需要更好的方式来描述和指定我们希望软件做什么,"兰卡斯特大学荣誉教授、华盛顿大学附属教职Thomas Ball表示,"LLM生成代码的能力只是加剧了这一需求。Meng和Jackson在概念设计方面的工作提供了一种有希望的方式,以模块化方式描述我们对软件的期望。他们的概念和规范非常适合与LLM配对,以实现设计者的意图。"
弗吉尼亚大学副教授Kevin Sullivan评价道:"基于底层计算机器的抽象为人类使用构建软件,给世界带来了难以理解和使用、成本高昂、令人沮丧甚至危险的软件。影响(如在医疗保健领域)是毁灭性的。Meng和Jackson扭转了这一局面,坚持基于人类理解的抽象来构建交互式软件,他们称之为'概念'。他们将富有表现力的数学逻辑和自然语言结合起来,指定这类有目的的抽象,为验证它们的含义、将它们组合成系统以及将它们精炼为适合人类使用的程序提供了基础。这是软件设计理论和实践中的一个新颖且重要的方向,值得关注。"
未来展望
研究人员希望他们的工作能够影响行业和学术界在AI时代如何看待软件架构。
"如果软件要变得更加可信,我们需要编写能够使其意图透明的方式,"Jackson说,"概念和同步规则是实现这一目标的一步。"
这项工作得到了CSAIL联盟机器学习应用(MLA)倡议的部分资助。在资助时,倡议董事会成员包括英国电信、思科和安永。
结语
MIT研究团队提出的概念与同步方法代表了软件开发领域的一次重大创新。通过将系统分解为独立的概念和明确的同步规则,这种方法不仅使软件更加模块化、透明和易于理解,还为AI辅助编程开辟了新的可能性。随着LLM在代码生成方面能力的不断提升,这种基于清晰架构模式的软件开发方法可能会成为行业标准,使AI能够更安全、更可靠地协助开发人员构建复杂系统。
这一研究不仅解决了当前软件开发中的实际问题,还为未来AI与人类协作编程提供了新的思路。正如Jackson所强调的,软件应该像书籍一样可读,而概念与同步方法正是朝着这个方向迈出的重要一步。








