refactoring相关内容

注册账号测试用例怎么写?

这是关于这篇文章的后续问题 根据原始帖子的建议调整我的代码后,以下是我的完整工作代码. 但是,我有一些问题和疑问: 如何测试 createAccount() 是否可以成功创建帐户或可以抛出异常? 这是我的测试,但 createAccount() 没有参数,那么如何向其中添加输入以进行测试? def test_canCreateAccount(ctrl):#有效的邮箱和密码 ..
发布时间:2021-07-05 20:41:19 Python

限制 Webstorm 中的重构范围

有没有办法配置 Webstorm,以便在重构时忽略我项目的特定区域.具体来说,我希望能够忽略包含 3rd 方依赖项和构建资产的文件夹,例如 node_modules. 解决方案 您可以按照 此处.它们将被排除在重命名和其他重构范围之外. ..
发布时间:2021-07-05 20:41:16 其他开发

从 Spring 控制器中删除重复项

我一直在寻找一种方法来以某种方式减少在我的 Spring MVC 控制器中因细微差异而重复的代码量,但到目前为止搜索 SO 问题只产生了一些没有任何令人满意的答案的问题. 我想删除的一个重复示例是这样的,其中用户创建页面和角色创建页面有相似之处: @RequestMapping(value = "user/create", method = RequestMethod.GET)公共字符串 ..
发布时间:2021-07-05 20:41:13 Java开发

如何处理 TDD 的重构阶段

在 TDD 会话过程中,假设我编写了一个失败的测试,然后让它通过.我通过从原始单元中提取代码进行重构,使用诸如提取类和移动方法之类的重构.现在进一步假设我的原始测试不再覆盖提取的代码,因为原始代码现在模拟了它的依赖项,这对于单元测试来说是正确的. 返回并在提取的代码上改进测试是否合适?或者我是否在重构过程中以未经测试的代码结束时犯了一个错误?感觉就像我的代码库正在扩展,我必须重构,我正在重构 ..
发布时间:2021-07-05 20:41:07 其他开发

C# - 将“对象"参数转换为该对象的类型?

C# 大家好, 我将一个对象传递给一个方法. 我想将该对象强制转换为它的特定类,以便我可以执行它自己的特定方法?我该怎么做? Move( new Cat() );移动(新鸽子());公共无效移动(对象 objectToMove){如果(objectToMove==猫){Cat catObject = objectToMove as Cat;catObject.Walk();}否 ..
发布时间:2021-07-05 20:41:00 C#/.NET

我什么时候应该中断一个函数?

将长函数拆分为主函数和辅助函数是明智之举. 我知道模块外部只有主函数会被调用,但它的长度可能会令人生畏. 教科书对行数有限制,但我觉得这太死板了. 附言我正在用 Python 编程,需要处理传入的消息.该函数返回一个包含消息的元组,但采用 Python 的内部数据类型.因此,您可以看到每种消息类型的独立代码. 重复问题 什么时候函数过长? 解决方案 我认为您需 ..
发布时间:2021-07-05 20:40:57 其他开发

如何在 Ruby 应用程序中找到未使用的方法?

我有一个包含很多类/模块的 Ruby 应用程序,其中一些没有使用.有没有一种简单的方法可以找出哪个? 我正在考虑做一个配置文件,然后使用它的输出.还有其他想法吗? 解决方案 像 rcov 这样的覆盖工具可能会有所帮助. https://github.com/relevance/rcov 当您发现测试未涵盖的方法时,您应该为它们编写测试或找出它们是否被使用. 删除未使 ..
发布时间:2021-07-05 20:40:54 其他开发

在列表中查找匹配项的最简洁方法

在列表中查找内容的最佳方法是什么?我知道 LINQ 有一些不错的技巧,但让我们也获得有关 C# 2.0 的建议.让我们为这个常见的代码模式获得最好的重构. 目前我使用这样的代码: //mObjList 是一个 ListMyObject match = null;foreach(mObjList 中的 MyObject mo){如果(标准(mo)){匹配 = 莫;休息;}} 或 //mO ..
发布时间:2021-07-05 20:40:48 C#/.NET

用 Java 重构代码,替代大型 if 语句

