让AI阅读了20年的源代码

虽然有些迟了,但我现在已经完全沉迷于AI编程了。

把最近在做的事情列举一下的话,

  • 对持续开发20余年的“FlexInspector”源代码的分析
  • 对已使用10年以上的“FIS-100/200”进行源代码分析、故障排查及优化
  • 为开发新一代外观检测操作系统而编写的设计规范书

是。

我们正在加紧推进这项工作。

当然,6000点AI积分转眼间就会用完。

不过,经过这段时间的使用,我对AI编程的看法发生了很大变化。

不仅仅是让AI编写代码

说到AI编程,

“说明需求,请对方编写程序”

首先会想到这种用法。

当然,那也很方便。

不过,对于一家从事软件开发多年的公司来说,我开始觉得另一种用法或许反而更有价值。

就是让AI阅读过去的源代码。

一款开发了20多年的软件,其代码量自然十分庞大。

其中也有一些旧代码。

如果现在重写,有些地方我会改写。

有些地方设计意图不太容易理解。

另一方面,这段代码中也融入了20多年来在实际工作中遇到的问题以及解决这些问题的经验。

仅靠编写新代码是无法获得的。

以现在的视角重新审视20年前的代码

FlexInspector是一款经过20多年持续开发的外观检测软件。

当然,开发环境也与现在不同。

操作系统也不一样。

图像处理库也不一样。

编程思维也在发生变化。

尽管如此,由于这是在实际生产现场边运行边不断改进的软件,其中蕴含着大量专业经验。

以前,必须由人工逐行解析这些代码。

这可真不容易。

然而,如果使用AI的话,

“这节课在做什么?”

“这样持有指针是否存在风险?”

“为什么这个处理要按这个顺序进行?”

“如果迁移到当前的库,哪些部分可能会出现问题?”

我们可以一边查看代码,一边就这些内容进行相当深入的讨论。

当然,我并不是完全相信AI给出的答案。

最终还是由人来判断。

不过,解读代码的速度发生了很大变化。

在故障排查中也运用AI

使用超过10年的FIS-100/200也是如此。

对于已经运行了很长时间的软件,不能简单地认为“重新开发一下就行了”。

目前已在工厂投入运行。

客户正在使用。

还需要与过去的兼容性。

此外,有些部分由于多年的改进而变得更加复杂了。

最近,在处理出现的故障时,我一边与AI一起分析内存转储和源代码,一边……

“真的就是这里的问题吗?”

“还有没有其他结构相同的代码?”

“与其进行局部修改,不如从设计上加以修正才对吧?”

目前调查已经进行到这一步了。

修复一个故障并不意味着就结束了。

以此为契机,对整个旧代码进行了全面审查。

如果没有人工智能,这项工作是很难完成的。

迈向新一代外观检测操作系统

有趣的是,越是深入研究过去的代码,越能看清接下来应该开发的软件的模样。

20年前的FlexInspector。

10年前的FIS-100/200。

此外,即将开发的新一代外观检测操作系统。

这些已经不再是各自独立的项目了。

利用人工智能分析过往的软件。

对在此过程中发现的问题及设计上的课题进行梳理。

思考一下为什么会采用这种设计。

然后,将这些见解反映到下一代系统的设计规范中。

也就是说,

将过去20多年积累的软件资产转化为未来10年的设计资产。

工作就是这样进行的。

在人工智能时代具有价值的事物

我认为,借助人工智能,编写代码的成本肯定会逐渐降低。

正因如此,今后重要的或许不仅仅在于“拥有多少代码”。

在编写该代码的过程中,

到底哪里出了问题?

为什么会采用这种设计呢?

现场发生了什么问题?

是怎么修好的?

正是这些经验的积累。

人工智能似乎将成为发掘这一潜力的极其强大的工具。

20多年前编写的代码,如今借助人工智能重新焕发了价值。

我认为,对于一家长期从事软件开发的公司来说,这确实是一个相当有趣的变化。

不过,如果真的开始这么做,就会遇到一个问题。

6000 AI积分根本不够用。