过去,编写代码一直是一项单调乏味且耗时的工作。尤其是在失业风险日益严峻的情况下,对于年过 35 的程序员来说,面临更大的挑战。然而,随着人工智能的介入,情况有所改变,给程序员们带来了新的活力和创意,同时开启了提高工作效率的新途径。
人工智能代码生成模型和编程助手因为具备快速生成代码结构、优化算法以及提供智能建议的能力,为程序员们提供了有效的帮助。这种智能辅助不仅可以显著减少重复劳动,还能释放创造力,使得程序员能够专注于问题解决和创新思考,从而提高软件的质量。
在探讨如何增加工作效率以及评估人工智能的效果时,我们需要不仅仅局限于理论,还要提供具体的案例和实例,以展示人工智能在编程领域中所具备的巨大潜力和实际效果。
让我们以 FuncGPT(慧函数)为例,这是一个由飞算推出的专注于 AI 生成 Java 函数的工具。FuncGPT(慧函数)可以用于创建各种类型的函数。通过用自然语言描述 Java 函数的需求,它能够即时生成高质量且易读的 Java 函数代码。生成的代码可以直接复制到 IDEA 中,也可以一键导入 Java 全自动开发工具函数库,从而大大提高开发者的编码效率。
案例实践
通过在 FuncGPT(慧函数)中输入指令【读取 EXCEL 数据,入参: File file,出参:List<Map<String, Object>>】,仅用 24 秒,即可生成一个清晰易懂,可读性优秀的代码:
// 类名:ExcelDataReader
// 函数名:readExcelData
// 函数功能:读取Excel数据并返回List<Map<String, Object>>类型的结果
// POM依赖包:
// <dependency>
// <groupId>org.apache.poi</groupId>
// <artifactId>poi</artifactId>
// <version>4.1.2</version>
// </dependency>
// <dependency>
// <groupId>org.apache.poi</groupId>
// <artifactId>poi-ooxml</artifactId>
// <version>4.1.2</version>
// </dependency>
import org.apache.poi.ss.usermodel.*;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
public class ExcelDataReader {
/**
* 读取Excel数据并返回List<Map<String, Object>>类型的结果
* @param file Excel文件
* @return Excel数据的List<Map<String, Object>>结果
* @throws IOException 当读取Excel文件出现错误时抛出IOException
*/
public static List<Map<String, Object>> readExcelData(File file) throws IOException {
List<Map<String, Object>> dataList = new ArrayList<>(); // 创建存储Excel数据的List
FileInputStream fis = new FileInputStream(file); // 创建文件输入流
Workbook workbook = WorkbookFactory.create(fis); // 创建Workbook对象
Sheet sheet = workbook.getSheetAt(0); // 获取第一个Sheet
int rowCount = sheet.getLastRowNum(); // 获取行数
Row headerRow = sheet.getRow(0); // 获取标题行
int columnCount = headerRow.getLastCellNum(); // 获取列数
for (int i = 1; i <= rowCount; i++) { // 遍历每一行(跳过标题行)
Row row = sheet.getRow(i);
Map<String, Object> rowData = new HashMap<>();
for (int j = 0; j < columnCount; j++) { // 遍历每一列
Cell cell = row.getCell(j);
String columnName = headerRow.getCell(j).getStringCellValue(); // 获取列名
Object cellValue;
switch (cell.getCellType()) { // 根据单元格类型获取单元格值
case STRING:
cellValue = cell.getStringCellValue();
break;
case NUMERIC:
cellValue = cell.getNumericCellValue();
break;
case BOOLEAN:
cellValue = cell.getBooleanCellValue();
break;
case FORMULA:
cellValue = cell.getCellFormula();
break;
default:
cellValue = null;
}
rowData.put(columnName, cellValue); // 将列名和单元格值存入rowData
}
dataList.add(rowData); // 将rowData存入dataList
}
workbook.close(); // 关闭Workbook对象
fis.close(); // 关闭文件输入流
return dataList; // 返回Excel数据的结果
}
}
// 函数示例
// 读取Excel数据示例
// 入参:file,Excel文件
// 出参:dataList,Excel数据的List<Map<String, Object>>结果
// 调用示例:
// File file = new File("data.xlsx");
// List<Map<String, Object>> dataList = ExcelDataReader.readExcelData(file);
// System.out.println(dataList);
// 输出结果:例如,Excel数据为:
// | Name | Age | Grade |
// |-------|-----|-------|
// | Alice | 18 | A |
// | Bob | 20 | B |
// 则输出结果为:[{Name=Alice, Age=18, Grade=A}, {Name=Bob, Age=20, Grade=B}]
// 表示Excel数据被封装为List<Map<String, Object>>的格式
复制代码
以上代码清楚地展示了如何使用 Apache POI 库读取 Excel 文件并将其内容转换为特定的数据结构,并考虑到了不同类型的单元格并正确地获取了它们的值。同时,也注意了在结束时关闭工作簿和输入流,避免了可能的资源泄漏。
当然,由于 EXCEL 整体格式内容的话,会影响读取有效行或者有效列的真实数据,需要对行和列进行相关有效校验。因此在以上代码的基础上,开发人员只需做以下一些修改即可获取拿来即用的代码,大大提升了开发的效率。
1)首先判断列,因为列的真实长度会影响到行的读取;
2)读取第一行表头,如果遇到空白列,则认定有效列为上一个列的下标。
3)获取到有效列之后 去遍历每一行数数据,如果有整行为空则跳出循环,结束数据获取。
综上,在秒级支持所有类型函数创建的基础上,由于 FuncGPT(慧函数)是经过代码编写最佳实践和大规模机器联合训练,对 Java 语法有深入的学习和理解,故生成的函数代码质量高,符合行业规范,避免了常见的代码错误和低效。另一方面相较于搜索引擎收到的 demo 级的代码案例,针对不同的定制化的需求场景,FuncGPT(慧函数)可以为开发人员提供解决思路,在相对精准的代码方案基础上,开发人员只需稍作调整,即可生成满足开发人员特定的功能需求。
FuncGPT(慧函数)现已开启免费使用,下载链接:https://c.suo.nz/a7ene
评论