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

jquery - 选择器的 jQuery 设计模式以提高代码可维护性?

昨天我不得不回到我几周前工作的页面来重做 UI。UI 由一个带有 3 个选项卡的 jQuery UI 选项卡控件组成。每个选项卡里面有 3-5 个控件,还有一个提交按钮,只提交选项卡内的数据。我不得不重新组织一些选项卡,删除一些文本框,添加一些下拉列表,修改一些行为,甚至在客户端验证(使用 jQuery 验证)上做一些工作。我在这次练习中发现,我想,我必须回去重新检查我的每一个 jQuery 选择器。有些原封不动,但其中许多发生了变化。

我想知道人们使用什么设计模式(如果有的话)来避免或最小化重构或重做一个使用大量 jQuery 的网页的影响。我确定它不能只是“搜索”+“搜索和替换”。

0 投票
1 回答
29 浏览

maintainability - 一个大的实用程序或分成不同的部分?

我正在编写一个应用程序,其中将涉及一些程序员。我们在管理源代码时遇到了一些问题。我们通常有一个 Utility.php,它在不同的用户之间共享。所以,我们制作了一个大的 utility.php ,每个人都在调用它...

但是我们发现一个问题...当我们要分离项目时,例如我们有CMS的字体端,和后端。当我们想要分离现有项目时,我们需要将大的utility.php 分离到不同的地方,或者复制一次或者在其他之间同步。因此,我们正在考虑使用仅在相关类中使用的不同小实用程序。有什么建议么??

当前:FontEnd.php 正在调用 --> Utility.php BackEnd.php 正在调用 ---> Utility.php

考虑: FontEnd.php 正在调用 --> StyleUtility.php, ClientUtility.php, bababa BackEnd.php 正在调用 ---> DBUtility.php, MaintainUtility.php , ababba

0 投票
1 回答
572 浏览

ruby-on-rails - Rails:潜行者,救援或其他

实际问题

我正在通过 mongoid 使用 Rails 3.0.4 和 MongoDB。

我正在使用@mailgun来传递我的电子邮件。我发送批量(如新闻信)和交易(如激活帐户,忘记密码)电子邮件。现在,我正在使用单个域(转换为 mailgun 端的单个队列)来传递这些邮件。当我有很多批量电子邮件已经排队并且有人注册或请求新密码时,就会出现问题。我希望在批量邮件之前发送事务性电子邮件,但 mailgun 队列以 FIFO 为基础工作。

我想出一种缓解这种情况的方法是使用不同的域(因此可以同时处理不同的队列)来处理批量和事务性邮件。在 rails smtp 设置是应用程序级别设置而不是请求级别设置。所以,我想,我会为不同的 smtp 设置使用不同的环境。

我也有一个邮件队列系统,并且正在使用delayed_job来处理它。我想不出一种方法来区分delayed_job 中的批量邮件和交易邮件。所以,我决定将我的队列系统移动到rescue+redis 或beanstalked+stalker,在那里我可以标记队列并且可以要求工作人员只处理特定的队列。

问题

我想要一些更容易维护、资源消耗最少并且可以很好地扩展的东西。

  • 使用delayed_job,我不需要运行任何其他服务器并对其进行监控。
  • 对于delayed_job,我在机架空间上使用了256MB 的切片,但是redis 和stalker 需要另一台服务器,要么是resque,要么是beantalkd。
  • 我对扩展一无所知,但是自从我的应用程序启动以来的第 2 个月,我已经发送了 30k 多封电子邮件。

如果从 delay_job 移植到 redis 或 stalker 有任何替代方法,请告诉我。

更新:

似乎delayed_job现在也支持命名队列,但尚未记录。打开一张票以添加文档,一旦我知道如何使用它们,就会更新详细信息:)

0 投票
2 回答
436 浏览

playframework - 体验玩!框架大应用程序可维护性

玩!框架确实可以让您快速启动并运行,但我想知道一旦应用程序的大小和复杂性开始增长,维护应用程序会有多困难......

任何人都知道生产中的一些大中型游戏应用程序,支持、维护和改进它的难易程度如何?

0 投票
2 回答
1021 浏览

java - 大型 Scala 代码库是否可维护?

我对scala有一些经验。我想将它引入到有 10 个成员的新项目中。但是,尽管 scala 的所有表现力,我非常不确定代码可以多么简单地维护并转移给新的团队成员。目前我只研究了一个关于 scala http://code.google.com/p/factorie/和一些 scala DSL(apache camel) 的大项目。所以我的问题是,对于中级开发人员团队来说,与 java、python 和 groovy 相比,scala 可维护/可支持多少?

