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

sql - 聚合还是不聚合,这是数据库架构设计的问题

如果您正在执行最小/最大/平均查询,您更喜欢使用聚合表还是简单地查询原始表中的一系列行?

这显然是一个非常开放的问题,没有一个正确的答案,所以我只是在寻找人们的一般建议。假设原始数据表由时间戳、数字外键(比如用户 ID)和十进制值(比如购买金额)组成。此外,假设表中有数百万行。

我都做了,我很伤心。一方面,聚合表给了我更快的查询速度,但代价是增加了额外的表。显示聚合范围的当前值要么需要完全返回原始数据表,要么需要组合更细粒度的聚合。我发现在应用程序代码中跟踪查询哪个聚合表的时间比您认为的要多,并且需要更改架构,因为原始聚合范围总是不够的(“但我想看看我们在过去 3 个支付期的销售额!”)。

另一方面,从原始数据中查询可能会非常慢,但让我对数据范围非常灵活。当范围边界发生变化时,我只需更改查询,而不必重建聚合表。同样,应用程序代码需要更少的更新。我怀疑如果我在索引方面更聪明(即始终具有良好的覆盖索引),我将能够减少从原始数据中选择的惩罚,但这绝不是灵丹妙药。

无论如何我可以两全其美吗?

0 投票
6 回答
570 浏览

jquery - jQuery 重构/维护

我在 SO 周围进行了一些搜索,但没有找到任何对我有帮助的问题/答案。问题是我的 jQuery 函数调用变得太大而无法维护。我想知道我是否应该进行更多重构,或者是否有更好的方法来完成所有这些调用。当我进行一次调用时,您会看到,作为函数参数的匿名函数最终变得非常大,并且使代码的可读性变得很糟糕。理论上我可以将所有这些分解成它们自己的功能,但我不知道这是否是最佳实践。这是到目前为止的一些 jQuery 的示例:

正如您所看到的,由于我调用的许多函数都将函数作为参数,所以当我创建匿名函数时,我最终会陷入混乱(这段代码中还有大约 3 个匿名函数声明)

我是否应该简单地制作一堆函数并调用它们以使其更具可读性。我反对这一点的唯一原因是因为我声明了一堆只使用一次的函数。

在此先感谢您的帮助!

0 投票
7 回答
670 浏览

maintainability - 编码实践:你对一个 170 万 LOC 的项目有什么看法?

我正在听一个小组讨论,其中有人提到他们的“引擎”不是 1.3,但现在是 170 万行代码。这让我害怕。我无法想象行数、模块的数量等等。我一直觉得 C++ 处理模块的能力不如其他语言。我觉得大型项目更难管理,更喜欢合理地减少代码行数。当我达到 10k 行时,我感到不舒服。我无法想象 20k、50k、500k 或 100 万的感觉如何。

在开发和维护这种规模的项目时,您有哪些实践?

0 投票
2 回答
16311 浏览

c# - Visual Studio 中的代码度量计算

以下代码指标计算的首选分数范围是多少

  • 可维护性指数
  • 圈复杂度
  • 继承深度
  • 类耦合
0 投票
1 回答
105 浏览

.net - 维护相同框架和应用程序的两个版本

我们有一个在 .NET 中创建的框架,用于控制硬件设备。整个框架使用 MEF,因此它严重依赖接口。

由于我们无法控制的原因,我们不得不更改硬件,这需要对某些接口进行一些重大更改。

旧硬件的项目被搁置了一段时间,我们开始开发一个使用新版本框架的图形应用程序。

现在,很久以后,他们希望我们再次支持旧硬件,所以我们正在考虑向后移植现有的图形应用程序以使用旧框架并维护两个版本。

该框架是一个包含多个项目的 Visual Studio 解决方案,而图形应用程序是另一个包含几个项目的 Visual Studio 解决方案。

有些部分(框架解决方案中的项目)不依赖于更改的接口,而其他部分则依赖。

对于源代码控制,我们有一个 subversion 存储库。

有没有人有管理这样的事情的经验?有没有最佳实践?建议?

0 投票
4 回答
4533 浏览

android - Maintaining both free and pro versions of an application

I want to create a PRO version of my application for Android and was wondering how to structure my repository.

For know I have a trunk and feature branches. I'd like to put a pro version in another branch but maybe there is a better way? For example, maybe I should create two branches - one for free version, the other for pro?

Pro version will have additional features and will be ads-free, so eg. I don't want to include AdMob libraries in the pro version.

Do you have any experience or suggestions as to what would be the best way to structure the repository in this case?

EDIT: I think I've found the best solution (for my app) in this thread: http://groups.google.com/group/android-developers/browse_thread/thread/4ad3d67f735f16d7/948b4f9eee2490a3

The trick discussed there is about having another application that only serves the purpose of unlocking PRO functionality in the actual application. The unlocking app is paid in the market and the actual app merely checks for the existence of it on the device.

0 投票
1 回答
68 浏览

language-features - 哪些特定的实践、设计、语言/功能可以非常容易地维护代码?

哪些特定的实践、设计、语言/功能可以非常容易地维护代码?

0 投票
2 回答
167 浏览

php - 教如何制作易于维护且耦合较少的程序的书籍/教程?

我是一名 PHP 程序员,我真的很想提高我的代码质量,最重要的是我想在编程方面做得更好。

你们会建议我读什么书、教程或文章来教导如何制作耦合度较低且易于维护的程序?PHP 有什么特别的技巧,尤其是 CakePHP 框架吗?

提前致谢!

0 投票
2 回答
123 浏览

function - 切换功能的用处

编写明确执行某些操作的函数是否更好(即 HideForm/ShowForm 等...)

还是编写'Toggle'类型的函数(即ToggleVisibility)更好?

我发现 Toggle 类型函数很尴尬,因为通过阅读代码很难跟踪状态。

切换类型功能在什么情况下有用?

0 投票
8 回答
471 浏览

maintainability - 你最终会后悔或放弃哪些编程捷径?

我看到了这个问题,它让我想起了旧 DataGrid 中的 AutoGenerateColumns。在我使用它们的几次之后,我最终放弃了它,因为我需要超出标准“吐出数据源列”的数据格式。同样,使用切换,听起来会节省时间,但最终您需要跟踪状态或其他内容,并相应地重写代码。

是否有一些事情你最终会认为它会节省你的时间,但最终因为它不能满足你的需要而退出?