引言
年初ChatGPT大火,给AI带来了很高的话题度。ChatGPT是内容生成式的AI,作为程序员,我们可以使用更加垂直的编程助手AI,因为之前看Android Framework代码的时候有用到SourceGraph。最近在查看Framework的一些代码资料的时候无意中看到SourceGraph出了一款AI编程助手--Cody,安装使用非常简单,在VS Code试用了一下。觉得挺有意思的,的确可以减轻程序员的一些工作。
快速尝鲜
如果想快速体验,直接注册账号在网页端体验即可。
本地体验
我是在VS Code里面安装Cody AI插件。
配置过程非常简单,就不再赘述了。我主要是分享一下我的使用过程,个人觉得还是挺有意思。以后可以早点下班了 (不是,可以多做几个需求了) 。
使用
我是在VS Code里面打开一个自己的小项目,然后以这个项目作为Cody的上下文Context。 代码是这样的:
Java
public class CategoryActivity extends BaseActivity {
...
//点击按钮跳转到RxjavaActivity
public void rxjava2(View view) {
startActivity(new Intent(this, RxjavaActivity.class));
}
//点击按钮跳转到OkhttpActivity
public void okhttp3(View view) {
startActivity(new Intent(this, OkhttpActivity.class));
}
...
}
没什么特别的,就是在一个Activity里面有很多个按钮,然后点击按钮就跳转到相应的Activity。此时我对Cody说:模仿这个风格,帮我生成跳转到TestActivity的代码,包括TestActivity以及它的xml代码
。
好家伙,这个指令正确地执行了。看着代码一行一行生成,还是有点震撼的。 此时我转念一想,新建一个Activity是不是得在清单注册一下,于是我说:androidmanifest需要改动吗
。
嗯,Cody给了个必要的简单写法。这不能说是错的,虽然没有export之类属性,可是我也没有说要适配版本嘛不是。不过吧,既然是已经以当前项目为上下文了,是不是AI回答的时候也加上export呢(有点吹毛求疵了喂)?
让我再想想怎么刁难它,就用它生成的代码来问它吧:jumpToTestActivity这个函数,我想在CategoryActivity的xml里面定义一个按钮,你参考一下CategoryActivity的xml里面的做法吧
按钮生成是生成了,可是我的风格是这样的啊:
可以看到还是有区别的,我的代码是每次要添加按钮的话就copy一份就好了。当然,也不能说它是错的,因为的说法可能有点歧义了。你参考一下CategoryActivity的xml里面的做法吧
它理解的做法用android:onClick指定回调函数吧,虽然我本意是想它生成完全一样的代码。 于是为了让它把style加上去,我说:不用你重新定义style,你就直接用它里面的MyButton
。
没有达成我希望它做的事情,而且项目里也没有com.example.samsung.testdemo.MyButton。 MyButton其实是style: 于是我说:你搞错啦,我想要的是这样的效果style="@style/MyButton"
这下终于完美达成了。此时我还想调戏一下它,不过刚好达到对话次数的上限50次了,要等24小时才能继续对话,就先到此为止吧。
总结
总的来说,个人觉得AI编程助手还是挺有用的,随着对话越来越多,它越来越能理解你的意图。当然,最好是对话的时候说清楚上下文
,表达的时候最好清晰点。生活中很多人其实说话经常脱离上下文,这样不仅AI会困惑,就连人也会困惑。决定用来开发提速了,真香!这时候灵活的小伙伴已经把AI开发提速,并团队推广,提升团队开发效率
写进OKR了。拥抱AI吧,各位。现在Cody还是免费使用阶段,上手成本低(配置过程极简,我全程用下来几乎没有报错),而且支持中文问答,可以作为程序员的第一款AI编程助手。
彩蛋
后面看看在更加贴近日常开发场景的使用是怎样的,TO BE CONTINUED。