前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >「CodeFuse」如何在PHPStorm中使用CodeFuse完成快速排序算法的编写

「CodeFuse」如何在PHPStorm中使用CodeFuse完成快速排序算法的编写

作者头像
Tinywan
发布2023-10-26 19:15:17
3930
发布2023-10-26 19:15:17
举报
文章被收录于专栏:开源技术小栈开源技术小栈

图片来源:开源中国 https://my.oschina.net/u/6942768/blog/10122694

简介

CodeFuse 是一款为国内开发者提供智能研发服务的产品,该产品是基于蚂蚁集团自研的基础大模型进行微调的代码大模型。CodeFuse 具备代码补全、添加注释、解释代码、生成单测,以及代码优化功能,以帮助开发者更快、更轻松地编写代码。

功能特性

CodeFuse 提供多个 IDE 插件版,支持在 10 款 IDE 中使用,包括支付宝小程序云云端研发、Visual Studio Code,以及 JetBrains 系列的 IntelliJ IDEA、PyCharm、WebStorm、GoLand、CLion、DataGrip、PhpStorm 和 RubyMine。此外,CodeFuse 支持 40 多种编程语言,包括 PHP、C++、Java、Python、JavaScript 等,目前 CodeFuse 针对 Java 与 Python 的代码生成质量较高。

「CodeFuse 支持的功能如下表」

功能

说明

代码补全

基于海量数据提供实时地代码补全服务,包括行内补全(单行补全)和片段补全(多行补全)。

添加注释

智能为选定的代码生成注释,目前在整个函数级别的生成注释效果较好。

解释代码

智能解析代码意图,为选定的代码生成解释,辅助阅读并理解代码。

生成单测

在写完业务逻辑后,为选定的代码生成单测,即可智能生成具备业务语义的测试用例,从而提升问题发现的效率。

代码优化

基于大模型的代码理解能力和静态源码分析能力,CodeFuse 支持对选定的代码片段进行分析理解并提出优化、改进建议,还能直接基于改进建议生成代码补丁。

快速开始

以下将在PhpStorm IDE 插件的安装步骤和多个代码场景的使用示例,以帮助您快速使用 CodeFuse。

步骤一

下载 CodeFuse 插件安装包:https://amctats-hz.oss.cloudrun.cloudbaseapp.cn/codefuse/CodeFuse-beta-0.1.0.zip

步骤二

PhpStorm 顶部功能栏,单击 Flie【文件】 > Settings【设置】(Ctrl + Alt + S) 进入设置页面。在 Plugins(插件) 中选择 Install Plugin from Disk(从磁盘安装插件)

安装包进行安装

选择【桌面】选择已经下载好的压缩包 CodeFuse-beta-0.1.0.zip

步骤三

点击 CodeFuse 插件面板,进行用户登录

步骤四

登录成功

「注意:首次开通现需要去官网:https://codefuse.alipay.com/通过支付宝登录,提交申请,等申请通过后就可以进行登录使用啦!」

使用 CodeFuse 插件

使用

代码补全

代码补全功能基于海量数据提供实时地代码补全服务,包括行内补全(单行补全)和片段补全(多行补全)。目前该功能支持 Java、Python、TypeScript、JavaScript、Go 等 5 种主流编程语言的多行和单行代码补全,以及其他 40 种编程语言的单行代码补全。

单行代码补全

1、在 IDE 编辑器中创建一个 PHP 文件

2、在 PHP 文件中,CodeFuse 将能够根据代码上下文,为您键入的内容给出补全提示。例如键入以下函数名称并按下回车键,插件将给出代码补全提示。

3、如需接受代码补全建议,请按 Tab 键。

多行代码补全

插件还支持输入注释文本完成多行代码补全。例如键入以下注释内容并按下回车键。CodeFuse 会根据注释内容自动生成多行代码,生成的代码以灰色文本展示。

键入内容并按下回车键后,您可以在编辑器右下角看到内容生成的状态。

关闭自动代码补全

自动触发代码补全功能默认开启,支持在插件面板的设置中关闭此功能,以禁止自动触发单行或多行代码补全。

  • 单行代码补全:例如在编辑器中键入一个函数名称并按下回车键。
  • 多行代码补全:例如在编辑器中键入一段注释文本并按下回车键。

说明:关闭自动触发代码补全后,您仍然可以使用 Alt/Option + \ 快捷键手动触发代码补全。

解释代码

注:目前模型的生成注释功能对整个函数级别的支持较为完善,因此推荐您优先针对函数级别生成注释。

  1. 在 IDE 编辑器中创建一个 PHP 文件。
  2. PHP 文件内选中需要解释的代码片段。
  3. 单击鼠标右键,选择 「CodeFuse:解释代码」,插件将在右侧的对话窗口中生成代码解释。

