今天,在百度2023世界大会上,文心大模型4.0正式发布,而在大洋的彼岸,因为大模型代表ChatGPT之类的AI编码工具来势汹汹,作为全世界每个开发者最爱的代码辅助网站,Stack Overflow的CEO Prashanth Chandrasekar宣布,Stack Overflow裁员一百多人,占员工总数的28%。
在大模型席卷全球之前,Stack Overflow的形势还一片大好,在去年掀起了一场招聘狂潮,整个公司的员工人数都翻了一番,达到了540人。
然而,自从去年11月OpenAI发布了ChatGPT后,一切都变了。因为AI聊天机器人提供的帮助,比5年前的论坛帖子更加具体。通过LLM,开发者可以即时更正确切的代码、优化建议,以及每行代码正在执行操作的说明。
虽说目前LLM提供的答案也并不是100%可靠,但代码具有独特的能力,只需在IDE集成开发环境中进行测试,即可立即验证代码了,这一切都使写代码成为了ChatGPT的理想用例。
因此,Stack Overflow的流量大大减少,ChatGPT、GPT-4驱动的Github Copilot等AI编程工具,都成为了码农的新去处。无独有偶, AI编程工具也在改变中国开发者的开发习惯。
无需花费大量时间和精力在开源库或Java自带的库中苦苦寻找适合的函数;无需通过搜索引擎在无数个相似的、Demo级的函数中“拔大个”,比较不同函数的优劣,再选择最合适的函数进行调用。
原来开发人员的操作路径不仅耗时,而且严重依赖于开发人员个人的能力。
飞算SoFlu软件机器人推出的FuncGPT,是一个专门为开发者设计的函数AI生成器,它接收自然语言输入,然后输出可以直接使用的函数解决方案。FuncGPT(慧函数)的强大之处在于它可以理解自然语言,这意味着你不需要具备很强的编程知识或熟悉各种函数和方法。只需向FuncGPT(慧函数)描述你的问题,它就会为你提供相应的解决方案。这大大降低了编程的门槛,让更多的开发者能够快速找到适合自己的函数。
作为飞算SoFlu软件机器人的一个重要组成部分,FuncGPT(慧函数)支持所有类型函数创建。通过自然语言描述Java函数需求,实时生成高质量、高可读性的Java函数代码。生成代码可直接复制到IDEA,或一键导入Java全自动开发工具函数库,从而提高开发者的编码效率。
我们通过“根据身份证获取年龄”这样一个简单的函数示例看看FuncGPT(慧函数)的实力。
在FuncGPT中输入以下需求:
函数功能:根据身份证获取年龄
类名:Fun Test
入参:idCard
出参:int
得到的代码如下:
// 类名:FunTest
// 函数名:getAgeFromIdCard
// 函数功能:根据身份证获取年龄
// POM依赖包:无
import java.time.LocalDate;
import java.time.Period;
public class FunTest {
/**
* 根据身份证获取年龄
* @param idCard 身份证号码
* @return 年龄
*/
public static int getAgeFromIdCard(String idCard) {
if (idCard.length() != 18 || !idCard.matches("\\d{17}[0-9X]")) {
throw new IllegalArgumentException("Invalid ID card format"); // 身份证格式不正确,抛出异常
}
String birthdayStr = idCard.substring(6, 14); // 身份证号码中的生日部分,格式为:yyyyMMdd
LocalDate birthday = LocalDate.parse(birthdayStr); // 将生日字符串转换为LocalDate类型
LocalDate currentDate = LocalDate.now(); // 当前日期
Period period = Period.between(birthday, currentDate); // 计算生日到当前日期的时长
return period.getYears(); // 返回年龄
}
}
// 函数示例
// 根据身份证获取年龄示例
// 入参:idCard,身份证号码
// 出参:age,年龄
// 调用示例:
// String idCard = "11010119900101234X";
// int age = FunTest.getAgeFromIdCard(idCard);
// System.out.println(age);
// 输出结果:例如,根据身份证号码"11010119900101234X"计算得到的年龄为:31
// 则输出结果为:31
```
// 温馨提示:以上代码由 FuncGPT 生成,编译打包请使用FunTest.java 文件。
我们通过万能的“文心一言”来评判一下以上代码,得到的反馈是:
这段代码的质量是比较高的,因为它实现了根据身份证号码获取年龄的功能,并且使用了Java 8引入的日期和时间API,使代码更加简洁和易读。
除此之外,这段代码还有以下优势:
1.输入验证:代码中使用了IllegalArgumentException来抛出异常,如果输入的身份证号码不是18位或者不符合身份证号码的格式,就会导致程序出错,这有助于确保输入数据的正确性。
2.日期处理:代码使用了LocalDate类和Period类来计算年龄,这两个类都是Java 8新增的日期和时间API,可以简化日期处理操作,提高代码的可读性和可维护性。
3.异常处理:代码中使用了try-catch语句块来捕获可能出现的异常情况,例如ParseException等,这有助于在出现异常时进行正确的处理,避免程序崩溃。
4.文档注释:代码中使用了JavaDoc注释,详细解释了方法的功能、参数、返回值以及使用示例,这有助于其他开发人员快速了解该方法的作用和使用方法。
综上,在秒级支持所有类型函数创建的基础上,由于FuncGPT(慧函数)是经过代码编写最佳实践和大规模机器联合训练,对Java语法有深入的学习和理解,故生成的函数代码质量高,符合行业规范,避免了常见的代码错误和低效。此外,相较于搜索引擎收到的demo级的代码案例,针对不同的定制化的需求场景,FuncGPT(慧函数)可以为开发人员提供解决思路,在相对精准的代码方案基础上,开发人员只需稍作调整,即可生成满足开发人员特定的功能需求。
FuncGPT(慧函数)正在免费开发中,感兴趣的小伙伴可以点击链接https://a.d4t.cn/Q3esry下载体验。
随着大模型、AI编程工具的普及,越来越多的开发人员已经从“大模型是否会替代程序员”的焦虑中摆脱出来,并清晰的认识到工具可以加速他们的工作流,并且帮助他们突破能力边界,以惊人的速度完成更加伟大的事业!