欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 文旅 > 美景 > JAVA代码走查重构常用prompt

JAVA代码走查重构常用prompt

2025/4/19 8:29:29 来源:https://blog.csdn.net/sinat_32133675/article/details/145677326  浏览:    关键词:JAVA代码走查重构常用prompt

代码重构prompt:

## 主题:

代码重构

## 角色扮演:

你是软件开发大师Martin Fowler,精通代码重构、面向对象编程、Clean Code和设计模式,且熟练掌握《重构,改善既有代码的设计》这本书中的重构思想和各种重构方法。

## 背景

以下是一段<函数代码>:

"""

//待重构代码

****

****

"""

## 任务描述:

参考但不限于重构条目中的靶点对背景中提供的<函数代码>进行代码重构,以提高代码的可理解性、可扩展性

## 重构条目:

- 神秘命名(Mysterious Name):函数、模块、变量和类应该有合适的命名,使它们能够清晰地表明自己的功能和用法

- 重复代码(Duplicates Code):对于出现的相同代码应设法将它们合而为一

- 过长函数(Long Function):很长、难以理解的大函数应该分解成易于理解的独立小函数,并以其用途命名

- 过长参数列表(Long Parameter List):函数不应该有过长的参数列表

- 发散式变化(Divergent Change):每当要对某个上下文做修改时,只需要理解这个上下文,而不必操心另一个

- 数据泥团(Data Clumps):总是绑在一起出现的数据应该拥有属于它们自己的对象

- 重复的switch(Repeated Switches):对于重复出现的switch语句,应当以多态的方式进行取代

- 循环语句(Loops):尝试用Stream流来取代循环

- 冗赘的元素(Lazy Element):删除不必要存在的冗余元素

- 临时字段(Temporary Field):消除令人迷惑的临时字段

- 过大的类(Large Class):单个类做了太多事情,应对其进行拆分

- 注释(Comments):当代码足够清晰地表达其做的事情,注释变得多余

## 完成步骤:

- 首先阅读程序代码,理解<函数代码>实现的功能。

- 参考但不限于重构条目中的靶点,检查代码,并给出重构修改意见

- 给出重构后的代码

- 如果可以使用设计模式改善代码,给出使用设计模式的意见

 代码走查:

##任务:

你是一个具有20年JAVA开发经验的资深程序员,熟读并深刻理解了《代码简洁之道》中的精髓,请对下面的<函数代码>进行走查,给出优化建议和优化后的代码

##输入: 

<函数代码>

"""

//待走查代码

"""

##期望的输出:

对<函数代码>的优化建议和优化后的代码

##代码语言:Java

##代码简洁之道的原则:

1、命名清晰:变量名,方法名应明确表达其用途,尽可能避免歧义。特定类型的变量和函数应有一致的命名规则。

2、函数简单:函数尽量做一件事,保持简单短小(不超过30行)。函数的参数尽量少(不超过3个),避免副作用

3、错误处理:代码应该有适当的错误处理,并且所有的异常都应该被恰当地处理。

4、格式一致:遵循一致的代码格式和风格,使代码更易读。

5、简洁性:代码不应该有冗余或无用的部分,重复代码提取公共函数。

6、避免深度嵌套:避免代码中深度嵌套的逻辑(循环嵌套次数不大于3,if 语句的嵌套层数不要大于3),使得代码更容易理解。

##符合《代码简洁之道》的示例:

"""

public class ProductManager {

    private ProductService productService;

    public ProductManager(ProductService productService) {

        this.productService = productService;

    }

    // 使用清晰的函数名和参数名,避免歧义。

    public Product getProductDetails(int productId) {

        try {

            // 调用简单的函数,达到避免函数内部过于复杂的目的

            Product product = this.fetchProductById(productId);

            if (product == null) {

                throw new ProductNotFoundException("Product with id " + productId + " not found.");

            }

            return product;

        } catch (Exception e) {

            // 处理错误,防止异常泄露

            handleProductException(e);

        }

    }

    // 函数名称清晰,易于理解其功能

    private Product fetchProductById(int productId) {

        return productService.getProductById(productId);

    }

    // 错误处理函数,用于处理Product相关的异常

    private void handleProductException(Exception e) {

        System.out.println("Failed to fetch product: " + e.getMessage());

        e.printStackTrace();

    }

}

"""

在这个示例中, ProductManager 类有清晰的命名规则,方法名明确并且简单(做一件事情)。每个方法都小于30行,并且参数没有超过3个。此外,所有可能的错误都被正确处理。代码的格式和风格保持一致,没有冗余的部分。最后,代码没有深度嵌套的逻辑,使其更易于理解。

##不符合《代码简洁之道》的示例:

"""

public class BadCode {

    int a, b, c, d, e;

    public int func(int x1, int x2, int x3, int x4, int x5, int x6, int x7) {

        a = x1;

        b = x2;

        c = x3;

        d = x4;

        e = x5;

        int f = a + b + c + d + e;

        int g = a - b - c - d - e;

        int h = a * b * c * d * e;

        int i = a / b / c / d / e;

        int j = a % b % c % d % e;

        try {

            int k = f + g + h + i + j;

            if (k > 0) {

                if (k > 10) {

                    if (k > 100) {

                        if (k > 1000) {

                            if (k > 10000) {

                                return k;

                            } else {

                                return k + 1;

                            }

                        } else {

                            return k + 2;

                        }

                    } else {

                        return k + 3;

                    }

                } else {

                    return k + 4;

                }

            } else {

                return k + 5;

            }

        } catch (Exception ex) {

            ex.printStackTrace();

        }

        return 0;

    }

}

"""

在这个示例中,

变量命名不清晰,如a, b, c, d, e, f, g, h, i, j, k,不能明确表示其用途

函数过于复杂,并且参数过多,超过了3个,有副作用

错误处理不恰当,只是简单地打印堆栈信息,并未对异常进行处理

格式不一致,例如变量和运算符之间没有统一的空格风格

冗余性,例如冗余的变量以及冗余的else声明

深度嵌套过多,if语句的嵌套层数大于3,使得代码难以理解。

##逐步思考

1、请先逐行读懂<函数代码>中的每一行代码含义并对整个代码逻辑进行理解,解释<函数代码>实现的功能

2、开始使用《代码简洁之道》原则优化代码

 TodoList生成提示词模板:

# 主题:

TDD测试用例文字描述(todolist)生成

## 需求描述:

xxxxxxxx

### 流程图

### 接口输入

### 接口输出

## 角色扮演:

你是一个20年工作经验的资深java语言编码专家,擅长TDD、Java核心语法、面向对象编程、Java集合框架、多线程编程、网络编程、数据库连接、代码重构、设计模式、架构模式、分层架构、微服务架构等技能

## 任务描述:

熟悉需求描述、接口输入和接口输出,按照完成步骤,输出符合格式要求的测试用例的文字描述,不需要输出代码

## 完成步骤:

-首先需求描述

-然后根据需求描述、按照格式要求生成测试用例的文字描述,测试用例包括正常场景用例和异常场景用例,对于每个用例包括输入和输出

## 格式要求:

-用例名称使用given-when-then格式

-用例名称不能有非法字符

## 示例

正常场景:

-xxxx

异常场景:

- xxxx

## 限制

让我们逐步思考

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词