写点什么

用 AI 提高代码质量,同事对我的代码赞不绝口~

  • 2023-09-12
    广东
  • 本文字数:2661 字

    阅读完需:约 9 分钟

在当今软件开发领域,代码质量被视为至关重要的因素,因为它直接影响到软件的可维护性、可扩展性和可靠性。尽管有人担忧 AI 技术的快速发展可能会取代初级程序员的工作,但我们应该认识到提升自身技能和成长是关键。


在这种情况下,合理的学会使用 AI 工具或许可以带来某些帮助,作为飞算 SoFlu 软件机器人的一个重要组成部分,FuncGPT(慧函数)支持所有类型函数创建。通过自然语言描述 Java 函数需求,实时生成高质量、高可读性的 Java 函数代码。生成代码可直接复制到 IDEA,或一键导入 Java 全自动开发工具函数库。然而,我们也应该意识到依赖 AI 技术并不能完全替代人类的创造力和判断力。


在软件开发过程中,仍然需要人类程序员的综合能力来确保软件的成功实现。因此,我们应该抓住机遇,不断提升自己的技能,以适应不断发展的技术环境。在现代软件开发中,重视代码质量至关重要。虽然 AI 技术的发展可能带来一定的挑战,但通过与 FuncGPT(慧函数)等先进工具的合作,我们可以更好地应对这些挑战。今天就来分享一下使用 FuncGPT(慧函数)来提升代码质量的 2 种方法。


1.使用 ChatGPT 生成代码注释,以提高代码的可读性和可维护性。代码的可读性很重要,因为代码是人编写和维护的。当代码可读性差的时,它将很难理解和修改,这将导致代码的可维护性和可扩展性受到影响。特别是大家都是团队合作,如果代码的可读性很差,必将影响到团队里的其他人,也非常不利于扩展。而 FuncGPT(慧函数)可以自动生成代码,且注释详细,以下是基于写一个 java 函数 BigDecimal 的表达式运算的需求,其所生成的代码,大家可以感受一下。


// 类名:BigDecimalCalculator// 函数名:calculateExpression// 函数功能:使用 BigDecimal 计算表达式的结果// POM 依赖包:// <dependency>// <groupId>org.apache.commons</groupId>// <artifactId>commons-lang3</artifactId>// <version>3.12.0</version>// </dependency>


import org.apache.commons.lang3.StringUtils;


import java.math.BigDecimal;import java.math.RoundingMode;import java.util.Stack;


public class BigDecimalCalculator {/*** 使用 BigDecimal 计算表达式的结果* @param expression 要计算的表达式* @return 计算结果*/public static BigDecimal calculateExpression(String expression) {if (StringUtils.isBlank(expression)) {throw new IllegalArgumentException("Expression cannot be blank");}


    Stack<BigDecimal> numberStack = new Stack<>();    Stack<Character> operatorStack = new Stack<>();
for (int i = 0; i < expression.length(); i++) { char ch = expression.charAt(i); if (Character.isDigit(ch)) { StringBuilder sb = new StringBuilder(); while (i < expression.length() && (Character.isDigit(expression.charAt(i)) || expression.charAt(i) == '.')) { sb.append(expression.charAt(i)); i++; } i--;
BigDecimal number = new BigDecimal(sb.toString()); numberStack.push(number); } else if (ch == '(') { operatorStack.push(ch); } else if (ch == ')') { while (!operatorStack.isEmpty() && operatorStack.peek() != '(') { BigDecimal result = performOperation(numberStack, operatorStack); numberStack.push(result); } if (!operatorStack.isEmpty() && operatorStack.peek() == '(') { operatorStack.pop(); } } else if (isOperator(ch)) { while (!operatorStack.isEmpty() && hasHigherPrecedence(ch, operatorStack.peek())) { BigDecimal result = performOperation(numberStack, operatorStack); numberStack.push(result); } operatorStack.push(ch); } }
while (!operatorStack.isEmpty()) { BigDecimal result = performOperation(numberStack, operatorStack); numberStack.push(result); }
return numberStack.pop();}
private static boolean isOperator(char ch) { return ch == '+' || ch == '-' || ch == '*' || ch == '/';}
private static boolean hasHigherPrecedence(char op1, char op2) { if ((op1 == '*' || op1 == '/') && (op2 == '+' || op2 == '-')) { return true; } return false;}
private static BigDecimal performOperation(Stack<BigDecimal> numberStack, Stack<Character> operatorStack) { BigDecimal num2 = numberStack.pop(); BigDecimal num1 = numberStack.pop(); char operator = operatorStack.pop();
BigDecimal result; switch (operator) { case '+': result = num1.add(num2); break; case '-': result = num1.subtract(num2); break; case '*': result = num1.multiply(num2); break; case '/': result = num1.divide(num2, 2, RoundingMode.HALF_UP); break; default: throw new IllegalArgumentException("Invalid operator"); }
return result;}
复制代码


}


// 函数示例// 使用 BigDecimal 计算表达式的结果示例// 入参:expression,要计算的表达式// 出参:result,计算结果// 调用示例:// String expression = "2.5 + 3 * (4 - 1)";// BigDecimal result = BigDecimalCalculator.calculateExpression(expression);// System.out.println(result);// 输出结果:例如,计算表达式"2.5 + 3 * (4 - 1)"的结果为:11.5// 则输出结果为:11.52、使用 FuncGPT(慧函数)生成测试用例,以帮助和修复代码中的错误和缺陷除了改进代码,要提升代码质量,软件测试必不可少,他是用于测试功能和正确性的代码片段,可以帮助开发人员发现和修复代码中的错误和缺陷,通过使用 FuncGPT(慧函数)生成测试用例,开发人员可以节省手动编写测试用例的时间。但是,大部分程序员对写测试用例不够重视,这也是程序员需要不断提升的地方。FuncGPT(慧函数)现已开通免费使用: https://c.suo.nz/74CZE

用户头像

飞算云智官方账号 2021-08-10 加入

想了解更多产品内容,欢迎关注微信公众号:飞算SoFlu软件机器人 免费试用申请:http://feisuanyz.mikecrm.com/9dW4GeZ

评论

发布
暂无评论
用AI提高代码质量,同事对我的代码赞不绝口~_SoFlu软件机器人_InfoQ写作社区