주뇽's 저장소

풀 리퀘스트 승인을 위한 6가지 필수 코딩 패턴 본문

Git

풀 리퀘스트 승인을 위한 6가지 필수 코딩 패턴

뎁쭌 2024. 9. 5. 09:40
728x90
반응형

풀 리퀘스트 승인을 위한 6가지 필수 코딩 패턴 🚀

효율적이고 가독성 높은 코드는 빠른 풀 리퀘스트(PR) 승인의 열쇠입니다. 다음 6가지 패턴을 따라 코드 품질을 높이고 동료들의 이해를 돕습니다.

1. 조기 반환(Early Returns) 사용과 주요 로직 왼쪽 정렬 ⬅️

❌ 나쁜 예:

function processUser(user) {
  if (user.isActive) {
    if (user.hasPermission) {
      return doSomething(user);
    } else {
      return null;
    }
  } else {
    return null;
  }
}

✅ 좋은 예:

function processUser(user) {
  if (!user.isActive) return null;
  if (!user.hasPermission) return null;

  return doSomething(user);
}

2. 이중 부정 피하기 🙅‍♂️

❌ 나쁜 예:

if (!user.isNotActive) {
  // 사용자가 활성 상태일 때의 로직
}

✅ 좋은 예:

if (user.isActive) {
  // 사용자가 활성 상태일 때의 로직
}

3. 기본 매개변수로 불필요한 else 문 제거 🧹

❌ 나쁜 예:

function greet(name) {
  if (name) {
    return `Hello, ${name}!`;
  } else {
    return "Hello, Guest!";
  }
}

✅ 좋은 예:

function greet(name = "Guest") {
  return `Hello, ${name}!`;
}

4. 루프 로직 모듈화 🔄

❌ 나쁜 예:

function processUsers(users) {
  for (const user of users) {
    // 긴 로직...
    // ... (50줄 이상의 코드) ...
  }
}

✅ 좋은 예:

function processUsers(users) {
  for (const user of users) {
    validateUser(user);
    updateUserStatus(user);
    notifyUser(user);
  }
}

5. 함수 시그니처에 불리언 사용 피하기 🚫

❌ 나쁜 예:

function createUser(name, isAdmin) {
  // ...
}
createUser("John", true);

✅ 좋은 예:

function createUser(name, role = "user") {
  // ...
}
createUser("John", "admin");

6. 부작용이 있는 함수 피하기 💥

❌ 나쁜 예:

function calculateTotalPrice(items) {
  let total = 0;
  for (const item of items) {
    total += item.price;
  }
  updateDatabase(total); // 부작용: 데이터베이스 업데이트
  return total;
}

✅ 좋은 예:

function calculateTotalPrice(items) {
  return items.reduce((total, item) => total + item.price, 0);
}

function updateTotalInDatabase(total) {
  updateDatabase(total);
}

이 패턴들을 적용하면 코드의 가독성과 유지보수성이 크게 향상됩니다. PR이 더 빨리 승인되고 전체 프로젝트 품질이 높아질 것입니다.

출처

이 글은 다음 아티클을 참고하여 작성되었습니다:
Follow These 6 Patterns or I Will Reject Your Pull Request