赞
踩
今年初开始尝试使用代码辅助工具。因为比较穷,又怕付完款实际上没有很好的体验,所以就试用了几款。先说一下Codeium,这款是国外的。我将它安装在Visual Studio 2022上试用的。但是不知道怎么回事,反应特别慢有时候海拔Visual Studio给卡崩溃了。但是从chat来看效果其实还可以,不过没有深入比较。
另一款是国内的codegenx,这个是国产的。我将它安装在vscode上,效果不太好,还慢。
我第一款试用的也是目前试用的是Fitten Code,最早一直记不住名字,当时是看公众号的文章看到推荐的。和别的工具基本一样,也是代码自动生成和chat功能都有的。最近这段时间主要用它来做两方面的工作,一个是modern c++程序,一个是文章编写。(因为最近在充电,文章一般是笔记,代码主要是代码练习。)实际上的表现很不错,最开始代码经常会出现预测的不是我想要的情况,但是它支持单字选择或者接受所有代码。这一点比较好,我可以选择性的接受一部分代码。不过随着试用的增多,似乎代码越来越贴近我的需求。
比如:
for (int i = 0; i < 10; i++) { int_arr[i] = dis(rng); str_arr[i] = std::to_string(int_arr[i]); } tim_arr[0] = std::chrono::high_resolution_clock::now(); for (int i = 0; i < 10; i++) { m.insert(std::make_pair(str_arr[i], int_arr[i])); } tim_arr[1] = std::chrono::high_resolution_clock::now(); for (int i = 0; i < 10; i++) { um.insert(std::make_pair(str_arr[i], int_arr[i])); } tim_arr[2] = std::chrono::high_resolution_clock::now(); for (int i = 0; i < 10; i++) { s.insert(int_arr[i]); } tim_arr[3] = std::chrono::high_resolution_clock::now(); for (int i = 0; i < 10; i++) { us.insert(int_arr[i]); } tim_arr[4] = std::chrono::high_resolution_clock::now(); std::cout << "map insert operation spent "<< (tim_arr[1] - tim_arr[0]).count() << " nanoseconds" << std::endl; std::cout << "unordered_map insert operation spent "<< (tim_arr[2] - tim_arr[1]).count() << " nanoseconds" << std::endl; std::cout << "set insert operation spent "<< (tim_arr[3] - tim_arr[2]).count() << " nanoseconds" << std::endl; std::cout << "unordered_set insert operation spent "<< (tim_arr[4] - tim_arr[3]).count() << " nanoseconds" << std::endl;
基本上上面的一段代码我编写完成后面的三个相似的部分就自己生成了。还有一点是如果有些头文件缺少了,我在开头协商#incl
之后,后面自动就给出头文件。不见得每次都对。但基本上都能命中。
当然在chat的时候大部分程序相关的内容回答都是不错的。但也遇到过一些问题比如,他说unordered map中是可以插入std::tuple
的(说map不可以),但是我按照他说的但是编译器报错了。不过它确实提供了一个emplace方法来插入键值对。
我也用过google 免费版的bard(现在改名gemini),它的对话质量(编程方面)基本上都很粗略,很少将清楚。但是fatten code的这方面确实不错。不知道是不是专门只针对编程做了优化,所以又快又好。
你可能会问,我为啥不和copilot或者codex比较。我的答案是,我没怎么用过。因为穷。
期望这家创造fitten code的公司可以越来越好。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。