0 投票
3 回答
904 浏览

performance - 游戏开发:游戏开发者如何在不考虑 FPS 的情况下保持游戏速度?

假设一个角色在游戏中跳跃需要一秒钟,如果 FPS 为 10fps、30fps、100fps 等,游戏开发人员将如何将跳跃时间保持在 1 秒?- 如果你得到我,你将如何阻止游戏的 fps 影响游戏速度。

我想有某种方法可以做到这一点,所以我想知道它到底是什么?

谢谢,亚历克斯!

0 投票
4 回答
6734 浏览

c# - 与 Enums 和 HEX 值一起工作

我有一个枚举列表,如下所示:

每个枚举的十六进制值解密如下:

将值分配给 's 的最佳方法是什么,以便稍后enum添加's 并不意味着重新分配所有值。enum选择唯一的子系统 ID 和通知类型,应自动分配通知 ID。

例如,如果有数以千计的enum's 可能会很烦人,而我必须手动给它们编号,或者如果enum在中间添加一个则重新编号。

谢谢。

0 投票
1 回答
71 浏览

sitemap - 以编程方式维护站点地图

希望有人可以提出理想的方法。

我不想每个月都通过爬虫运行我的网站以向我的站点地图添加新页面,我想要一些强大的系统方法来做到这一点,因为手动维护它似乎很容易让人忘记。是否有某种方法可以以编程方式验证某些特殊控制器的新控制器、控制器方法、视图等?我所描绘的是一种在您创建新的控制器方法或视图时强制更新站点地图的机制。如果相关的话,我在 LAMP 堆栈中工作。 这里的这个人是通过文件系统来做的,这不是我想要的面向公众的站点地图。

除了我提出的概念之外,对于这种类型的维护,也许还有另一种最佳实践。很想听听其他人是怎么做到的!:)

0 投票
9 回答
1613 浏览

javascript - 在大型网站上管理 document.ready 事件

注意:我现在创建了一个 jQuery 插件,这是我尝试解决这个问题的方法。我确信它可以改进,我可能忽略了很多用例,所以如果有人想提供反馈,请随意:-) https://github.com/WickyNilliams/ReadyBinder

我没有这样的问题,但认为这将是一个有趣的讨论点,我希望人们对此有一些有趣的想法。

基本上,我在一个大型网站上工作,并且我们正在编写越来越多的 JavaScript。这很好,我喜欢 JS 的独特方法,并且我发现该语言的一些较暗的编年史中的古怪是可爱的 ;-) 然而,一直困扰我的一件事是如何管理文档就绪事件,因为它们变得越来越大随着时间的推移(因此对所服务的页面的关注度/特定性降低)

问题是我们有一个 JS 文件(合并和缩小,尽管这对我的问题来说无关紧要)。大多数 JS 都是使用显示模块模式编写的,而 jQuery 是我们选择的框架。所以我们所有的 JS 功能在逻辑上被分组到方法中,命名空间,然后在脚本文件的底部我们有这个

问题是,并非此文档就绪处理程序中的所有代码都适用于每个页面。例如,在一个页面上可能只有 10% 的内容是相关的,而在另一个页面上可能有 80% 是相关的。对我来说,这感觉非常错误,我觉得我应该只执行每页需要的代码,主要是为了效率,也是为了可维护性。

我已经在谷歌搜索了解决这个问题的方法,但找不到任何东西,也许我只是在寻找错误的东西!

无论如何,所以我的问题是:

  • 有没有人想过这个问题?
  • 在其他人看来这真的是一个问题吗?
  • 您的代码中是否有一个大型的、包罗万象的文档就绪处理程序,或者它是否更专注于所服务的页面类型?
  • 如果是后者,您如何管理?在 JS 中切换的多个处理程序或在服务器端动态吐出文档就绪处理程序?

期待人们对此事的看法。

干杯

0 投票
4 回答
264 浏览

c# - 如何避免 300 个 case 的 switch 阻塞?

我正在尝试将 300 个挑战添加到我的程序中,但仅在 CompletionValue.IsChecked = false 时才显示它们;

如果你正在创建这个程序。您将如何存储挑战?我正在使用开关,但有 300 个案例是多余的,有没有更好的方法?

任何关于改进代码的建议都非常感谢。我对此有些陌生。