写点什么

研究了代码质量后,开发效率提升 10 倍,bug 减少 20 倍!!

  • 2023-09-25
    广东
  • 本文字数:3118 字

    阅读完需:约 10 分钟

过去,编写代码一直是一项单调乏味且耗时的工作。尤其是在失业风险日益严峻的情况下,对于年过 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

用户头像

飞算云智官方账号 2021-08-10 加入

想了解更多产品内容,欢迎关注微信公众号:飞算SoFlu软件机器人 免费试用申请:http://feisuanyz.mikecrm.com/9dW4GeZ

评论

发布
暂无评论
研究了代码质量后,开发效率提升10倍,bug减少20倍!!_SoFlu软件机器人_InfoQ写作社区