网站源码 和网站模板区别,做素材网站服务器,购wordpress,php免费企业网站源码一、IntelliJ IDEA 中使用指南
1.1、代码解释
选择需要解释的代码 — 右键 — 通义灵码 — 解释代码 解释代码很详细#xff0c;感觉很强大有木有#xff0c;关键还会生成流程图#xff0c;对程序员理解业务非常有帮忙#xff0c;基本能做到哪里不懂点哪里。…一、IntelliJ IDEA 中使用指南
1.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 程序员具备多文件代码修改和工具使用能力可与开发者协同完成编码任务涵盖需求实现、问题解决等。使用该功能需将通义灵码 IDE 插件升级到 2.0.0 及以上版本。与 AI 程序员对话以完成研发任务时可参考以下建议一是清晰描述需求明确目标并采用步骤式结构化表述二是指定所需上下文如代码文件等结合详细步骤让 AI 精准理解意图三是明确生成要求如语言、规范等四是善用快照功能在生成内容不符预期或需求变化时回退五是审查和修改变更通过变更对比查看视图审查对局部代码进行操作以确保结果符合预期。
在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 POption P更换生成的结果Alt ]Option ]采纳全部生成的代码TabTab逐行采纳生成的代码Ctrl ↓Cmd ↓关闭/打开对话面板Ctrl Shift LCmd Shift L代码解释Alt Shfit P生成单元测试Alt Shfit U生成注释Alt Shfit V代码优化Alt Shfit O代码片段补全Alt P
三、总结 总体而言“通义灵码” 堪称国内极为出色的 AI 插件它具备强大的兼容性支持众多 IDE为广大程序员提供了便利。其核心功能丰富多元涵盖代码解释能让复杂代码逻辑一目了然精准生成注释助力代码的可读性与可维护性高效代码优化去除冗余、提升性能轻松生成单元测试为代码质量保驾护航还有智能答疑解惑以及模拟 AI 程序员辅助开发等实用功能。作为编程领域的得力助手它完全有能力大幅提升程序员的开发效率是不可多得的编程利器。
参考资料
通义灵码操作指南
一、通义灵码插件保姆级教学-IDEA(安装篇)
– 欢迎点赞、关注、转发、收藏【技术咖啡馆C】各大平台同名。