摆脱匈牙利表示法的最佳方法?

2023-11-25

假设您继承了一个 C# 代码库,该代码库使用一个具有 200 个静态方法的类来提供核心功能(例如数据库查找)。在该课程的许多噩梦中,大量使用了匈牙利表示法(不好的那种)。

您会重构变量名称以删除匈牙利表示法,还是会保留它们?

如果您选择更改所有变量以删除匈牙利表示法,您的方法是什么?


重构——我发现这种规模的匈牙利表示法确实会干扰代码的自然可读性,而这个练习是熟悉代码内容的好方法。

但是,如果有其他团队成员了解代码库,则您需要在重构方面达成共识,并且如果任何变量暴露在一个项目之外,那么您将不得不不理会它们。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

摆脱匈牙利表示法的最佳方法? 的相关文章

  • 为函数想出好的名字时遇到困难

    因此 我经常难以用简洁的名称描述函数 对于重用的功能来说 这通常不是问题 但通常需要将大型流程分解为子功能 这些通常会得到奇怪的名字 例如connectionsToAccessLines or handleWallVisionSplit或类
  • 过早重构? [关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 我们都听说过过早优化 http en wikipedia org wiki Program optimization When to optim
  • 为什么建议在源文件末尾有空行?

    一些代码风格工具推荐这样做 我记得看到一些 unix 命令行工具警告缺少空行 多出一个空行的原因是什么 如果文本文件中的最后一行数据不是以换行符或回车符 换行符组合终止 许多旧工具会出现错误行为 他们忽略该行 因为它以 Z eof 结尾
  • 使用标志寄存器作为布尔返回值是否被认为是不好的做法?

    我正在 x86 汇编程序中编写一些程序 这些程序修改 ZF 作为返回布尔值的方法 因此我可以执行以下操作 call is value correct jz not correct 我想知道这是否被认为是不好的做法 因为一些编码标准规定简单的
  • C 中的三重指针:这是风格问题吗?

    我觉得 C 中的三重指针被视为 坏 对我来说 有时使用它们是有意义的 从基础开始 单指针有两个目的 创建数组 并允许函数更改其内容 通过引用传递 char a a malloc or void foo char c means I m go
  • Juval Lowy 的 C# 编码标准问题

    我喜欢并强烈推荐朱瓦尔 洛伊 http www idesign net C 编码标准 http www idesign net Downloads GetDownload 1985 Juval 明确避免了每个指令的基本原理 以保持标准的严格
  • 使用 Qt,有哪些好方法可以分解包含 GUI 逻辑的大型源文件?

    我正在使用 Qt 5 开发一个 C 项目 它有一个包含大量 UI 元素的复杂窗口 该窗口是使用 Qt Designer 设计的 并从 UI 文件加载 我发现 Qt 的典型模式是在其主类中编写窗口 UI 的所有逻辑 即他们文档中的 单一继承方
  • 为什么在基于 Lisp 的语言中习惯上将许多右括号放在一行上?

    通常代码如下所示 one thing another thing arg1 f arg5 r another thing arg1 f arg5 r 为什么不喜欢这样 one thing another thing arg1 f arg5
  • 强制使用牙套

    作为我不久前写的代码标准文档的一部分 我强制要求 您必须始终对循环和 或条件代码块使用大括号 即使 特别是 它们只有一行 Example this is wrong if foo bar else baz while stuff thing
  • 多次或单次 Try Catch [重复]

    这个问题在这里已经有答案了 我正在清理一些代码 但我不确定哪条路线更好 目前 我的大部分方法都有一个 try catch 块 它在最后处理一些单独的异常 但我认为有更多的 try catch 块对于维护来说会更好 然而 在分解代码时 我发现
  • 迭代还是使用计数器,这就是问题

    每当有人开始使用 STL 并且他们有一个向量时 您通常会看到 vector
  • 寻找一种重构 D3.js 风格的方法链接模式的方法

    在学习 D3 js 时 我遇到了博客文章 http bost ocks org mike chart 解释其可重用代码单元背后的主要设计模式 我复制了下面的相关代码 下面呈现的模式的方式正是在 D3 代码库和插件中使用的方式 example
  • x 或 y:可接受的习语,还是混淆?

    我必须从可能为 None 的变量中提取值 并考虑一些默认值 我首先写了这段代码 if self maxTiles is None maxX maxY 2 2 else maxX maxY self maxTiles 然后我意识到我可以将其缩
  • 耦合、内聚和迪米特定律

    The 德墨忒耳定律 http en wikipedia org wiki Law of Demeter表示你应该只与你直接了解的对象交谈 也就是说 不要执行方法链接来与其他对象通信 当您这样做时 您正在与中间对象建立不适当的链接 不恰当地
  • 如何将 rubocop 与 Rake 集成?

    rubocop https github com bbatsov rubocop是 Ruby 的代码风格检查器 与 rubocop 类似的工具 Cane 可以与 Rake 集成 https github com square cane in
  • 使用 vim 重构目录中的类/方法/字符串的有效方法

    到目前为止 我一直在使用查找和替换操作手动重构代码 s stringiwanttoreplace newstring g in vim 但这是一个缓慢而费力的过程 如果我有的话字符串我想更换在特定目录内的许多文件中 我当前 典型的缓慢而费力
  • 使用 shoulda 重构 Rails 模型上的 rspec 测试

    了解后应该匹配器 https github com thoughtbot shoulda matchers通过回答关于属性可访问性测试的另一个 StackOverflow 问题 https stackoverflow com a 11849
  • “if”在 ASP.NET MVC View (.aspx) 文件中被认为有害?

    我记得看到一个博客 或其他内容 说你不应该在 ASP NET MVC 的 aspx 文件中使用 但我不记得它说的替代方案是什么 有人记得看过这个并指出我吗 基本上 这意味着您的视图中不应该有大量的 if 语句 您的控制器和视图模型应该能够处
  • 编写健壮的 R 代码:命名空间、屏蔽和使用 `::` 运算符

    简洁版本 对于那些不想阅读我的 案例 的人来说 这就是本质 最小化新包破坏现有代码 即编写您编写的代码 的机会的推荐方法是什么尽可能坚固 充分利用该功能的推荐方法是什么 命名空间机制 when a just using贡献的软件包 比如在一
  • 您是否将信息添加到每个 .hpp/.cpp 文件的顶部? [关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 创建新的 C 头文件 源文件时 您会在顶部添加哪些信息 例如 您是否添加日期 您的姓名 文件描述等 您是否使用结构化格式来存储此信息 e g F

随机推荐

  • 如何在 Windows 7 上设置 mongo db dbpath?

    如何在 Windows 7 上设置 mongo db dbpath 我在 C 盘中创建了一个目录 data db 但它不起作用 mongodb 数据目录不是特定于应用程序的 这是mongod exe具体流程 As 文档 says 默认情况下
  • 检测SQL注入

    我来到了一家已经有一个成熟项目的公司 但是在我之前在这里工作的程序员没有遵循约定 也没有使用参数化 SQL 查询 结果是在一个非常大的地方有超过 1000 个地方可能容易受到 SQL 注入攻击的项目 我需要找到一个解决方案 能够自动检测代码
  • 使用 Jsoup 打开连接,获取状态码并解析文档

    我正在使用 jsoup 创建一个类 它将执行以下操作 构造函数打开一个到 url 的连接 我有一个方法可以检查页面的状态 即 200 404 等 我有一个方法来解析页面并返回 url 列表 下面是我正在尝试做的事情的粗略工作 不是很粗略 因
  • void * 类型化函数参数

    我有一个功能 void Client void threaData 你能告诉我一些关于void threadData范围 当你使用void 参数以及为什么 void 是一个通用指针 可以指向任何对象类型 上面的函数可以接受任何类型的指针 也
  • Mongodb 崩溃收到信号 15(终止)

    我的 mongodb 服务器突然收到信号 15 已终止 我不知道为什么 mongodb 崩溃了 以下是日志消息 Mon Jun 27 07 33 31 701 signalProcessingThread got signal 15 Ter
  • MongoDB聚合项目字符串到ObjectId

    我正在尝试在聚合查询中将十六进制字符串转换为其等效的 ObjectID 我尝试了两种不同的方法 db omvas aggregate project EID let vars id EID in ObjectId id group id E
  • Server.MapPath 和 HostingEnvironment.MapPath 有什么区别?

    有什么区别吗Server MapPath and HostingEnvironment MapPath Does Server MapPath 有什么优势HostingEnvironment MapPath 我最初的问题是在服务器上映射文件
  • 如何使用 GridBagLayout 在 JPanel 中对齐组件中心?

    当我尝试对齐组件时 它要么向左侧移动 要么向右侧移动 所以我只想解决这个问题 并告诉我如何将面板的尺寸设置为 400 x 350 像素 这是我的代码 titleLabel and ResultLabel应居中对齐 public TimeGu
  • 如何在全尺寸窗口中运行 R Shiny App?

    是否可以设置闪亮选项以全视图模式 即最大化窗口 自动打开应用程序 我的用户界面的设计方式只有在全视图浏览时才美观 我的源代码写在两个标准文件中 server R 和 ui R 我对这两个选项都感兴趣 在 1 RStudio 窗口和 2 外部
  • 在 Flutter 中创建带有堆叠列表项的 ListView

    I stumbled upon this design in dribble and in trying to implement it in flutter I was able to create the curves using cl
  • kafka Consumer 0.9向后兼容吗?

    即将推出的 kafka Consumer 0 9 x 是否会与 0 8 Broker 兼容 换句话说 是否可以只切换到新的消费者实现 而不触及其他任何东西 根据文档卡夫卡0 9 0 您不能使用新的消费者从 0 8 x 代理读取数据 原因如下
  • C 中的 fopen 没有 fclose

    如果我使用打开文件会发生什么fopen some n没有打电话的次数fclose on it 可能会出现缓冲区溢出问题吗 如果你继续fopen没有fclose然后最终你的未来会召唤fopen将开始失败 您的程序可用的文件描述符数量有限 请参
  • Python从字符串中解析int

    test1 name1 test2 name2 test3 name45 test4 name1231231 假设我有一堆以 名称 开头的字符串 后跟任意长度的数字 如何解析字符串中的数字 Is regex唯一的方法或者是否有内置模块可以完
  • 为什么convertToFastObject函数使它变得更快?

    我在1 0版本发布后尝试了Dart SDK 并用Dart编写了一个简单的hello world程序 然后 使用 SDK 工具生成了 JavaScript 文件 helloworld dart js 我查看了输出的js代码 我看到有一个名为c
  • 替换字符串中最后一次出现的子字符串

    你怎样才能更换last字符串中是否出现子字符串 正则表达式也可以执行此任务 这是一个可行的示例 它将用 Bumblebee Joe 取代最后出现的 Aquarius text This is the dawning of the age o
  • URL 编码和 HTML 编码 NSString

    他们是编码 解码 HTML 和 URL 的方法 在 Xcode 中 使用 Objective C 吗 NSString stringWithContentsOfFile lt NSString path gt encoding lt NSS
  • IE 在从控制台调用时支持 forEach(...),但在从代码调用时不支持

    我正在控制台运行这个片段 在 IE 中 它会按预期生成输出 在 Cr 和 FF 中运行相同的代码以供参考 确认了行为的一致性 a b forEach function element console log element 但是 当运行以下
  • 使用 Three.js 启用平滑着色

    我正在使用 Three js 使用 MTL 和 OBJ 文件渲染带有纹理的对象 我的代码可以工作 但我的模型显示为平面阴影 如何启用平滑着色 var scene new THREE Scene var mtlLoader new THREE
  • 使用 jQuery 在 5 秒内显示一个 div

    我想在 5 秒内淡入我网站上的 div 另外 我不想使用CSSDisplay none隐藏div 因为这个div非常重要 我想如果用户没有启用JS div将永远隐藏 那么你们能告诉我如何在网站加载时隐藏 div 并使其在 5 秒内可见吗 谢
  • 摆脱匈牙利表示法的最佳方法?

    假设您继承了一个 C 代码库 该代码库使用一个具有 200 个静态方法的类来提供核心功能 例如数据库查找 在该课程的许多噩梦中 大量使用了匈牙利表示法 不好的那种 您会重构变量名称以删除匈牙利表示法 还是会保留它们 如果您选择更改所有变量以