公司里有一些开发的同事老是吐槽工作忙,天天加班,我想很大可能是没利用好轮子和AI工具,总是自己瞎写耽误时间。
不知道大家发现没有,其实软件开发过程中很多都是引用轮子和组件,如果你非常熟悉Github上的开源代码,它们可能会覆盖你80%以上的开发工作,也就是说你无需自己写很多代码,只要会装轮子,也能出色地完成工作。 不光是软件开发,网站开发、机器学习、数据科学、网络爬虫等各种编程场景都是如此,你需要写的代码并不多,前人早已经帮你写好了,而且写的可能比你出色很多。
由于生成式AI的出现,编程成为最大的受益者之一,类似于Github copilot这类AI编程模型就可以帮你找轮子,自动完成代码的编写,你能获取代码建议,构建、调试和测试应用程序,编程效率会指数级的提升。
最近看到国内有一款类似的产品-代码小浣熊Raccoon,它是商汤开发的AI编程工具,你可以在VSCode上安装其插件,和其他VScode插件一样,用起来很方便。 用了几周下来,我觉得Raccoon主要有两大核心功能,首先是代码补全这种主流的AI辅助编程功能,当你在编写Python或其它代码时,Raccoon会自动提示代码补全,省得你再手动写一大串代码。
比如我想使用Python sklearn库写一个线性回归预测模型,Raccoon能直接根据已有代码补全模型代码。
其次是对话自动生成代码功能,你直接提问"Python如何生成Excel文件"等问题,它会给出代码建议,就像在ChatGPT聊天问答一样。
这种功能非常实用,可能你只知道自己想要什么,完全不懂怎么代码实现,Raccoon的代码问答功能就能直接根据你的描述来生成建议和代码。
其他Raccoon能实现的功能还有代码纠错(纠正语法错误),代码翻译(比如把Python代码翻译为JS)、代码解释(解释代码是干嘛的)、代码重构(调整代码结构)等等,总得来说Raccoon在AI编程上是功能比较完善的。
Raccoon可不仅仅支持Python,它还支持Java、JS、C++、SQL等几十种编程语言,基本做到了主流语言全覆盖。
而且你不光可以在VSCode上使用Raccoon,像IntelliJ IDEA、Jetbrains Pycharm等各种主流的IDE编辑器也都支持Raccoon。
我觉得Raccoon等AI编程工具的出现会极大地改变现在的开发方式,超过80%的代码工作都可以交给AI,程序员以后可能更多的是思考怎么进行优化创新,以及如何利用好AI。
在vscode上使用代码小浣熊Raccoon
可能有不少人还不知道如何使用VsCode的插件功能,这里简单介绍下如何在VsCode上安装和使用Raccoon,大致分为三个步骤:
1、安装Raccoon插件
你可以在VsCode插件库搜索“Raccoon”,会出来Raccoon插件,点击安装即可,安装好后会出现Raccoon的介绍和使用说明,可以大致看下。
安装好后,会在Vscode侧栏出现Raccoon的图标,也就是它的功能区。
2、注册登录Raccoon Raccoon需要登录才能使用,你需要免费注册个Raccoon账号,然后登录就能在Vscode上使用Raccoon了。
3、在代码区使用Raccoon
以代码补全为例,你可以先在VsCode上建个Py文件,然后写Python代码,按下热键 Alt + /,Raccoon就会为你提供代码建议。
如下是在python连接oracle数据时,Raccoon补全的代码
接下来,我们使用Python sklearn库在Raccoon的帮助下来实现景区客流预测,完整代码如下:
import numpy as np import pandas as pd from sklearn.model_selection import train_test_split from sklearn.tsa import ARIMA from sklearn.metrics import mean_squared_error # 生成模拟数据 np.random.seed(0) days = pd.date_range(start='1/1/2020', periods=365, freq='D') series = np.random.randn(len(days)).cumsum() + 20 series = series + np.random.randn(len(days)) * 10 # 添加一些噪声 series = series.reindex(days) series = series.interpolate() # 填充缺失值 # 转换数据为适合的时间序列格式 data = pd.DataFrame({'visitors': series}) data['date'] = data['date'].apply(lambda x: x.strftime('%Y-%m-%d')) data = data.set_index('date') # 分割数据为训练集和测试集 train, test = train_test_split(data['visitors'], test_size=100) train = train.dropna() test = test.dropna() # 使用ARIMA模型进行预测 model = ARIMA(train, order=(5,1,0)) # 选择ARIMA模型的参数 model_fit = model.fit(disp=0) # 预测未来一个月的客流 forecasted_data = model_fit.forecast(steps=30) # steps=30预测未来30天的数据 mse = mean_squared_error(test[-30:], forecasted_data[0]) # 计算预测误差 print(f"Mean Squared Error: {mse}")
以下是Raccoon在进行时间序列建模过程提供的代码,能准确的提供模型训练、误差检测等建议。
你也可以直接向Raccoon进行提问:生成一段Python,使用sklearn实现未来一个月的景区客流预测,请自己生成数据。
连续按两次Ctrl键,即可唤醒侧边栏的代码助手,输入prompt即可
显示结果如下
Raccoon会根据你的需求生成一段完整Python sklearn客流预测代码,你只需要稍作修改便可以作为自己的项目代码。
代码小浣熊Raccoon功能清单
前面演示了如何在Raccoon上进行代码补全和对话生成代码,以下列举下Raccoon各项功能的使用场景和特点,方便对号入坐去使用。
(1)代码补全功能 热键 Alt + /激活,使用场景非常多,适用代码初学者和开发老鸟,能极大提升编程效率
(2)对话自动生成代码 连续按两次Ctrl键激活,通过对话方式生成代码和建议,媲美ChatGPT代码功能
(3)代码解释和纠错 复制代码后激活(需选择修正),能纠正代码语法错误及不规范情况,使用非常方便
(4)代码翻译 复制代码后激活(需选择翻译),如果你使用多种编程语言,该功能会非常实用,直接在多语言间进行代码转换。
(4)编程学习 一般初学编程常常因为不会搜索,在某一个语法或功能上纠结很久,Raccoon的对话功能可以快速帮你解决问题,所以初学者可以把它当作一个编程学习工具,相当的实用。
总结
在AI快速发展的今天,AI辅助编程或者自主编程必然会成为大势所趋,像Raccoon这样的AI编程工具已经可以解决大部分编程问题,我们应该好好利用,积极拥抱。