0

我找不到令人满意的答案,所以这里是问题;

我正在开发一个基于 HTML5-Websocket 的应用程序,我也将把它移植到 Mobile 上。

问题是我的 2/3 功能不会出现在移动版本中,并且功能与 JS 紧密集成到 HTML 中。

如果我能优雅地分离这 1/3 的特征,我会很干。但是我找不到一个简单的解决方案。

例如,我有一个从节点获取用户对象并在函数中处理它的函数。对于移动设备,我将需要相同的流量,但流量的 2/3 除外。我可以为它们创建不同的函数并将它们放入不同的文件中,但这会带来维护的噩梦,因为即使是简单的特性,我也需要创建数十个额外的函数。

有没有什么好的框架或方法可以为这项工作做这些事情?

4

2 回答 2

1

您应该将长函数分解为更小的函数。(每个函数大约 15 行代码。一般情况下,任何函数的长度都不应超过屏幕的高度。)

function DoAllTheThings() {
    // long function
    // long function
    // long function
    // long function
    // long function
    // long function
    // long function
    // long function
    // long function
    // long function
    // long function
    // long function
    // long function
    // long function
    // long function
    // long function
}

会成为:

function DoAllTheThings() {
    WarbleTheThing();
    FribbleTheThing();
    StrabbleTheThing();
}
function WarbleTheThing() {
    // short function
    // short function
    // short function
}
function FribbleTheThing() {
    // short function
    // short function
    // short function
}
function StrabbleTheThing() {
    // short function
    // short function
    // short function
}

对于桌面浏览器,您调用 DoAllTheThings() 但对于移动设备,您可能只调用 FribbleTheThing()

于 2012-04-17T23:52:17.507 回答
0

对于这种情况,我会推荐一种非规范化的方法。从表面上看,您认为这将是一场维护噩梦,因为您将复制一些代码,但在更深层次上,维护噩梦可能会因为您的共享代码尝试处理过多而浮出水面。在这种情况下,代码抽象和隔离可能是可行的方法,它将加快 QA。

于 2012-04-17T23:48:16.120 回答