桌面< - >移动代码共享[Javascript]

时间:2012-04-17 23:30:33

标签: javascript

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

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

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

如果我可以优雅地分开这些1/3的功能,我会干的。但是,我找不到一个简单的解决方案。

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

这项工作是否有任何良好的框架或方式来做这些事情?

2 个答案:

答案 0 :(得分: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()

答案 1 :(得分:0)

对于这种情况,我建议使用denoramlized方法。从表面上看,你认为这将是一个维护噩梦,因为你将复制一些代码,但更深层次的维护噩梦可能会让你的共享代码试图处理太多。在这种情况下代码抽象和隔离可能是要走的路,它将加快QA。