Language/Dart

[Exercism] Leap #가독성 있는 코드란?

paran21 2022. 8. 18. 16:29

https://exercism.org/tracks/dart/exercises/leap

 

Leap in Dart on Exercism

Can you solve Leap in Dart? Improve your Dart skills with support from our world-class team of mentors.

exercism.org

 

처음에 문제가 이해되지 않아서(영어 해석이 안됬다...) 한참 헤매다가 테스트코드에 있는 조건들을 보고 문제를 풀었다.

 

그래서 내가 처음 냈던 답안은 아래와 같다.

class Leap {
  bool leapYear(int year) {
    return year % 4 == 0 && (year % 100 != 0 || year % 400 == 0);
  }
}

 

문제를 풀면서 팀원과 계속 코드리뷰를 진행하고 있는데, 

가독성이 좋고 수정하기 좋은 코드가 무엇일지에 대해 얘기를 나눴다.

팀원이 짠 코드는 아래와 같은 형태였다.

 

분명 코드는 더 길어지지만 조건이 한 줄에 여러 개 들어가는 것보다(심지어 ()와 &&와 ||가 모두 들어가는 복잡한 상황)

이렇게 나눠주는게 코드를 이해하기에는 더 좋은 것 같다.

class Leap {
  bool leapYear(int year) {
    if (year % 4 == 0 && year % 100 != 0) {
      return true;
    }
    if (year % 4 == 0 && year % 400 == 0) {
      return true;
    }
    return false;
  }
}

 

특히 조건이 변경되서 수정을 해야하는 상황이라면 이렇게 각 조건이 나눠져 있는게 훨씬 좋을 수 있다!