2023总结 - 后端开发如何利用 AI 快速完成工作|社区征文

2023总结

在上班无聊的摸鱼中突然发现了InfoQ写作社区与火山引擎社区的有奖征文,对于我来说这肯定是不能缺席,嘿嘿,毕竟可是有奖品。

前言

从 2021年 github copilot 的推出,这款产品是由 OpenAi 团队开发的人工智能助手开始,AI 已经慢慢影响着我的编程习惯。常用功能有:根据代码的上下文自动补全代码、自动生成函数或方法的注释(很实用)、问题解决建议(鸡肋)、生成单元测试(超级实用,应该都能理解写单元测试的痛苦)等等很多功能,很不幸,2022年,copilot 宣布不太免费,当时我并不是深度依赖这款工具,所以我之后几年并没有再使用过它。

2023

2023 可以称为 AI 爆发元年,openAI 团队推出了chatGPT 3.5,惊艳了全球,对市面上其他AI产品来说可以是降维打击,2023 下半年,我入职了一家新公司,这家公司自研了一个AI 的插件,可以帮助自动补全代码、生成注释、生成单测、解释代码等。

自动化补全代码

  1. 单行代码补全 picture.image 可以根据代码上下文,为我输入的内容给出补全提示,比如说我输入了一个函数名称,插件会给出代码补全提示,可以按 tab 接收补全提示;
  2. 多行代码补全 picture.image 还可以输入注释文本来完成多行代码补全,比如说我输入了 “判断一个字符串是否为英文” 然后按下回车,插件会自动为注释内容生成多行代码 或者 一个方法,然后按 Tab 键 接受代码提示;

生成注释

这个功能是我常用的,比如可以在代码中选中需要添加注释的代码,然后选择添加注释,就会在所选代码上自动生成注释

picture.image

解释代码

相信大家去阅读别的童鞋代码的时候会很痛苦,尤其是面对一些陈年屎山的时候,会让人抓狂,现在可以让AI工具帮助我们去解释这段代码, 比如这段 快速排序 的代码(当然这段代码我也是让 AI 帮我写的):

public class QuickSort {

    public static void quickSort(int[] arr, int low, int high) {
        if (low < high) {
            int pi = partition(arr, low, high);

            quickSort(arr, low, pi - 1);
            quickSort(arr, pi + 1, high);
        }
    }
    
    private static int partition(int[] arr, int low, int high) {
        int pivot = arr[high];

        int i = (low - 1); // Index of smaller element

        for (int j = low; j < high; j++) {
            if (arr[j] < pivot) {
                i++;

                // Swap arr[i] and arr[j]
                int temp = arr[i];
                arr[i] = arr[j];
                arr[j] = temp;
            }
        }

        int temp = arr[i + 1];
        arr[i + 1] = arr[high];
        arr[high] = temp;

        return i + 1;
    }

    public static void main(String[] args) {
        int[] arr = {10, 7, 8, 9, 1, 5};
        int n = arr.length;

        quickSort(arr, 0, n - 1);

        System.out.println("Sorted array: ");
        for (int i = 0; i < n; i++) {
            System.out.print(arr[i] + " ");
        }
        System.out.println();
    }
}

我会复制这段代码去让AI帮我解释这段代码的含义,如下:

picture.image

之后面对童鞋们写的屎山的时候,再也不用抓狂了,不想看的代码可以直接扔给 AI 帮你阅读,节省时间且心情也会很愉快。

生成单元测试

这个功能呢是我使用频率最高的了,谁懂测试覆盖率 100% 的痛苦呀,之前写单元测试的时间要大于我写功能代码时间的两倍了,真的是最痛苦的一件事情,现在我会选中要我要写单元测试的方法或函数,让AI帮我写单元测试,当然,有时生成的单元测试达不到100%的,毕竟AI也只是辅助工作,又不是替代我工作。

picture.image

工作量噌噌的往下减,排期还是之前的排期,摸鱼时间蹭噌的往上涨。

生成名称

写代码最困难的事莫过于起名字了,什么类名、方法名、函数名、字段名,让人头皮发麻,尤其是英语不好的我,往往想了好久的名称是无法代表这个含义的,这时,我想到了,可以让AI帮助我生成名字,哈哈,果然,AI是要比我想出来的名字要好的,AI完胜我。

picture.image

用了AI后,老婆再也不用担心我秃头了

尾声

今年,我已经是AI的重度使用者,帮助我减轻了很多工作量,快速完成工作,今年,AI大模型的井喷出现,GPT4.0在一些领域已经可以媲美人类专家了,当然,有时 AI 总是莫名的抽风。不过我认为,AI在之后肯定会替代很多重复无意义的劳动的。

本文首发于 InfoQ 写作平台:https://xie.infoq.cn/article/2a2a0b6612dda0a2264c716e5

0
0
0
0
评论
未登录
看完啦,登录分享一下感受吧~
暂无评论