我正在重构我正在处理的项目中的一些代码,我遇到了一个遵循以下格式的大型 if/else if 语句: if (changer instanceof AppleChanger){面板 = 新的 ApplePanel();}else if (changer instanceof OrangeChanger){panel = new OrangePanel();} 现在我的第一个冲动是使用多态重构它 ..
发布时间:2021-07-05 20:40:45 Java开发

保留向后兼容性的功能重命名

我重构了我的旧代码,想按照 pep8 更改函数名称.但我想保持与系统旧部分的向后兼容性(无法完全重构项目,因为函数名称是 API 的一部分,并且一些用户使用旧的客户端代码). 简单示例,旧代码: def helloFunc(name):打印 '你好 %s' % 名称 新: def hello_func(name):打印 '你好 %s' % 名称 但是这两个函数都应该可以工作: >> ..
发布时间:2021-07-05 20:40:42 Python

在 Visual Studio 中一步用文件名重命名类

我是一名多年的 Java 程序员,但目前我使用 C# 编写代码.我习惯了,当我改变文件名时,类名也会改变,反之亦然.这在我的 Visual Studio 中不起作用.我必须分别重命名类名和文件名,有时对我来说很烦人,因为我总是忘记它,因此导致我有不同的类名和文件名.Visual Studio 中是否有选项可以将重命名放在一个步骤中? 解决方案 重命名文件工作正常 - 它会提供更改代码以匹配 ..
发布时间:2021-07-05 20:40:37 C#/.NET

哪些算法可以分析库裂变的调用依赖关系?

假设我有一个包含一堆相互依赖的函数的库,这个库太大了,我想拆分它.有哪些算法可以找到合适的分区? 简单的例子,里面有四个函数:alpha、beta、gamma和delta. beta 和 gamma 都调用 delta. module1 调用 alpha 和 beta. module2 调用 gamma. module3 调用 alpha、beta 和 gamma. 算法的 ..
发布时间:2021-07-05 20:40:34 其他开发

你如何处理冗余代码?

我有一个类,它是为不再需要的特定目的而编写的代码库项目的一部分.所以问题是你如何处理这样的代码?您是简单地删除它,还是记住它,未来的开发人员可能会遇到它而没有意识到他们可以忽略它,或者您是否有某种存档系统,是否存在公认的“模式"?使用... 解决方案 删除它.您以后可以随时从版本控制系统取回它.你确实有版本控制,不是吗? ..
发布时间:2021-07-05 20:40:31 其他开发

当您要向一个几乎没有 * 单元测试代码的大型(肮脏)代码库添加一些新功能时,您会怎么做?

Martin Fowler 说我们应该进行重构在添加新功能之前(因为原始程序结构不合理). 所以我们都想重构这个脏代码库,这是肯定的.我们也知道,如果没有单元测试代码,很容易引入细微的错误. 但这是一个庞大的代码库.向其添加一整套测试似乎不切实际. 在这种情况下你会怎么做? 解决方案 我的建议是你尽可能少接触并添加你需要的东西.我发现最好别管闲事,尤其是在截止日期紧迫的情 ..
发布时间:2021-07-05 20:40:28 其他开发

重写还是修复?

我相信你们都去过那里,你承担了一个项目,那里有一个吱吱作响的旧代码库,几乎不适合用途,你必须决定要么从头开始重新编写它,要么修复什么已经存在. 传统观点倾向于建议您永远不要尝试从头开始重写,因为失败的风险非常高.那么当你遇到这个问题时,你是怎么做的,你是如何做出决定的,结果如何? 解决方案 这真的取决于它有多糟糕. 如果它是一个小系统,并且你完全理解它,那么重写并不疯狂. ..
发布时间:2021-07-05 20:40:25 其他开发

在 Visual Studio Code 中重命名 PHP 重构

在 Visual Studio Code 中是否对 PHP 进行了重命名重构?这是唯一阻止我从 NetBeans 完全迁移到 VSC 的事情.重命名对我来说非常重要(不是搜索/替换). 解决方案 有 {"command": "editor.action.changeAll","key": "ctrl+f2","when": "editorTextFocus && !editorReado ..
发布时间:2021-07-05 20:40:22 PHP