问题标签 [maintainability]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
9 回答
4270 浏览

java - if 和 if-else 之间有什么明显的区别吗?

鉴于以下代码片段,有什么明显的区别吗?

对比

或者使用这段代码,单退出原则会更好吗?

有任何可察觉的性能差异吗?你觉得其中一个比其他的更易于维护/可读吗?

0 投票
4 回答
210 浏览

maintainability - 其中哪个是更好的做法?

您有一系列功能要执行。案例A:它们不相互依赖。这些哪个更好?

或者

案例B:它们确实取决于成功完成前一个。

或者

或者

当然,更好意味着更易于维护和更易于遵循。

0 投票
3 回答
650 浏览

python - 长时间运行的数据处理python脚本中的程序结构

对于我目前的工作,我正在编写一些长时间运行(考虑数小时到数天)的脚本,这些脚本执行 CPU 密集型数据处理。程序流程非常简单——进入主循环,完成主循环,保存输出并终止:我的程序的基本结构往往是这样的:

这很快就会变得难以管理,所以我想将它重构为更易于管理的东西。我想让它更易于维护,而不牺牲执行速度。

然而,每一段代码都依赖于大量变量,因此将部分计算重构为函数会使参数列表很快变得失控。我应该将这种代码放入python类中,并将局部变量更改为类变量吗?从概念上讲,将程序变成一个类并没有多大意义,因为该类永远不会被重用,并且每个实例只会创建一个实例。

这种程序的最佳实践结构是什么?我正在使用python,但假设现代面向对象的语言特性,这个问题相对语言无关。

0 投票
7 回答
7917 浏览

visual-studio - Visual Studio Code Metrics 和 switch case 的可维护性指标

作为一个喜欢遵循最佳实践的人,

如果我运行代码指标(在解决方案资源管理器中右键单击项目名称并选择“计算代码指标” - Visual Studio 2010):

它给了我61的可维护性指数

(当然,如果你只有这个,这是微不足道的,但如果你使用像类这样的实用程序,其哲学正在做这样的事情,你的实用程序类的可维护性指数将非常糟糕..)

这有什么解决办法?

0 投票
1 回答
619 浏览

python - while循环中的小代码冗余(感觉不干净)

所以,在 Python 中(尽管我认为它可以应用于许多语言),我发现自己经常遇到这样的事情:

也许我太挑剔了,但我不喜欢这条线the_input = raw_input("what to print?\n")必须重复。它降低了可维护性和组织性。但我没有看到任何避免重复代码而不进一步恶化问题的解决方法。在某些语言中,我可以这样写:

这绝对不是Pythonic,Python 甚至不允许在循环条件 AFAIK 内进行赋值。

这个有效的代码修复了冗余,

但也感觉不太对。这while 1意味着这个循环将永远运行;我正在使用一个循环,但给它一个假条件并将真实的条件放入其中。

是我太挑剔了吗?有一个更好的方法吗?也许有一些我不知道的为此设计的语言结构?

0 投票
2 回答
2706 浏览

java - 在 Java 中跟踪可维护性指数 (MI)

我需要一个快速、可靠(开源将是一个优势)的 Java 工具,用于跟踪可维护性指数和类似的代码指标,以向客户展示处理重构问题的进度。

您对申请有何建议?

0 投票
2 回答
289 浏览

winforms - WinForms MenuStrip 隔离以提高代码可维护性

在 Windows 窗体、C#、.NET 3.5、VS2008...

将 MenuStrip(或任何复杂的控件组)的代码及其子菜单项与我的表单的其余部分隔离的好方法是什么?

例如,当我有一个带有多个菜单的 MenuStrip 并且每个菜单都有多个菜单项时,这些菜单项都有点击事件,大量的代码被注入到 Form.Desinger.cs 文件和 Form.cs 中文件。这在技术上不会造成任何问题,但是将这么多东西都倾倒在一个地方(连同表单中的其他所有东西)只是感觉不对。

在我的整个项目上运行代码度量,该表单被标记为具有任何项目文件中最差的可维护性索引。通常,我不会太教条地注意代码度量工具的方向,但在这种情况下,我完全同意。

根据 Code Metrics,该表单违反了以下最佳实践:

  1. 类耦合过多
  2. 代码行太多
  3. 整体可维护性低

将 MenuStrip 与表单的其余部分隔离的可能解决方案:

  1. 将其填充到用户控件中
  2. 其他想法?
0 投票
4 回答
456 浏览

c# - 单元测试和数据库

这个关于单元测试的问题引发了另一件困扰我的事情。在访问数据库时,我反复讨论了三种进行单元测试的方法。

  1. 创建模拟对象并将它们插入。这具有不需要数据库的优点,但它很耗时,而且我不确定我得到了多少投资回报。我已经进入了国际奥委会和起订量,但似乎仍然很痛苦。
  2. 创建设置和拆卸数据库脚本以创建已知案例并对其进行测试。同样,这可能是时间密集型的,但在大多数情况下仍然比模拟对象更容易创建。假设他们的本地主机上有 SQL 服务器,其他工作人员仍然可以运行它。
  3. 手动检查开发数据库并修改单元测试。密集的手动工作,但如果我有一个不变的“测试集”,它似乎工作正常。在我的机器上,至少:-)。

我知道选项 1 是进行单元测试的“正确”方式,但在这三个选项中,这可能是我使用最少的选项(尽管最新的项目是 IOC,所以这扇门对我敞开)。我意识到这在很大程度上取决于正在模拟什么以及正在测试什么,但是我在这里缺少什么?

如果上下文有帮助,我在 C# 商店,编写内部应用程序,只有少数开发人员。

0 投票
5 回答
6666 浏览

c# - 如何在 C# 和 C++ 代码之间共享常量?

我正在编写两个进程,其中一个使用 C# 和 WCF,第二个使用 C++ 和 WWSAPI。我希望能够在一个地方定义用于两者之间通信的地址,并让 C# 和 C++ 都使用它。这可能吗?

我最接近的是在 IDL 中定义常量,然后使用 MIDL 和 TLBIMP 将其放入 C# 可以使用的 DLL 中。然而,这似乎并没有暴露常量,或者至少我不知道如何让它这样做。也许它仅限于类型定义。

还有其他建议吗?

0 投票
1 回答
343 浏览

silverlight - 您如何评估 HTML5 与 Silverlight 的代码可维护性

比较 HTML5 和 Silverlight 作为 Web 开发平台是一个热门话题,争论通常集中在 HTML5 的准备情况或安装 Silverlight 插件的附加步骤上。但是假设不存在这样的问题:所有浏览器都对 HTML5 有很好的支持,并且所有浏览器都内置了 Silverlight。我知道这是错误的假设,但它可以帮助我专注于其他事情:有了这样的假设,您会为 .NET 开发团队中的富 Web 客户端开发选择什么?

我相信其中一个重要因素将是代码编写经验:编写干净的代码有多容易,长时间维护它有多容易?你有这方面的经验吗?