해당된다면 메서드 이름을 to_나 as_로 시작해요

해당된다면 메서드 이름을 to_나 as_로 시작해요

use_to_and_as_if_applicable 규칙에 대해 알아볼게요.

출처: Start the name of the method with to/_to or as/_as if applicable.

본문

메서드 이름을 지을 때, 다음 두 경우에 맞는 접두사를 쓰는 걸 권장해요.

  • 메서드가 객체의 상태를 새 객체로 복사한다면 to___()로 이름을 지어요.
  • 메서드가 원본 객체를 기반으로 한 다른 표현(representation) 을 돌려준다면 as___()로 이름을 지어요.

BAD:

class Bar {
  Foo myMethod() {
    return Foo.from(this);
  }
}

GOOD (복사본을 만들 땐 to):

class Bar {
  Foo toFoo() {
    return Foo.from(this);
  }
}

GOOD (원본 기반의 다른 뷰를 돌려줄 땐 as):

class Bar {
  Foo asFoo() {
    return Foo.from(this);
  }
}

to___()는 상태를 복사해 새 객체를 만들 때, as___()는 원본 객체가 백업하는 다른 표현을 제공할 때 쓰는 이름짓기 규칙이에요. 이름만 봐도 메서드가 무슨 동작을 할지 짐작할 수 있게 돼요.

활성화

use_to_and_as_if_applicable 규칙을 켜려면 analysis_options.yaml 파일의 linter > rules 아래에 추가해요:

linter:
  rules:
    - use_to_and_as_if_applicable

YAML map 구문으로 lint 규칙을 설정하는 경우엔 linter > rules 아래에 use_to_and_as_if_applicable: true를 넣으면 돼요:

linter:
  rules:
    use_to_and_as_if_applicable: true

더 알아보기

  • Effective Dart의 이름 짓기 챕터에서 더 자세한 규칙을 확인할 수 있어요.
  • toas의 차이(복사 vs. 다른 표현)를 구분해서 이름을 지어야 의도가 잘 전달돼요.