Ruby에서 사용하는 도구에 대한 API를 작성하는 그룹에서 일하고 있습니다. API 메소드를 작성할 때 많은 팀원은 메소드의 유일한 매개 변수로 해시 테이블을 사용하지만 지정된 각 값을 사용하여 메소드를 작성합니다.해시 테이블을 함수 입력으로 사용
class Apple
@commonName
@volume
@color
end
나는 방법으로 클래스를 인스턴스화 것입니다 : 예를 들어
, 클래스 애플로 정의
:Apple.new(commonName, volume, color)
내 팀 동료가 그렇게을 작성 방법처럼 보였다
Apple.new({"commonName"=>commonName, "volume"=>volume, "color"=>color)
해시 테이블을 입력으로 사용하는 것을 좋아하지 않습니다. 나에게 불필요하게 부피가 커 보이고 코드에 명확성을 추가하지 않는다. 이 예제에서 큰 문제는 아니지만 일부 메소드에는 10 개 이상의 매개 변수가 있으며 다른 해시 테이블 내부에 해시 테이블이 중첩되어 있습니다. 나는 또한 이런 식으로 해시 테이블을 사용하는 것이 공개 API에서 매우 드문 것으로 나타났습니다 (net/telnet이 지금 당장 생각할 수있는 유일한 예외입니다).
질문 : 입력 매개 변수로 해시 테이블을 사용하지 않기 위해 팀원에게 어떤 인수를 내릴 수 있습니까? 코드의 부피가 충분하지 않다는 것 (200-400 자의 문자를 쓰는 것을 두려워하지 않음) 과도한 메모리/프로세싱 오버 헤드는 우리 도구가 사용되는 방식에 문제가되지 않기 때문에 효과가 없습니다 .
후기 바인딩 언어의 문제 중 하나에 부딪 혔습니다. 매개 변수를 강제 적용하는 유일한 방법은 이름을 지정하는 것입니다. 루비에서 매개 변수의 이름을 지정하는 유일한 방법은 큰 오래된 blobby 해시 테이블을 보내는 것입니다. 너는 나의 동정심을 가지고있다. –