Linus Torvalds:
If you need more than 3 levels of indentation, you ’ re screwed anyway, and should fix your program.
如果你的代码里需要有超过三层的缩进,那么你已经搞砸了,应该修改你的代码。
这里贴一段我写的代码
function do_kcptun_update(btn) {
btn.disabled = true;
btn.value = '<%:Downloading...%>';
add_remove_page_notice(true);
var kcptun_update_url = '<%=dsp.build_url("admin/services/kcptun/update/kcptun")%>';
(new XHR()).get(kcptun_update_url, {
token: token_str,
url: kcptun_info ? kcptun_info.url.download : ''
}, function (x, json) {
if (x && x.status == 200) {
if (json.code == 0) {
btn.value = '<%:Extracting...%>';
(new XHR()).get(kcptun_update_url, {
token: token_str,
task: "extract",
file: json.file,
subfix: kcptun_info ? kcptun_info.type : ''
}, function (x, json) {
if (x && x.status == 200) {
if (json.code == 0) {
btn.value = '<%:Moving...%>';
(new XHR()).get(kcptun_update_url, {
token: token_str,
task: "move",
file: json.file
}, function (x, json) {
if (x && x.status == 200) {
if (json.code == 0) {
on_update_success(btn);
} else {
on_request_error(btn, json);
}
} else {
on_request_error(btn);
}
});
} else {
on_request_error(btn, json);
}
} else {
on_request_error(btn);
}
});
} else {
on_request_error(btn, json);
}
} else {
on_request_error(btn);
}
});
}
这是一段用来更新程序的 JavaScript,但是代码的继续执行依赖于上一次请求的成功执行。 可苦于没有好的优化方案,只能写出这种垃圾代码了。
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.