老板出钱,给我们用 Cursor 啦
今天上午老板叫我们开会,说准备明年给我们使用 Cursor,主要是希望能提效,而我自然也很开心,因为我之前就是 Cursor 的重度使用者。当时使用 Cursor 主要是希望能自己在工作中提效,从而抽出一些时间去学习其他的东西。但因为价格有些贵,所以续续费了两个月就停止了。
现在马上就要重新使用 Cursor 了,我又想到了关于可以提交方面的事情,我们可以更快的去完成工作,而多余的时间我们就可以学习其他的东西。可是学习什么东西呢?如果我们所学习的这些东西,最终都是用AI来运用,那我们学到的东西还有意义吗?
沦落到要给给 Ai 改bug
由于目前 AI 可以帮我们生成大多数代码,甚至质量比我们自己写的还要好,只要我们设置足够好的规则,那 AI 就会按照规则行事,但依然逃不了的是当项目比较大的时候,或者要操作多文件的时候,AI 依旧可能会犯错,甚至 AI 所写的代码从而引发了一些bug,它自己可能也没有办法解决,这个时候就需要人为来干涉或者去解决bug。
核心问题就在这一点,这个代码从一开始到最终不得不自己去解决AI所写的bug,我们很有可能都不知道 A I究竟写了什么样的代码,这个时候如果让我们去解决这些bug,我们首先应该知道这些代码究竟在做些什么。
想改bug,先读懂 AI 写的代码
那就衍生出来第一个技能,就是如何快速的去阅读代码?
如果在一个文件里面有500多行代码,有十几个函数,每一个函数有几十行代码,那我们未必能快速知道这些函数究竟在做些什么,我们当然没有精力去一行一行读函数里面究竟写的是什么?
单一职责
此时函数的名字就显的格外重要,如果这个名字写的足够好,我们就可以单独通过这个名字,知道这个函数究竟在做些什么,而不需要把里面的代码都看一遍。
但问题是如果一个函数负责了太多的功能,那这个函数名字就会变得不好取。因为它不能每一个功能都通过and或者or进行连接,从而通过一个名字去表示这个函数的众多功能。从这一点看,一个函数只做一件事情至关重要,因为他决定了这个名字究竟该怎么取。
业务优先
当一个函数写好了它的名字,我们看代码时,就可以快速知道这个函数的功能是什么。
但还有一个问题:一个页面十几个函数,我们要每个函数都看一遍吗?
我们知道不同的函数有不同的意义,有的函数可能是子组件触发过来的事件,有的函数可能只是为了调取一个接口,不同的函数都承载着不同的功能。有的函数处理具体技术层面的事情,有的函数处理业务方面的事情。
我们去看代码,本身就应该先理解这些业务方面的代码究竟是什么,从外向内的去一步一步进入,所以写代码应该要确保,让完全没有看过这些代码的人,能以第一时间看到业务相关的代码,从而理解这些代码,究竟在做些什么。
规范
当然了,这个不仅表现在该页面函数命名的规范,还表现在整个项目中,所有函数命名要保持一个统一的规范,不仅是函数,包括变量,常量,类型,接口,枚举等等的命名,还有书写顺序等。
当所有的这些都保持在同一个规范时候,阅读代码的人就会以一个比较高的效率去读懂这些代码,也就可以更快的知道这些代码究竟在做什么,从而进行解决bug。
最后的感悟
当然,由于目前我还没有使用 Cursor,我的AI代码生成的质量,还达不到这么智能,所以这些规范都需要我自己去写。而即使像 Cursor 这样的 AI编辑器,它所生成的代码一样不能完全保证质量很高,甚至当范围比较大的时候,很有可能会出现质量下滑的情况。
如果最终需要我们去阅读 AI 的代码,甚至是帮 AI 改bug,还是希望 AI 所做的任务并不是去写它的代码,而是我们有一些自己想写成什么样代码的一些风格规范或者想法。
而 AI能懂我们的意思,并且写出的代码是我们想要的代码,否则即使 AI 完成了同样的功能,在用户的角度来看几乎是一样的。但当需要我们进行去维护的时候,就犹如我们去维护别人写的代码一样,即使去改一个简单的bug,也担心它会连锁性的影响多个地方。
所以我还是认为,AI 可以帮我们写代码,但我们对代码的掌控感不能降低。