一、IntelliJ IDEA 中使用指南 1.1、代码解释
选择需要解释的代码 —> 右键 —> 通义灵码 —> 解释代码
解释代码很详细,感觉很强大有木有,关键还会生成流程图,对程序员理解业务非常有帮忙,基本能做到哪里不懂点哪里。
2.2、生成注释选择需要注释的代码 —> 右键 —> 通义灵码 —> 生成注释
把生成注释后的代码替换掉原代码即可,不爱写注释的程序员有福音了。
2.3、优化代码选择需要优化的代码 —> 右键 —> 通义灵码 —> 优化代码
通义灵码会对所选的代码进行潜在问题分析及风险提醒,并提供优化后的代码
有些不易发找到的bug搞不好使用通义灵码的代码优化功能就找到了,目前很多项目都有高代码质量的要求,多使用代码优化功能写高质量代码不是问题。
2.4、代码片段补全把光标移动到未写完的代码后,右键 —> 通义灵码 —> 代码片段补全,也可以使用快捷键ALT + P,会显示灰色的建议代码,按Tab键接受代码。
在你需要单元测试的方法上点击:通义灵码的图标 —> 生成单元测试
生成单元测试还有设计说明,整得挺真实的,下面附上完整的代码:
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 { @InjectMocks private UserServiceImpl userService; @Before public void setUp() { // 如果需要,可以在此处进行任何设置 } @Test public void getGender_NullIdentityCard_ThrowsIllegalArgumentException() { assertThrows(IllegalArgumentException.class, () -> userService.getGender(null)); } @Test public void getGender_InvalidLength_ThrowsIllegalArgumentException() { assertThrows(IllegalArgumentException.class, () -> userService.getGender("12345678901234567")); } @Test public void getGender_ValidMaleIdentityCard_ReturnsMale() { String identityCard = "123456199001011235"; // 第17位是5,奇数 assertEquals("男", userService.getGender(identityCard)); } @Test public void getGender_ValidFemaleIdentityCard_ReturnsFemale() { String identityCard = "123456199001011244"; // 第17位是4,偶数 assertEquals("女", userService.getGender(identityCard)); } }执行单元测试,全部校验通过:
生成的单元测试中缺少了身份证号格式的合法性校验(业务代码里面没有格式校验所以没生成),并非满足所有场景,需要根据实际情况进行调整或添加,但已满足大部分场景,对手写单元测试来说提升的效率还是蛮大的,这里缺少的部分可以通过智能问答来补充,下面会说怎么补充。
2.6、智能问答点击右边的通义灵码图标 —> 智能问答 —> + —> 选择 UserServiceImpl,在对话框输入:getGender 方法增加身份证号码格式校验,然后按回车即可生成增加身份证号码格式校验的代码,速度还不慢;
生成的完整代码如下:
/** * 给定一个身份证号,计算出该用户的性别 * * @param identityCard 身份证号 */ @Override public 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 ? "男" : "女"; }这里还少了验证身份证号码格式的单元测试,在对话框输入:补充一条校验身份证格式的单元测试用例
执行单元测试,5条用例全部通过
@workspace 本地工程问答
在项目研发的进程中,当你面临如下场景:亟需迅速洞悉一个工程的全貌,精准定位其内部复杂的实现逻辑;或是基于新的业务诉求,迫切需要对代码进行调整优化。此时,通义灵码便能成为你的得力助手。
只需轻松移步至智能问答窗口,简单地输入 “@”,即可便捷唤起 “@workspace”。完成选中操作后,将你的具体问题或业务诉求逐一输入。通义灵码凭借其卓越的智能,会即刻结合当前所处的代码仓库,展开全方位的工程剖析、精细入微的代码查询,以及精准高效的代码问答服务。
更为惊艳的是,你甚至无需拘泥于刻板的专业术语,仅用通俗易懂的自然语言描述你的需求,通义灵码便能深度融合当前工程的实际情况,不仅为你生成针对简单需求或潜在缺陷的整体性修改建议,还贴心附上与之紧密相关的建议代码片段,助力你在代码的世界里畅行无阻,高效攻克每一个难题。
如接手新项目时想快速了解项目架构可在对话框输入:@workspace 详细了解项目架构,通义灵码会详细解析项目的架构的设计。
在日常的开发与操作过程中,我们难免会遭遇一些指令方面的困扰。或许你正绞尽脑汁,却不知该如何编写一条执行指令;又或许面对某个指令,你满心疑惑,难以参透其确切含义。别担心,通义灵码为你提供了便捷的解决方案。
只需来到智能问答窗口,轻轻键入 “@”,即可迅速唤起 “@terminal”。选择之后,你无需使用晦涩难懂的专业表述,仅用自然流畅的自然语言,清晰地描述你对指令的需求即可。通义灵码就像一位知识渊博的编程助手,能精准理解你的意图,快速为你生成所需的命令。
当生成指令后,操作更是简便至极。你只需一键点击,就能将生成的指令插入到 “terminal” 中,立即执行以验证效果。倘若你对生成的指令还有所疑虑,通义灵码也会耐心地继续为你详细解释。
不仅如此,如果你已经有了特定的指令,也可以在选择 “@terminal” 后将其输入,通义灵码会为你生成详细的指令解释,帮助你深入理解指令背后的逻辑与用途,让你在指令的世界中不再迷茫。
通义灵码 AI 程序员具备多文件代码修改和工具使用能力,可与开发者协同完成编码任务,涵盖需求实现、问题解决等。使用该功能需将通义灵码 IDE 插件升级到 2.0.0 及以上版本。与 AI 程序员对话以完成研发任务时,可参考以下建议:一是清晰描述需求,明确目标并采用步骤式结构化表述;二是指定所需上下文,如代码文件等,结合详细步骤让 AI 精准理解意图;三是明确生成要求,如语言、规范等;四是善用快照功能,在生成内容不符预期或需求变化时回退;五是审查和修改变更,通过变更对比查看视图审查,对局部代码进行操作以确保结果符合预期。
在AI程序员对话框输入你要是现在的需求即可生成相关代码
通义灵码的多个操作均配备了开箱即用的快捷键,以下列出了几项常用的快捷键。
功能Windows快捷键macOS快捷键 总体而言,“通义灵码” 堪称国内极为出色的 AI 插件,它具备强大的兼容性,支持众多 IDE,为广大程序员提供了便利。其核心功能丰富多元,涵盖代码解释,能让复杂代码逻辑一目了然;精准生成注释,助力代码的可读性与可维护性;高效代码优化,去除冗余、提升性能;轻松生成单元测试,为代码质量保驾护航;还有智能答疑解惑以及模拟 AI 程序员辅助开发等实用功能。作为编程领域的得力助手,它完全有能力大幅提升程序员的开发效率,是不可多得的编程利器。
参考资料:
一、通义灵码插件保姆级教学-IDEA(安装篇)
– 欢迎点赞、关注、转发、收藏【技术咖啡馆C】,各大平台同名。