谁会做网站排名,php做的网站后台,clef wordpress,提升网站关键词排名一、JetBrains IDEA 中安装指南
官方下载指南#xff1a;通义灵码安装教程-阿里云
步骤 1#xff1a;准备工作 操作系统#xff1a;Windows 7 及以上、macOS、Linux#xff1b; 下载并安装兼容的 JetBrains IDEs 2020.3 及以上版本#xff0c;通义灵码与以下 IDE 兼容通义灵码安装教程-阿里云
步骤 1准备工作 操作系统Windows 7 及以上、macOS、Linux 下载并安装兼容的 JetBrains IDEs 2020.3 及以上版本通义灵码与以下 IDE 兼容 IntelliJ IDEA旗舰版、社区版、教育版 PyCharm专业版、社区版、教育版 WebStorm Android Studio CLion GoLand PhpStorm RustRover Rider RubyMine
步骤 2在 JetBrains IDEs 中安装通义灵码
方法 1从插件市场安装 打开 IntelliJ IDEA 设置窗口在插件市场中搜索 TONGYI Lingma找到通义灵码后单击安装。 安装完成后请重启 IntelliJ IDEA。 方法 2下载安装包安装 单击下方链接下载 JetBrains IDEs 的 zip 安装包 ⇩ TONGYI Lingma - JetBrains 下载完安装包后打开 IntelliJ IDEA 后打开设置在插件管理的设置下拉菜单中单击从本地安装插件选择下载的 zip 文件后安装。 安装完成后请重启 IntelliJ IDEA。 步骤 3登录并开启智能编码之旅 重启 IntelliJ IDEA 后单击侧边导航的通义灵码在通义灵码助手的窗口单击登录按 单击登录后将前往登录页面完成登录后可进入 IDE 客户端开始使用。登录相关具体操作可参考登录通义灵码插件端。 退出登录点击右下角通义灵码图标即可退出登录 高级设置点击右下角通义灵码图标--高级设置 二、JetBrains IDEA 中使用指南
2.1、代码解释
选择需要解释的代码 -- 右键 -- 通义灵码 -- 解释代码 解释代码很详细感觉很强大有木有关键还会生成流程图对程序员理解业务非常有帮忙基本能做到哪里不懂点哪里。
2.2、生成注释
选择需要注释的代码 -- 右键 -- 通义灵码 -- 生成注释 把生成注释的代码替换掉原代码即可不爱写注释的程序员有福音了。
2.3、代码优化
选择需要优化的代码 -- 右键 -- 通义灵码 -- 优化代码 通义灵码会对所选的代码进行潜在问题分析及风险提醒并提供优化后的代码 有些不易发找到的bug搞不好使用通义灵码的代码优化功能就找到了目前很多项目都有高代码质量的要求多使用代码优化功能写高质量代码不是问题。
2.4、代码片段补全
把光标移动到未写完的代码后右键 -- 通义灵码 -- 代码片段补全也可以使用快捷键ALT P会显示灰色的建议代码按Tab键接受代码。 2.5、生成单元测试
在你需要单元测试的方法上点击通义灵码的图标 -- 生成单元测试 生成单元测试还有设计说明整得挺真实的下面附上完整的代码 package com.leonse.xxx;import com.leonse.xxx.UserServiceImpl;
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.mockito.InjectMocks;
import org.mockito.junit.MockitoJUnitRunner;import static org.junit.jupiter.api.Assertions.assertEquals;
import static org.junit.jupiter.api.Assertions.assertThrows;RunWith(MockitoJUnitRunner.class)
public class UserServiceImplTest {InjectMocksprivate UserServiceImpl userService;Beforepublic void setUp() {// 如果需要可以在此处进行任何设置}Testpublic void getGender_NullIdentityCard_ThrowsIllegalArgumentException() {assertThrows(IllegalArgumentException.class, () - userService.getGender(null));}Testpublic void getGender_InvalidLength_ThrowsIllegalArgumentException() {assertThrows(IllegalArgumentException.class, () - userService.getGender(12345678901234567));}Testpublic void getGender_ValidMaleIdentityCard_ReturnsMale() {String identityCard 123456199001011235; // 第17位是5奇数assertEquals(男, userService.getGender(identityCard));}Testpublic void getGender_ValidFemaleIdentityCard_ReturnsFemale() {String identityCard 123456199001011244; // 第17位是4偶数assertEquals(女, userService.getGender(identityCard));}
}
执行单元测试全部校验通过 生成的单元测试中缺少了身份证号格式的合法性校验(业务代码里面没有格式校验所以没生成)并非满足所有场景需要根据实际情况进行调整或添加但已满足大部分场景对手写单元测试来说提升的效率还是蛮高的这里缺少的部分可以通过智能问答来补充下面会说怎么补充。
2.6、智能问答
点击右边的通义灵码图标 -- 智能问答 -- -- 选择 UserServiceImpl在对话框输入getGender 方法增加身份证号码格式校验然后按回车即可生成增加身份证号码格式校验的代码速度还不慢 生成的完整代码如下 /*** 给定一个身份证号计算出该用户的性别** param identityCard 身份证号*/Overridepublic String getGender(String identityCard) {if (identityCard null || identityCard.length() ! 18) {throw new IllegalArgumentException(无效的身份证号码);}// 校验身份证号码格式if (!identityCard.matches(\\d{17}[0-9Xx])) {throw new IllegalArgumentException(无效的身份证号码格式);}int genderDigit Integer.parseInt(identityCard.substring(16, 17));return genderDigit % 2 1 ? 男 : 女;}
这里还少了验证身份证号码格式的单元测试在对话框输入补充一条校验身份证格式的单元测试用例 package com.xxx;import com.xxx.UserServiceImpl;
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.mockito.InjectMocks;
import org.mockito.junit.MockitoJUnitRunner;import static org.junit.jupiter.api.Assertions.assertEquals;
import static org.junit.jupiter.api.Assertions.assertThrows;RunWith(MockitoJUnitRunner.class)
public class UserServiceImplTest {InjectMocksprivate UserServiceImpl userService;Beforepublic void setUp() {// 如果需要可以在此处进行任何设置}Testpublic void getGender_NullIdentityCard_ThrowsIllegalArgumentException() {assertThrows(IllegalArgumentException.class, () - userService.getGender(null));}Testpublic void getGender_InvalidLength_ThrowsIllegalArgumentException() {assertThrows(IllegalArgumentException.class, () - userService.getGender(12345678901234567));}Testpublic void getGender_InvalidFormat_ThrowsIllegalArgumentException() {assertThrows(IllegalArgumentException.class, () - userService.getGender(s12345678901234567)); // 长度正确但格式错误assertThrows(IllegalArgumentException.class, () - userService.getGender(12345678901234567文)); // 长度正确但格式错误assertThrows(IllegalArgumentException.class, () - userService.getGender(12345678901234567G)); // 长度正确但最后一位不是数字或X}Testpublic void getGender_ValidMaleIdentityCard_ReturnsMale() {String identityCard 123456199001011235; // 第17位是5奇数assertEquals(男, userService.getGender(identityCard));}Testpublic void getGender_ValidFemaleIdentityCard_ReturnsFemale() {String identityCard 123456199001011244; // 第17位是4偶数assertEquals(女, userService.getGender(identityCard));}
}
执行单元测试5条用例全部通过 workspace 本地工程问答 当你需要快速了解一个工程、查找工程内的实现逻辑或有新的诉求需要进行代码变更时可以在智能问答窗口中通过 可唤起 workspace选中后输入你的问题或诉求通义灵码可快速结合当前仓库进行工程理解、代码查询、代码问答等同时可以通过自然语言描述需求结合当前工程生成简单需求或缺陷的整体修改建议和相关建议代码。 如接手新项目时想快速了解项目架构可在对话框输入workspace 详细了解项目架构通义灵码会详细解析项目的架构的设计。 terminal 问答 当你遇到执行指令不知道如何写或者不清楚某个指令的意思时可以在智能问答窗口中通过 可唤起 terminal选择后使用自然语言描述你的需要指令诉求通义灵码将可以生成你需要的命令。生成指令后你可以一键插入到 terminal 中进行执行或让通义灵码继续解释。当然你也可以在选择 terminal 后输入指令让通义灵码生成指令解释。 2.7、AI程序员
通义灵码 AI 程序员具备多文件代码修改Multi-file Edit和工具使用Tool-use的能力可以与开发者协同完成编码任务如需求实现、问题解决、单元测试用例生成、批量代码修改等。
说明
使用通义灵码 AI 程序员需要将通义灵码 IDE 插件升级到最新版本2.0.0及以上版本。
AI 程序员可以帮助开发者快速完成一个研发任务的代码编写工作在与 AI 程序员对话过程中可以遵循以下几点建议 清晰的需求描述首先需要澄清我们需要 AI 程序员帮我们做什么建议包含一个明确的目标并通过步骤式的结构化描述详细地描述你期望完成的开发任务要求 指定需要的上下文选择代码文件、图片、codebase、codeChanges 等上下文可以帮助 AI 程序员获取需求相关的语境。同时结合详细执行步骤和要求AI 程序员更精准地了解你的意图生成最佳的方案和建议代码 明确生成要求告诉 AI 程序员在生成代码修改建议时你期望它遵循的要求比如语言、规范、格式、变更目标等如“生成变更时同时为每个方法生成英文注释” 善用快照功能当 AI 生成内容不符合预期或你的需求有变化时可以通过快照功能回退到之前的对话轮次和代码变更继续重新提问 审查和修改变更AI 程序员完成多个文件的代码变更后开发者可以通过变更对比查看视图Diff View进行审查以及对局部代码片段进行接受、拒绝、修改保证最后得到符合预期的代码变更。
在AI程序员对话框输入你要是现在的需求即可生成相关代码 package com.xxx.utils;import java.time.Duration;
import java.time.Instant;
import java.time.LocalDateTime;
import java.time.ZoneId;
import java.time.temporal.ChronoUnit;
import java.time.temporal.TemporalUnit;public class DateTimeUtils {/*** 增加时间的方法** param currentTime 当前时间* param amountToAdd 需要增加的时间值* param unit 需要增加的时间单位* return 增加后的时间对象*/public static LocalDateTime addTime(LocalDateTime currentTime, long amountToAdd, TemporalUnit unit) {return currentTime.plus(amountToAdd, unit);}/*** 增加时间的方法使用Instant** param currentInstant 当前时间* param amountToAdd 需要增加的时间值* param unit 需要增加的时间单位* return 增加后的时间对象*/public static Instant addTime(Instant currentInstant, long amountToAdd, ChronoUnit unit) {return currentInstant.plus(amountToAdd, unit);}/*** 增加时间的方法使用Duration** param currentInstant 当前时间* param duration 需要增加的时间间隔* return 增加后的时间对象*/public static Instant addTime(Instant currentInstant, Duration duration) {return currentInstant.plus(duration);}
}三、常用的快捷键
通义灵码的多个操作均配备了开箱即用的快捷键以下列出了几项常用的快捷键。 功能 Windows快捷键 macOS快捷键 在任意位置触发补全代码解释 Alt P Option P 更换生成的结果 Alt ] Option ] 采纳全部生成的代码 Tab Tab 逐行采纳生成的代码 Ctrl ↓ Cmd ↓ 关闭/打开对话面板 Ctrl Shift L Cmd Shift L 代码解释 Alt Shfit P 生成单元测试 Alt Shfit U 生成注释 Alt Shfit V 代码优化 Alt Shfit O 代码片段补全 Alt P 四、总结 总体而言“通义灵码” 堪称国内极为出色的 AI 插件它具备强大的兼容性支持众多 IDE为广大程序员提供了便利。其核心功能丰富多元涵盖代码解释能让复杂代码逻辑一目了然精准生成注释助力代码的可读性与可维护性高效代码优化去除冗余、提升性能轻松生成单元测试为代码质量保驾护航还有智能答疑解惑以及模拟 AI 程序员辅助开发等实用功能。作为编程领域的得力助手它完全有能力大幅提升程序员的开发效率是不可多得的编程利器。