나는 내 시간에 많은 발전을합니다. 내가 작업하는이 프로젝트는 모두 재미와 학습을위한 것입니다 (지금까지). 필자는 일반적으로 Maven을 사용하여 Java 개발을 수행하지만 .NET 및 Python에서도 대단한 것으로 알려져 있습니다. 내가 작업하는 모든 프로젝트는 오픈 소스 라이센스를 사용하지만 대부분 공개 코드 리포지토리에는 없습니다.
Java / Maven 개발을 위해서는 고유 한 groupId
(예 : "com.mydomain" package
) 구조 와 고유 한 (디렉토리) 구조 를 사용해야합니다 . 일반적으로 groupId
while .NET 개발 namespaces
에는 Java package
개념 과 유사한 규칙을 사용 하는 고유 한 .NET 개발이 권장 됩니다. 고유성을 보장하기 위해 보통 도메인 이름 중 하나를 부분이 반전 된 상태로 사용합니다 (예 : "ca.jessewebb"). 나는 이것이 매우 일반적인 관행이라고 믿는다.
저는 새로운 오픈 소스 Java / Maven 프로젝트 ( "newproj"라고 함)를 만드는 초기 단계에 있으며 GitHub에 올려 놓고 싶습니다. GitHub의 사용자 이름은 "jessewebb"이므로 다음과 같은 URL을 제공합니다 https://github.com/jessewebb/newproj
. "newproj.com"도메인 이름을 등록하고 싶지 않아서 "ca.jessewebb"및 "ca.jessewebb.newproj"를 각각 groupId
및 로 사용하기로 결정했습니다 package
.
코드와 프로젝트 홈의 일부 (GitHub URL)에 내 개인 정체성이 존재하면 잠재적 인 기여자가 내 프로젝트에 참여하는 것에 대해 두 번 생각하게 될 가능성이 있습니다. 이것은 문제입니다, 나는 그것이 내 프로젝트가 되기를 원하지 않습니다 . 대신 프로젝트를 소유하지 않았다는 메시지를 전달할 수 있으면 좋겠습니다. 모든 솔직히 말해서, 내 프로젝트가 많은 지역 사회 참여를 유발할 것이라 의심하기 때문에 그다지 큰 문제는 아닙니다. 그러나 이것은 또한 기여자가 될 수있는 사람들을 막을 가능성을 피할 수있는 더 많은 이유라고 생각합니다.
다른 예로, 몇 년 전에 Google 코드 프로젝트를 만들었습니다 ( "oldproj"라고 함). 프로젝트를 만들 때 Google 코드에서 프로젝트를 호스팅 할 것임을 알았으므로 groupId
패키지 이름 인 "com.googlecode.oldproj"를 사용했습니다. 이는 Google 코드가 모든 새 프로젝트를 제공하는 기본 도메인 이름과 반대입니다. 이것은 그리 좋지 않은 아이디어로 판명되었습니다. 년 정도 후, 나는 다른 REPO에 코드를 이동 나는 이러한 식별자의 이름을 변경했다 (물론 나는하지 않았다 가하지만 ...). 당시에는 도메인 이름이 없었으며 도메인 이름 "oldproj.com"을 구입하여 사용했습니다. 프로젝트 자체에 정체성을 부여하고 코드에 내 이름을 찍지 않았기 때문에 이것을 좋아했습니다. "jessewebb.ca"도메인 이름을 쉽게 등록하고 "ca.jessewebb.oldproj"를 패키지 이름으로 사용했지만 그 당시에도 같은 문제가 있었기 때문에 그렇게하지 않았습니다.
제 질문은 ...
패키지 / 네임 스페이스의 고유성을 유지하면서 오픈 소스 프로젝트를 만들 때 고유 한 도메인 이름을 사용하지 않으려면 어떻게해야합니까?
프로젝트가 더 많은 추진력을 얻음에 따라 도메인 이름을 등록하는 것이 합리적이지만 초기에이를 수행하는 것은 어리 석고 돈 낭비입니다. 코드에서 도메인 이름을 사용하기 위해 실제로 도메인 이름 을 소유 할 필요는 없지만 잘못된 느낌이 들며 그 동안 스쿼터가 도메인 이름을 빼앗을 수 있습니다. 이 딜레마에 대해 다른 사람들은 무엇을합니까? 고유 한 식별자 (들)의 일부로 원래 개발자의 신원을 포함하는 인기있는 (일반적으로 사용되는 대규모 커뮤니티 등) 오픈 소스 프로젝트의 예가 있습니까?