해당된다면 메서드 이름을 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의 이름 짓기 챕터에서 더 자세한 규칙을 확인할 수 있어요.
to와as의 차이(복사 vs. 다른 표현)를 구분해서 이름을 지어야 의도가 잘 전달돼요.