refactoring相关内容

如何重构这些 switch case 以处理自然语言中的用户选择?

我正在编写几个嵌套的 switch 语句,在某些地方有很多情况. 我正在尝试找出一种方法来创建一个案例列表,然后在以后的 switch 语句中引用. 有没有办法做到这一点? 它肯定会清理我的代码. 例如,我有四个不同的“是"案例.回答. 我正在寻找一种方法将这四种情况存储在一个变量中,并在每次我想在 switch 中使用它们时调用该变量. Console.Write ..
发布时间:2022-01-19 11:11:02 C#/.NET

如何重构这个巨大的 switch 语句?

我继承了一些代码,其中包含一个 500 行的 switch 语句.基本上,它开启一个string任务并执行相应的动作. 从那以后,我将每个 case 语句移到了新类中它们自己的方法中.巨大的 switch 语句仍然存在,但不是内联每个案例的逻辑,而是调用一个方法,所以它更整洁. 问题是这些方法修改了很多不同的东西.50% 的方法需要传入 0 个参数.大约 40% 需要 5 个参数,剩下 ..
发布时间:2022-01-19 11:05:24 C#/.NET

重构长 switch 语句

我是 c# 中的程序,您通过口述命令来控制它,所以现在我有一个很长的 switch 语句.类似的东西 开关(命令){案例“显示命令":ProgramCommans.ShowAllCommands();休息;案例“关闭窗口":ControlCommands.CloseWindow();休息;案例“切换窗口":ControlCommands.SwitchWindow();休息;} 等等 几乎 ..
发布时间:2022-01-19 10:29:33 C#/.NET

使用语句 Roslyn 脚本/代码排序和删除(未使用)?

使用语句 Roslyn 脚本/代码排序和删除(未使用)?我正在寻找一些 .NET/Roslyn(编译器即服务)代码,它们可以在项目中运行并对未使用的 using 语句进行排序和删除.我相信罗斯林有可能吗?谁能指点我可以重写的代码? 解决方案 这是 Visual Studio 中的一个功能,但在学术上我认为你会从 SyntaxTree 中收集 using 语句,如下所示: var usin ..
发布时间:2022-01-17 08:52:07 C#/.NET

可以比较文件的子部分的 Diff 工具

我正在寻找一种差异工具,它可以让我仅将文件的一个子部分与另一个文件的一个部分进行比较,甚至可以比较它本身.最好基于 Eclipse,但会接受所有建议. 是的,我知道我可以将这两个部分复制到不同的文件中并进行比较,但是当您尝试进行大量重构时,这非常乏味. 基本上,我试图从遭受大量 ctrl-V '继承' 的代码库中删除尽可能多的重复代码 ;-) 但是随着时间的推移,粘贴的部分已经分开了一 ..
发布时间:2022-01-16 13:15:00 Java开发

在 C/C++ 中检测多余的#include?

我经常发现文件的标题部分一直在变大,但从未变小.在源文件的整个生命周期中,类可能已经移动和重构,并且很可能有很多 #includes 不再需要存在.将它们留在那里只会延长编译时间并添加不必要的编译依赖项.试图找出仍然需要哪些可能非常乏味. 是否有某种工具可以检测多余的#include 指令并建议我可以安全删除哪些指令? lint 可能会这样做吗? 解决方案 不是自动的,而是doxy ..
发布时间:2022-01-15 22:13:57 C/C++开发

Python Rope:如何在所有子模块重构中查找所有缺失的导入和错误

我正在尝试为每个模块及其子模块查找所有缺少的导入语句和错误. 是否有专门的工具来处理我正在尝试做的事情? 我写的代码,但看起来真的很糟糕,也许这样的东西已经存在了?: 导入操作系统def find_missing_imports(步行):对于步行项目:d = 项目[0]f_list = 项目[1]对于 f_list 中的 f:模块 = f[:-3]#posix_pathmodule_ ..
发布时间:2022-01-14 17:58:36 Python

重构现有系统的可测试性

我加入了一个开发产品的团队.该产品已经存在了大约 5 年左右,并且使用 ASP.NET WebForms.随着时间的推移,它的原始架构已经褪色,整个解决方案中的东西变得相对杂乱无章.这绝不是可怕的,但绝对可以使用一些工作;你们都知道我的意思. 自从大约 6 个月前加入项目团队以来,我一直在执行一些重构.其中一些重构很简单,Extract Method、Pull Method Up 等.一些重 ..
发布时间:2022-01-14 17:35:01 C#/.NET

使用字典重构 Ruby on Rails i18n YAML 文件

这个 StackOverflow 问题让我思考了什么是 Rails i18n 文件的良好结构,所以我想我'd 共享另一种结构来重构 Rails i18n yml 文件供您考虑/批评. 因为我愿意 保留默认的应用程序结构,以便我可以在视图中使用 t('.some_translation') 等速记“惰性"查找,并了解应用程序中使用翻译的位置, 尽可能避免重复字符串,尤其是单词不仅相同, ..

