问题标签 [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 投票
1 回答
268 浏览

c# - 在什么情况下我不应该关心 Visual Studio 的 Code Metrics 中的可维护性指数?

在我几乎每天都使用 Visual Studio 之后,我今天偶然发现了 Code Metrics 的东西……几乎是我的一生。我认为它从 VS2008 左右就已经存在,但我不想玩它。

我的解决方案中的大多数项目都具有相当高的可维护性指数——在我的“报废”项目中分别为 85、83、86 和 76 和 59。我确实记得在使这些废弃项目看起来像样方面付出了很少的努力,所以我同意这个索引。

但我无法想象这是一个完美的衡量标准。在什么情况下我应该理所当然地不同意索引?

0 投票
8 回答
2142 浏览

perl - 是什么让 Perl 代码可维护?

我已经编写 Perl 好几年了,它是我首选的文本处理语言(我研究的许多遗传学/基因组学问题很容易归结为文本处理问题)。Perl 作为一门语言可以是非常宽容的,并且可以用 Perl 编写非常糟糕但实用的代码。就在前几天,我的朋友说他称 Perl 为只写语言:编写一次,理解一次,完成后永远不要尝试返回并修复它。

虽然有时我确实为编写糟糕的脚本而感到内疚,但我觉得我也在 Perl 中编写了一些非常清晰且可维护的代码。但是,如果有人问我是什么代码清晰和可维护,我将无法给出自信的答案。

是什么让 Perl 代码可维护?或者更好的问题是是什么让 Perl 代码难以维护?假设我不是唯一维护代码的人,其他贡献者,像我一样,不是专业的 Perl 程序员,而是具有编程经验的科学家。

0 投票
5 回答
967 浏览

java - Google App Engine + Java 的替代品

如果我使用 Java 在 GAE 上开发我的 Web 应用程序,将来我是否会有轻松的迁移机会,还是会坚持使用 GAE?

Google App Engine + Java 的其他替代方案是什么?

不是:

0 投票
4 回答
2121 浏览

c# - 粗略的代码。国际奥委会救援

关于IoC 容器的有用性的问题,获胜的提交者提到,使用 IoC 容器,您可以采取以下措施:

对此:

问题:

  • 哪个神奇的 IoC 容器提供了这种好处?
  • 一个实现这个的例子?
  • 有什么缺点吗?
  • 在具有复杂依赖关系的项目中,当我尝试将数据绑定应用到这些对象时,我会哭吗?
0 投票
2 回答
99 浏览

architecture - 如何专业地热更新应用程序

我想知道有多大的应用程序(具有多个应用程序服务器和负载均衡器)可以热更新到实际版本而无需为用户脱机。在这里跳过数据库shema - 仅应用程序层。

例如,有几个由 haproxy 平衡的 glassfish 服务器,我们想要更新位于多个服务器上的应用程序。

在这种情况下使用什么?我知道这可能很复杂,但请告诉我方法。

0 投票
2 回答
771 浏览

java - 在全局位置存储异常消息

我希望有一个存储异常消息的位置(这些不是面向用户的)。我也有一些异常,它们可能有不同的错误消息和代码。这些代码仅用于文档和通信目的。但是,将所有错误消息集中在一个位置对于参考错误并为操作人员提供建议的修复非常有价值

我正在考虑这些:

  1. 所有异常消息的资源包
  2. 全局枚举,每个枚举都包含一条消息和代码
  3. 每个 Exception 类中的枚举,每个都有异常可以具有的消息和代码。

哪个是最好的选择?

0 投票
1 回答
483 浏览

java - android平台sqlite数据库的可扩展访问

我对 android sdk 和数据库还很陌生,并且一直在寻找这个问题的答案。

我正在尝试构建一个在数据库中有多个表的应用程序。例如一个用于武器、盔甲等。

但是,我的 DatabaseManager 类处理我的所有表创建、DatabaseHelper 内部类和数据填充,它是为一个需要高度维护的非常大的类创建的。每次我想添加或删除表列时,我都需要更改相当多的代码区域, - 每次引用在该表中添加一行数据 - 上面调用的方法 - 返回所有的方法数据库行 - 创建表的辅助类中的代码 - 任何特定的更新方法

我的问题是:肯定有一些更好的方法来编码这个系统,也许使用数据库不是最好的方法,或者我只是不习惯这么大的课程,只在大学和我最大的课程中学习过 java仅包含 400-600 行代码。

谢谢你的帮助!

0 投票
1 回答
488 浏览

.net-4.0 - 实体框架的 Include() 是否有一种内置方法可以避免使用魔术字符串?

可能重复:
Entity Framework Include() 强类型

好的,我有一个实体框架查询,我使用 Include 告诉它我想要加载一个相关的对象:

var employees = _entities.Employees.Include("Manager").ToList()

通过使用包含,我避免为每个员工的经理记录生成查询(取而代之的是在查询中使用友好的 JOIN,并且数据库再也不会受到打扰)。

但是魔术字符串“Manager”的使用令人不安,尤其是在来自据称更原始、快速和肮脏的 Linq2SQL 之后。从编码的角度来看,它就像一把上膛的枪,准备抛出一个应该在编译时捕获的运行时异常。它还极大地阻碍了重构。

是否有任何内置的属性或方法来解决这个问题?例如,我将Manager.EntityKeyPropertyName其视为静态字符串属性,但这似乎不是我想要的。我宁愿不在某处手动添加硬编码的常量列表,但它会比裸智能盲魔术字符串更好。

0 投票
5 回答
664 浏览

c# - 使用为 SqlDataReader 中的每一行调用委托的方法有什么缺点?

当我发现一个新想法时,我总是坚持下去,看不到它的弱点。当我开始在一个大型项目中使用新想法时,就会发生糟糕的事情,后来发现这个想法非常糟糕,我不应该在任何项目中使用它。

这就是为什么,有一个新想法并准备在一个新的大型项目中使用它,我需要你的意见,尤其是负面的


很长一段时间,在必须直接访问数据库的项目中,我厌倦了一遍又一遍地键入或复制粘贴以下块:

所以我做了一个小班,它允许写类似的东西来做和上面一样的事情:

第二种方法是:

  • 写的更短,

  • 更容易阅读(至少对我来说;有些人可能会说实际上,它的可读性要差得多),

  • 更难出错(例如在第一种情况下,我经常忘记在使用之前打开连接,或者我忘记了while阻塞等),

  • 在 Intellisense 的帮助下更快,

  • 更加简洁,尤其是对于简单的请求。

例子:

在一个小项目中用 simple 和 generic 实现了这样的东西后ExecuteNonQuery,我ExecuteScalar很高兴看到代码更短且更易于维护。ReadManyRowsDataAccess<T>.ReadManyRows

我发现只有两个缺点:

  • 对需求的一些修改将需要大量的代码更改。例如,如果需要添加事务,用普通的方法很容易做到SqlCommand。如果改用我的方法,则需要重写整个项目以使用SqlCommands 和事务。

  • 命令级别的轻微修改将需要从我的方法转向标准SqlCommands。例如,仅查询一行时,DataAccess必须扩展任一类以包含这种情况,或者代码必须直接使用SqlCommandwithExecuteReader(CommandBehavior.SingleRow)代替。

  • 可能会有很小的性能损失(我还没有精确的指标)。

这种方法的其他弱点是什么,尤其是对于DataAccess<T>.ReadManyRows

0 投票
2 回答
111 浏览

xml - 在 XML 层次结构中添加属性或创建新级别?

我目前正在处理一个为只有 2 个级别的 XML 层次结构编写的 XML 文档。现在,我想向它添加一个一对多的分类,这会破坏与该文件一起使用的大部分代码。

我可以将该分类添加为新级别,也可以将其实现为同一级别的属性(几乎就像标记一样)。

当前的:

建议的:

或者:

哪种方法更易于维护?