8주차 과제 코드 리뷰

이소라·2021년 9월 11일
0

변수명 명확하게 짓기

// 수정 전
var count = 0;

// 수정 후
var taskCount = 0;

코드의 일관성 유지하기

  • 프로젝트에 맞게 들여쓰기 등의 코드 스타일을 통일하기
// 프로젝트의 전체 스타일의 들여쓰기가 2칸인 경우

// 수정 전
export default function parallel(tasks, finalCallback) {
    var taskCount = 0;
    var results = [];
  
    for (var index = 0; index < tasks.length; index++) {
        executeTasks(index);
    }

    function executeTasks(index) {
        tasks[index](function addResult(value) {
            results[index] = value;
            taskCount++;
            if (taskCount === tasks.length) {
                return finalCallback(results);
            }
        });
    }
}

// 수정 후
export default function parallel(tasks, finalCallback) {
  var taskCount = 0;
  var results = [];
  
  for (var index = 0; index < tasks.length; index++) {
    executeTasks(index);
  }

  function executeTasks(index) {
    tasks[index](function addResult(value) {
      results[index] = value;
      taskCount++;
      if (taskCount === tasks.length) {
        return finalCallback(results);
      }
    });
  }
}

함수 종료시 return 문 쓰기

// 수정 전
function executeTasks(index) {
  tasks[index](function addResult(value) {
    results[index] = value;
    taskCount++;
    if (taskCount === tasks.length) {
      finalCallback(results);
    }
  });
}

// 수정 후
function executeTasks(index) {
  tasks[index](function addResult(value) {
    results[index] = value;
    taskCount++;
    if (taskCount === tasks.length) {
      return finalCallback(results);
    }
  });
}

에러 처리 하기

  • 함수의 paramter에 잘못된 값이 들어올 경우에 대한 에러 처리

    • parallel, waterfall 함수의 tasks가 배열이 아닌 다른 값이 들어왔을 경우
    • finalCallback이 함수가 아닌 경우
  • TypeError() : 새로운 TypeError 객체를 생성함

    • TypeError 객체 : 일반적으로 값이 기대되던 자료형이 아니라서 연산을 할 수 없을 때 발생하는 오류
  • 예외 처리문

    • throw 문
      • 예외를 사용할 때 throw 문을 사용함
        throw expression;
    • try ... catch 문
      • 하나 이상의 문장을 포함한 try 블록과 try 블록에서 예외가 발생할 경우, 어떻게 할 것인지 명시된 0개 이상의 문장을 포함한 catch 블록으로 구성됨
        try {
          // statements to try
        } catch (e) {
            // statements to handle any exceptions
        }
if (!Array.isArray(tasks)) {
  throw TypeError("the first parameter of parallel function must be an array.");
}

if (typeof finalCallback !== "function") {
  throw TypeError("the second parameter of parallel function must be a function.");
}

참고 : TypeError, 에러 처리

0개의 댓글