我找不到令人满意的答案所以这是问题;
我正在开发一个基于HTML5-Websocket的应用程序,我也将它移植到Mobile。
问题在于,我的2/3个功能将不在移动版本中,并且功能与JS紧密集成到HTML中。
如果我可以优雅地分开这些1/3的功能,我会干的。但是,我找不到一个简单的解决方案。
例如,我有一个函数从节点获取用户对象并在函数中处理它。对于移动设备,我需要相同的流量,但流量的2/3除外。我可以为它们创建不同的功能并将它们放入不同的文件中,但这会带来维护噩梦,因为我需要为简单的功能创建数十个额外的功能。
这项工作是否有任何良好的框架或方式来做这些事情?
答案 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。