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

performance - 速度比较 - 解释语言中的程序与 OO

在 PHP 和 JavaScript 等解释性编程语言中,使用面向对象的方法优于过程方法的影响是什么?

具体来说,我正在寻找的是在创建 Web 应用程序并在过程和面向对象方法之间进行选择时要考虑的事项清单,不仅可以优化速度,还可以优化可维护性。如果您知道任何进一步探讨此问题的文章,引用的研究和测试用例也会有所帮助。

底线:在解释语言中使用 OO 与程序时,性能的真正影响有多大(如果有的话)?

0 投票
11 回答
1677 浏览

performance - 一个数据库还是多个?

我正在开发一个网站,将管理多个实体的数据。实体之间不共享数据,但它们可能属于同一客户。客户可能希望从单个“仪表板”管理他们的所有实体。那么我应该为所有事情都建立一个数据库,还是将数据分开到单独的数据库中?有最佳实践吗?有什么积极/消极的:

  • 整个网站的数据库(实体有一个“customerID”,数据有“entityID”)
  • 每个客户的数据库(数据有“entityID”)
  • 每个实体的数据库(数据库与客户的关系在数据库之外)

多个数据库似乎会有更好的性能(更少的行和连接),但最终可能成为维护的噩梦。

0 投票
6 回答
638 浏览

language-agnostic - 什么是普遍接受的代码格式指南?

根据McCall 的质量模型产品修订是描述软件产品质量属性的三个主要视角之一。在产品修订的角度下,可维护性即发现和修复缺陷的能力,被确定为影响软件修订能力的关键质量因素。

显然,在修订过程的某个阶段,需要人工参与,特别是程序员的参与。代码的格式会影响程序员有效和高效地修改软件的能力。

您使用过哪些普遍接受的、与语言无关的代码格式指南,可以最大限度地提高程序员在代码修订过程中的效率和有效性?

0 投票
10 回答
8296 浏览

unix - 2038年我们应该做些什么准备?

我想我今天写的一些软件会在 30 年后使用。但我也知道,其中很多都是基于 UNIX 的传统,即自 1970 年以来将时间公开为秒数。

执行结果:

  • 1970 年 1 月 1 日星期四 00:00:00
  • 2008 年 8 月 30 日星期六 18:37:08
  • 2038年 1 月 19 日星期二 03:14:07
  • 1901 年12 月 13 日星期五 20:45:52

函数 ctime()、gmtime() 和 localtime() 都将时间值作为参数,该时间值表示自 Epoch 以来的时间(以秒为单位)(UTC 时间 00:00:00,1970 年 1 月 1 日;参见 time(3))。

我想知道作为程序员在这方面是否有任何积极主动的事情要做,或者我们是否相信所有软件系统(又名操作系统)将来都会神奇地升级?

更新看起来确实 64 位系统是安全的:

  • 1969 年 12 月 31 日星期三 16:00:00 PST
  • 2008 年 8 月 30 日星期六 12:02:40 PDT
  • 8 月 16 日星期六 23:12:55 PST 292278994
  • 12 月 02 日星期日 08:47:04 PST 292269055

但是 292278994 年呢?

0 投票
3 回答
321 浏览

css - 最好的 CSS 生成器语言?

在维护 CSS 时,重用 CSS 中的值(尤其是颜色)一直是我的问题。使用 CSS 创建变量或提高可维护性的最佳工具是什么?

0 投票
7 回答
558 浏览

sql-server - 您如何维护大型 t-sql 程序

我即将继承一组庞大而复杂的存储过程,它们每月对非常大的数据集进行处理。

我们正在调试它们,以便它们与用 VB6 编写的原始过程相匹配。他们决定在 t-sql 中重新编写它们的原因是因为 vb 过程需要几天时间,而这个新过程需要几个小时。

这一切都很好,但我怎样才能使这些现在大量的 t-sql 代码(1.5k+ 行)甚至远程可读/可维护。

非常欢迎任何使 t-sql 不那么头痛的经验。

0 投票
5 回答
330 浏览

dry - 如何不在项目和/或语言中重复自己

我正在使用不同的编程语言从事几个不同但相关的项目。其中一些项目需要解析其他项目编写的文件名,并且需要某种文件名模式。

这种模式现在在多个地方和多种语言中进行了硬编码,使其成为维护炸弹。在给定项目中只定义一次这种模式是相当容易的,但是为所有项目和所有使用的语言一次性定义它的技术是什么?

0 投票
8 回答
1435 浏览

c++ - C++ 函数列表

我正在做一个相当复杂的项目,如果你愿意的话,一个自定义加密例程(只是为了好玩)我在设计我的代码布局时遇到了这个问题。

我有许多我希望能够按索引调用的函数。具体来说,我需要能够为加密过程随机调用一个,然后通过解密过程中的特定索引来解决它。

我正在考虑一个经典的函数数组,但我主要担心的是函数数组很难维护,而且有点难看。(目标是将每个函数对放在一个单独的文件中,以减少编译时间并使代码更易于管理。)有没有人有更优雅的 C++ 解决方案来替代函数数组?速度不是真正的问题,我更担心可维护性。

-尼古拉斯

0 投票
9 回答
2913 浏览

python - 'from X import a' 与 'import X; Xa'

我见过一些 Python 程序员相当一致地使用以下风格(我们称之为风格 1):

为了支持这种风格,您可以引用“显式优于隐式”的格言。我见过其他程序员使用这种风格(风格 2):

我在样式 2 中看到的主要好处是可维护性——尤其是对于鸭子类型的理想,我可能想将 some_module 换成 some_other_module。我也觉得风格 2 以“可读性很重要”的格言赢得了积分。尽管我倾向于不同意,但人们总是可以争辩说,在使用第一种样式时,搜索和替换同样是一个不错的选择。

附录:有人指出,您可以使用样式 1as来解决从some_moduleto的切换some_other_module。我忘了提到,决定some_identifier当前模块中实现也很常见,这使得创建等效some_module容器有点尴尬。

0 投票
4 回答
1803 浏览

svn - 以“敏捷”的节奏维护发布/分支?

我们有一个软件产品,可以根据客户的需求和更通用的路线图发展。

因为我们处于 SCRUM 项目环境中,所以经常会出现新功能进入产品的情况,然后我们面临以下选择:

  • 在已经发布的分支中实现此功能(那么,实际上并不是拥有分支的重点)
  • 建立一个新分支 - 但是我们每三周就有一个分支,它不再是可维护的了

不发布新功能不是一种选择,客户不想等待一个长期的里程碑计划来获得他们想要的功能,而且在客户端模块中移动功能并不总是可行的——有时我们需要改变产品的核心...

考虑到这些限制,有没有人对好的做法有任何反馈?