【JavaScript】コードレビューをしてもらった。

背景

ビxリーチに常駐していた際、コードレビューをしてもらった。
完全に自分用のメモ。特にその3のコードだけ見てもなにがなんだか第3者は分からないと思います。💦


その1

// 退職日
  const { deactivateAt } = employmentInfo;
  // 最終出社日
  const { lastDay } = employmentInfo;

// 退職日, 最終出社日
const { deactivateAt, lastDay } = employmentInfo;

その2

const taskName = {
 キー:値,
 キー:値
};

const TASK_NAMES = ...

・複数形
・定数なので大文字スネークケース

その3

APIを叩くと以下のような値が返ってくる

[{"id":"74","fields":{"F001":[],"F002":["P002"],"F003":["P003"],"F004":[]}}]

値の文字数が0なら未完了リストに入れて、入れ終わったら先頭に名前を入れる

let i = 0;
if (tasks.status !== 404) {
 Object.entries(tasks[0].fields).forEach(([key, value]) => {
   if (value.length === 0) {
     incompleteList.push(`- ${TASK_NAMES[key]}`);
      i += 1;
    }
 });
 if (i > 0) {
  incompleteList.splice(-i, 0, `\n${peopleCode}:${peopleName}さんの未完了タスク\n${url}`);
 }
} else {
 incompleteList.push(`\n${peopleCode}:${peopleName}さんの未完了タスク\n${url}`);
  Object.keys(TASK_NAMES).forEach((key) => {
   incompleteList.push(`- ${TASK_NAMES[key]}`);
  });
}

イメージ1:forEachをつかったやり方。配列Aを作って最後に配列Bにいれる。

// 社員の未完了のタスクを入れるローカル変数に入れてから、全体のincompleteListに入れる方法
const incompleteTasks = []
Object.entries(tasks[0].fields).forEach(([key, value]) => {
  if (value.length === 0) {
    incompleteTasks.push(`- ${TASK_NAMES[key]}`);
  }
});

if (incompleteTasks.length > 0) {
  incompleteList.push(`\n${peopleCode}:${peopleName}さんの未完了タスク\n${url}`);
 incompleteList.push(...incompleteTasks);
}

イメージ2:エンジニアっぽい書き方。filterとmap使う

// forEach ではなく、filter と map を使って配列を作る
const incompleteTasks = Object.entries(tasks[0].fields).filter(([key, value]) => {
  value.length === 0
}).map(([key, value]) => `- ${TASK_NAMES[key]}`);

if (incompleteTasks.length > 0) {
  incompleteList.push(`\n${peopleCode}:${peopleName}さんの未完了タスク\n${url}`);
 incompleteList.push(...incompleteTasks);
}

この記事が気に入ったらサポートをしてみませんか?