3. Functions

總覽

  • closure 要命名,方便 trace
  • 功能切分,各 function 程式盡量少一點
  • 盡早回傳結果,避免過多巢狀判斷語句
  • 不要使用巢狀 closures
  • callback 應該永遠是傳入參數的最後一個
  • callback 回傳的第一個值應該是 Error 或是 null,回傳錯誤永遠使用 new Error 物件,不要單純只是回傳字串的訊息
  • 方法鏈(method chaining)如果串接太長的話要換行,一行只能串一個且必須縮排
//function 命名,方便 trace
router.get('/getArticle', function getArticle(req, res, next) {
  console.log('取得文章');
});

//判斷完就回傳結果
function scoreLevel(score) {
  if (score > 100 || score < 0) {
    return '成績有誤';
  }

  if (score === 100) {
    return '超強的';
  }

  if (score >= 60) {
    return '不錯,有及格';
  }

  return '不及格';
}

//closure 呼叫外部 function,不使用巢狀結構
setTimeout(function timeout() {
  client.connect(afterConnect);
}, 1000);

function afterConnect() {
  console.log('winning');
}

// 方法鏈過長換行,一行只放一個且縮排
query
  .where('type').equals('test value')
  .sort('-create_date')
  .limit(num);

results matching ""

    No results matching ""