SmalltalkBestPracticePatterns:7.3

From 흡혈양파의 번역工房
Jump to navigation Jump to search
7.3 Type Suggesting Parameter Name (타입을 제안하는 파라미터명)

Type Suggesting Parameter Name (타입을 제안하는 파라미터명)

Inline Message Pattern(p.172)를 작성하고 있다. Double Dispatch(p.55)를 완료하고 있을 수도 있다.

  • 메서드 파라미터를 뭐라고 부르는가?


모든 변수와 관련해 두 가지 중요한 정보 조각이 있다ㅡ변수가 어떤 메시지를 수신하는지와 (타입) 계산에서 하는 역할이 그것이다. 변수의 타입과 역할을 이해하는 것은 코드 조각을 이해하는 데에 중요하다.


키워드는 그들과 연관된 파라미터의 역할에 대한 정보를 전달한다. 키워드와 파라미터는 모든 메서드의 head에 한데 위치하기 때문에 독자는 이름에서 도움을 받지 않고도 파라미터의 역할을 쉽게 이해할 수 있다.


스몰토크는 타입에 대해 확실한 개념을 갖고 있지 않다. 변수로 전송되는 메시지 집합은 언어 또는 프로그래밍 환경 어디에서도 나타나지 않는다. 이로 인해 타입을 직접적으로 전달하는 방법은 없다.


클래스는 종종 타입의 역할을 한다. Number는 +, -, *, / 와 같은 메시지에, 그리고 Collection은 do:와 includes:로 응답할 수 있다고 기대할 것이다.


  • 가장 일반적으로 예상되는 클래스명 앞에 “a” 또는 “an”을 붙여 파라미터를 명명하라. 동일하게 예상되는 클래스에 하나 이상의 파라미터가 존재하는 경우 클래스명 앞에 기술적 단어를 붙여라.


Integer 키를 필요로 하는 Array는 at:put:에 대한 파라미터를 다음과 같이 명명한다.

at: anInteger put: anObject


어떤 객체든 키가 될 수 있는 Dictionary는 파라미터를 명명한다:

at: keyObject put: valueObject


파라미터를 명명하고 나면 메서드를 작성할 준비가 된 것이다. Role Suggesting Temporary Variable Names(p.110)를 선언해야 할 수도 있다. Indented Control Flow(p.175)를 포맷해야 할 수도 있다. Guard Clause(p.178)를 이용해 메서드 body의 실행을 보호해야 하는 수도 있다.


Notes