AI工具做开发设计
要开发一个软件的许可证功能,里面要考虑的因素比较多,现在AI工具已经有了沟通的能力,就想着反过来,让AI工具作为一个架构师做设计,设计出方案来评审。
先把系统的大概技术栈,和许可证的一些基本要求给到AI工具,让AI工具对于没有指出的地方则先自行设计方案,要注意平衡一下实现的难度和安全性。这是因为安全和成本是一对矛盾因素,越安全则越难实现,成本越高。
AI工具接收到请求后,很快就出了一套方案。但从方案来说,是有点不太理想的,看起来信息还是挺多的,但总感觉到处都是有漏洞的,不太敢使用。如果没有让AI工具自行发挥,则它就会变成每个点都列几个选项来让选择,但这些选择是比较纠结的,因为有点片面了。
思考一下这里的问题在哪里。如果是人作为架构师来设计的话,会有一个平衡思维在里面,而AI工具更多的是把很多东西列出来供选择。比如作为许可证,需要在离线的情况下使用,就在这个信息有限的情况下,人思考的方案会优先用私钥对数据进行签名、公钥验证签名来防篡改,然后再用可逆加密算法AES来加密一下公钥,这样可以保护一下公钥防止被更换掉。如果需要进一步安全,则可以对代码进行扰乱,防止反编译源码来破译AES加密的秘钥。这种思路是根据情况一步步升级这个安全,如果还要进一步加强安全,可能就需要购买加密硬件了,这个明显是不合理的,因为这个并不是客户要的加密,而是许可证需要的加密,购买硬件的费用客户肯定是不会出的。
对于AI工具来说,出的方案是让选择用RSA算法还是HASH算法或者AES算法,然后再问是否需要扰乱代码,再问要防止技术人员破译许可证到什么程度(比如不能改、看不到、反编译不了等),这些问题其实是希望AI工具自行考虑一个比较优的方案的,甚至给出这样选择的原因。从这里看,感觉AI工具思考的维度貌似是按技术点来拆分的,与人的按功能来分的思维是有比较大差别的。而且考虑的时候,只考虑如何实现这一个维度,但人考虑的维度则比较丰富,比如实现的复杂度,多方是否可以接受等。
不仅仅考虑技术,应该是一个经验丰富的架构师应该具备的基本素质。虽然AI工具也可能具备这些素质,但需要给一些例子,让它理解真正需要输出什么,而无法直接就作为一个经验丰富的架构师,给出一个可以直接采纳的可执行的方案。这就给人提出了一个要求,不是直接说“作为一个经验丰富的架构师”就可以,而是需要给出一些具体的要求。这些要求也不是直接能够想出来的,需要经过一些实践,自己总结出来,或者让AI工具分析一下再总结出来。
可能挖掘AI工具的能力,用好AI工具,将是以后人与人拉开差距的一种方式。
夜雨聆风