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

举报
努力的阿飞 发表于 2023/09/25 11:13:17 2023/09/25
【摘要】 过去,编写代码一直是一项单调乏味且耗时的工作。尤其是在失业风险日益严峻的情况下,对于年过35的程序员来说,面临更大的挑战。然而,随着人工智能的介入,情况有所改变,给程序员们带来了新的活力和创意,同时开启了提高工作效率的新途径。人工智能代码生成模型和编程助手因为具备快速生成代码结构、优化算法以及提供智能建议的能力,为程序员们提供了有效的帮助。这种智能辅助不仅可以显著减少重复劳动,还能释放创造力...

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

// 入参:fileExcel文件

// 出参:dataListExcel数据的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/76Kn8

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。