哪个更好的做法?

Fle*_*ore 1 maintainability

您有一系列要执行的函数.案例A:他们不依赖于彼此.哪个更好?

function main() {
  a();
  b();
  c();
}
Run Code Online (Sandbox Code Playgroud)

要么

function main() {
  a();
}

function a() {
  ...
  b();
}

function b() {
  ...
  c();
}
Run Code Online (Sandbox Code Playgroud)

案例B:他们确实依赖于之前的成功完成.

function main() {
  if (a())
    if (b())
      c();
}
Run Code Online (Sandbox Code Playgroud)

要么

function main() {
  if (!a()) return false;
  if (!b()) return false;
  c();
}
Run Code Online (Sandbox Code Playgroud)

要么

function main() {
  a();
}

function a() {
  ... // maybe return false
  b();
}

function b() {
  ... // maybe return false
  c();
}
Run Code Online (Sandbox Code Playgroud)

当然,更好的意思是更易于维护和更容易理解.

Cor*_*old 14

情况A:1.
推理:由于没有一个函数相互依赖,因此在main中按顺序调用它们会显示一个逻辑顺序的事件.您在每个函数末尾调用下一个函数的替代方法看起来像意大利面条代码,并且很难让您阅读程序.

案例B:以上都不是.

function main() {
    return a() && b() && c();
}
Run Code Online (Sandbox Code Playgroud)

推理:似乎你并不真正关心返回值,如果其中一个函数返回某个值,你只想提前爆发.您可以返回所有这些函数的"anded"结果,如果其中任何一个返回false,则代码将提前中断.因此,如果a返回false,则b将不会被执行.将所有这些放在一行上很容易阅读,并简明扼要地表明它们彼此依赖.