2009-04-21 5 views
6

작은 스칼라 라이브러리를 작성하여 액터 프로그래밍 모델에 대한 느낌을 얻으려고합니다.스칼라 라이브러리는 패키지 이름을 Java와 동일한 반전 된 도메인 규칙을 따릅니 까?

예제 코드에서 일부 라이브러리는 패키지에 반전 된 도메인 (예 : org.foo.bar)을 사용하고 일부 라이브러리는 간결성을 위해 사용하지 않습니다.

Scala 라이브러리가 Java와 동일한 패키지 이름 지정 규칙을 사용하는 것이 좋습니다? 더 일반적으로, 파이썬이 PEP 8을 가지고있는 것처럼 좋은 스칼라 코딩 스타일 제안이 있습니까?

예, 아마도 말 앞에 장바구니를 넣는 것 같습니다. 그러나 나는 흔들린 규칙을보고 언어에 대한 적절한 느낌을 가질 수 있음을 알게되었습니다.

감사

답변

8

Lift, 스칼라의 큰 프로젝트 중 하나가, 실제로 스칼라 및 Java 상호 운용 할 수로, 많은 이해 반전 도메인 이름 규칙을 사용, 당신이 원하는 것 추론하기 위하여 서 가능한 한 무언가를 유지하고, 나는 다른 방법으로 그것을하는 것의 가치있는 이점을 정말로 생각할 수 없다.

+0

리프트가 구조화 된 방식을 살펴보면 패키징/모듈을 조금 더 잘 이해할 수 있습니다. 반전 된 도메인 규칙은 괜찮지 만 필자는 Python을 오래 사용하여 평평한 패키지 계층 구조를 이해할 수있게되었습니다. 이름 공간 충돌이 발생하는 희소 한 상황에서는 수입을 별명으로 알 수있는 능력이 좋은 해결책 인 것으로 보이지만 인정되지는 않지만 완전히 문제를 해결하지는 못합니다. –

+0

잠재적 인 문제의 예는 http://www.drmaciver.com/2009/07/how-packages-work-in-scala/를 참조하십시오. 그럼에도 불구하고 Java 표준을 따르는 것이 이치에 맞습니다. – mauhiz

2

스칼라는 기본적으로 대부분의 Java 규칙을 상속합니다. 이것에 약간 예외가있다. 예를 들어, 스칼라 "getter 및 setter는"실제로 다음과 같은 방법으로 수행됩니다 :

class Person { 
    private var _name: String = _ 

    def name = _name 

    def name_=(s: String) { 
    _name = s 
    } 
} 

의심은, (선호 순서대로) 자바, 루비 또는 하스켈에서 규칙을 빌려. 패키지와 관련하여 대답은 "예"입니다. 스칼라 패키지의 이름은 반전 된 도메인 규칙을 사용하여 지정됩니다.