近期,我一直在研究将人工智能大语言模型与低代码相结合的工作。在这个过程中,我遇到了一些问题。例如,用户经常希望能够修改一些配置属性,而这些属性通常是通过逻辑控制来实现的,而不是硬编码的固定值。另外,我们发现使用类似ChatGPT这样的AI工具生成的内容有时缺乏约束性。此外,在生成局部代码时,我们也无法进行工程化或模块化的代码生成。
还有一个重要的问题是,人工智能是否意味着程序员将面临被淘汰的威胁?然而,最近我重新学习了软件工程课程,开始有了一些新的想法。低代码开发实际上可以追溯到模型驱动工程(MDE),而MDE是基于软件工程的模型。因此,我想知道是否可以结合人工智能和软件工程,构建一套规范化的代码生成模型。通过这个生成模型生成的代码既能确保准确性,又能确保符合规范。
如果这个假设成立,低代码和人工智能的发展将为软件开发提供新的模式。这并不意味着取代程序员,相反,程序员需要具备软件工程化思维和与AI交互的能力。这将促进程序员这个职业的专业化。
一、低代码的现状
当前的低代码开发还处于一个野蛮发展的时代,缺乏统一的规范和行业标准。虽然低代码平台可以通过可视化的方式快速构建应用程序,但缺乏规范化的开发过程,容易导致代码质量和可维护性的下降。因此,推动低代码平台的规范化发展迫在眉睫。
二、软件工程的挑战
传统的软件工程依赖于现有的软件过程模型,但这些模型往往是基于经验的总结,无法完全适应不断变化的用户需求和系统风险。软件工程面临的挑战是如何在不断变化的环境中保持代码质量和可维护性。低代码的出现为软件工程带来了新的思路和机会,可以通过规范化的低代码开发过程来提高软件工程的效率和质量。
三、人工智能的辅助代码生成
人工智能技术的发展降低了程序员学习软件工程的门槛,通过自然语言生成代码可以辅助开发过程。然而,目前的人工智能模型如ChatGPT只能生成局部代码,无法实现代码的模块化。为了实现更高效的代码生成,需要进一步发展人工智能技术,使其能够生成完整的、符合规范的模块化代码。
四、结合人工智能和软件工程的新思路
结合人工智能和软件工程的新思路是利用大语言模型让业务人员或用户通过自然语言生成对应的业务模型,然后通过模型驱动工程来生成对应的业务代码。最终实现整个系统的开发。这种方法将大大提高开发效率和质量,同时也能更好地满足不断变化的需求。
五、不会取代程序员,而是提高要求
尽管人工智能和低代码的发展给软件开发带来了新的模式,但不意味着取代了程序员。相反,这对程序员的要求更高了。生成的是建模语言,程序员需要具备软件工程的知识,才能在生成的代码基础上进行微调和优化。未来的程序员不再是简单的"码农",而应具备广泛的技能和知识,包括软件工程、人工智能等领域的综合能力。
低代码和人工智能的结合为软件工程的规范化和计算机行业的变革提供了新的机遇。通过推动低代码平台的规范化发展,结合人工智能技术辅助代码生成,可以提高软件开发的效率和质量。然而,这并不意味着取代了程序员,相反,程序员需要不断提升自己的技能和知识,才能胜任未来的软件开发工作。低代码和人工智能将成为软件工程的有力工具,推动整个计算机行业朝着更规范化、高效化的方向发展。