添加注释

注:目前模型的生成注释功能对整个函数级别的支持较为完善,因此推荐您优先针对函数级别生成注释。

  1. 在 IDE 编辑器中创建一个 PHP 文件。
  2. PHP 文件内选中需要解释的代码片段。
  3. 单击鼠标右键,选择 「CodeFuse:添加注释」,插件将在右侧的对话窗口中生成添加注释。

生成单测

  1. 在 IDE 编辑器中创建一个 PHP 文件。
  2. PHP 文件内选中需要生成单测的代码片段。例如为以下代码片段生成单测:
  3. 单击鼠标右键,选择 「CodeFuse:生成单测」,插件将在右侧的对话窗口中为选中的代码生成测试用例。

以下是生成的单元测试代码

代码语言:javascript
复制
<?php

class QuickSortTest extends PHPUnit_Framework_TestCase {
   public function testQuickSort() {
       // 测试空数组
       $arr = array();
       $result = QuickSort::quickSort($arr);
       $this->assertEquals(array(), $result);

       // 测试只有一个元素的数组
       $arr = array(1);
       $result = QuickSort::quickSort($arr);
       $this->assertEquals(array(1), $result);

       // 测试多个元素的数组
       $arr = array(3, 1, 4, 2, 5);
       // 预期结果
       $expected = array(1, 2, 3, 4, 5);
       $result = QuickSort::quickSort($arr);
       $this->assertEquals($expected, $result);
   }
}

可以看到生成单元测试测试代码自动继承PHP单元测试框架PHPUnit_Framework_TestCase

代码优化

基于大模型的代码理解能力和静态源码分析能力,CodeFuse 支持对选定的代码片段进行分析理解,提出优化和改进建议,还能直接基于改进建议形成代码补丁,以帮助您写出更好的代码。使用代码优化的步骤如下。

  1. 在 IDE 编辑器中创建一个 PHP 文件,编写并选中一段需要优化的代码。
  2. 单击鼠标右键,选择 「CodeFuse:代码优化」,将在插件面板提供多个代码优化建议。
  1. 在插件面板,单击按照以上建议优化选中的代码,生成优化后的代码。
  1. 鼠标放置在生成的代码上,单击[|],唤起编码建议面板查看代码变更。

PS:PHPStrom插件的这里是不是有bug。没有[|]这个可替换按钮

「以下是针对建议 1 生成的代码补丁」

代码语言:javascript
复制
public static function quickSort($arr)
{
    if (count($arr) <= 1) {
        return $arr;
    }
    $key = $arr[0];
    $left_arr = array();
    $right_arr = array();
    for ($i = 1; $i < count($arr); $i++) {
        if ($arr[$i] <= $key) {
            $left_arr[] = $arr[$i];
        } else {
            $right_arr[] = $arr[$i];
        }
    }
    $left_arr = self::quickSort($left_arr);
    $right_arr = self::quickSort($right_arr);
    return array_merge($left_arr, array($key), $right_arr);
}

「完成快速排序算法源代码」

代码语言:javascript
复制
<?php

class CodeFuse {
    /**
     * 快速排序算法
     */
    public static function quickSort($arr)
    {
        if (count($arr) <= 1) {
            return $arr;
        }
        $key = $arr[0];
        $left_arr = array();
        $right_arr = array();
        for ($i = 1; $i < count($arr); $i++) {
            if ($arr[$i] <= $key) {
                $left_arr[] = $arr[$i];
            } else {
                $right_arr[] = $arr[$i];
            }
        }
        $left_arr = self::quickSort($left_arr);
        $right_arr = self::quickSort($right_arr);
        return array_merge($left_arr, array($key), $right_arr);
    }
}
本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2023-10-25,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 开源技术小栈 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 简介
  • 功能特性
  • 快速开始
    • 步骤一
      • 步骤二
        • 安装包进行安装
      • 步骤三
        • 步骤四
          • 登录成功
          • 使用 CodeFuse 插件
      • 使用
        • 代码补全
          • 单行代码补全
          • 多行代码补全
          • 关闭自动代码补全
        • 解释代码
          • 添加注释
            • 生成单测
              • 代码优化
              相关产品与服务
              云开发 CloudBase
              云开发(Tencent CloudBase,TCB)是腾讯云提供的云原生一体化开发环境和工具平台,为200万+企业和开发者提供高可用、自动弹性扩缩的后端云服务,可用于云端一体化开发多种端应用(小程序、公众号、Web 应用等),避免了应用开发过程中繁琐的服务器搭建及运维,开发者可以专注于业务逻辑的实现,开发门槛更低,效率更高。
              领券
              问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档