Combine Functions Into Transform - Refactoring skills(10)


10.コンビネーション機能Into Transform(複数の関数を変換関数に組み合わせる)
Takes the source data as input and calculates all the derivations, putting each derived value as a field in the output data
(元のデータを入力し、必要なすべての情報をエクスポートし、出力データのフィールドに各データを入れて返します.エクスポートプロセスを確認する必要がある場合は、変換関数を表示するだけです.)
function base(aReading) {}
function taxableCharge(aReading) {}
to
function enrichReading(argReading) {
  const aReading = _.cloneDeep(argReading)
  aReading.baseCharge = base(aReading)
  aReading.taxableCharge = taxableCharge(aReading)
  return aReading
}
Motivation
  • Avoid duplication of logic
    論理の重複を防止し、一貫した場所で検索と更新を行うことができます.
  • Procedure

  • Create a transform function that takes the input of the record to convert and returns the value.
    変換するレコードを受け入れ、値を元に戻す変換関数を作成します.

  • Pick one function to group, transfer the body code to the transform function, and record the processing result as a new field in the record. The client code is then modified to use this field.
    バンドルする関数から関数を選択し、変換関数にこのコードを移動し、処理結果をレコードの新しいフィールドに書き込みます.次に、このフィールドを使用するためにクライアントコードを変更します.

  • Test it.
    テスト.

  • The remaining relevant functions are also handled according to the above process.
    残りの相関関数も上記の手順で処理します.