需要重构箭头反模式的想法

我继承了一个怪物. 它伪装成 .NET 1.1 应用程序处理符合医疗保健索赔支付 (ANSI 835) 标准的文本文件,但它是一个怪物.正在处理的信息与医疗保健索赔、EOB 和报销有关.这些文件由在前几个位置具有标识符的记录和根据该类型记录的规范格式化的数据字段组成.一些记录 ID 是控制段 ID,用于分隔与特定交易类型相关的记录组. 为了处理一个文件,我的小怪物读取第一条记录,确定即 ..
发布时间:2022-01-07 13:40:21 其他开发

应该如何实现大小受限的 stl 类容器?

在重构时,我想更改将条目添加到 std::vector 的数组,但为了兼容性(持久性、降级等),它仍然需要有一个上限. 拥有一个大小有限的 stl 类容器的最佳方法是什么(优雅的、类似 stl 的、有限的额外代码),因此您知道插入条目会失败? 编辑: 澄清一下:我想要一个类似 stl 的容器,它开始是空的,您可以填充条目并可能删除条目并迭代填充的条目,但这不允许放入超过例如50 个条目, ..
发布时间:2022-01-07 11:41:26 C/C++开发

如何简化空安全 compareTo() 实现?

我正在为这样的简单类实现 compareTo() 方法(以便能够使用 Collections.sort() 和 Java 提供的其他好东西平台): public class Metadata 实现 Comparable{私人字符串名称;私有字符串值;//想象一下这里的基本构造函数和访问器//不相关的部分省略} 我希望这些对象的自然排序是:1) 按名称排序 2) 如果名称相同,则按值排序;两种比 ..
发布时间:2022-01-06 22:38:07 Java开发

有什么办法可以在 VS2008 中用花括号 {} 包围代码块?

我总是发现自己需要用花括号括起一段代码{ },但不幸的是,这并未包含在 C# 环绕代码片段中,这似乎是一个疏忽.我也找不到关于构建自己的环绕片段的任何内容(只是其他类型的片段). 我实际上也在运行 Resharper,但它似乎也没有这个功能(或者我还没有想出如何激活它). 我们有一个编码标准,在if 或else 之后的if 或else 之后包括甚至一行代码,所以如果我可以只需让 Res ..
发布时间:2022-01-05 19:36:26 C#/.NET

在 MonoDevelop 中覆盖/实现成员

我正在查看 MonoTouch 上的复数视频.有一次,培训师右键单击派生类的名称,在“重构"菜单中有一个函数可以覆盖/实现该类的成员.然而,当我点击(最新版本)时,我只看到“重命名". 此链接中的人前段时间遇到了同样的问题,并提供了屏幕截图 - 但在 MonoTouch 讨论组中没有人回复: http://monotouch.2284126.n4.nabble.com/Right-Cl ..
发布时间:2022-01-05 14:55:34 其他开发

消除我通过像、monads 和其他东西传递的显式状态

我正在 F# 中阅读Land of Lisp 一书(是的,我知道很奇怪).对于他们的第一个示例文本冒险,他们使用了全局变量突变,我想避免它.我的monad-fu很弱,所以现在我正在做这样的丑陋状态: 让拾取玩家事物(对象:地图)=让 objs = objects.[player.Location]让尝试 = objs |>List.partition (fun o -> o.Name = thi ..

RxJS 重构嵌套映射语句

我有一个使用 @angular/http 从 API 加载数据的服务.我想使用此数据为我的 Components 创建检索到的数据的投影. 因此我写了以下代码: getById(id: string) {返回 this.http.get(`https://my-api.io/${id}`).map(response => response.json()).map(合同=>contract. ..
发布时间:2022-01-01 22:21:52 其他开发

将 jupyter notebooks 转为 python 脚本的最佳实践

Jupyter (iPython) 笔记本是当之无愧的一款用于代码原型设计和以交互方式进行各种机器学习工作的好工具.但是我在使用的时候,难免会遇到以下情况: 笔记本很快变得过于复杂和凌乱,无法作为笔记本进一步维护和改进,我必须用它制作 python 脚本; 说到生产代码(例如需要每天重新运行的代码),笔记本又不是最好的格式. 假设我已经在 jupyter 中开发了一个完整的机器学习管 ..
发布时间:2021-12-31 23:47:21 Python

从 Java 类中提取接口的自动化方法

我有一组定义 API 的具体类,我想从 API 的实际实现中提取这些类的接口(即:本质上是类型层次结构和公共方法). 例如,如果 API 中的公共类之一是 public class Foo extends Bar {/* 一些我不关心的字段 */公共无效方法(){/* 这里实现 */}公共无效其他方法(){/* 实现在这里 */}/* 一些我不关心的非公共方法 */} 我想分解一个接口 ..
发布时间:2021-12-31 14:54:48 Java开发