私は自分の時間に多くの開発をしています。私が取り組んでいるこれらのプロジェクトはすべて、これまでの楽しみと学習のためだけのものです。私は通常、Mavenを使用してJava開発を行いますが、.NETおよびPythonで手を出すことでも知られています。私が取り組んでいるプロジェクトはすべてオープンソースライセンスを使用していますが、それらのほとんどはパブリックコードリポジトリにはありません。
Java / Mavenの開発では、ユニークgroupId
(「com.mydomain」など)およびユニークpackage
(ディレクトリ)構造を使用する必要があります。通常、groupId
.NET開発でnamespaces
はJava package
コンセプトと同様の規則を使用するユニークを推奨します。一意性を確保するために、私は通常、ドメイン名の1つを部分を逆にして使用します(例:「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内)に個人的なIDが存在することで、潜在的な貢献者が私のプロジェクトに関与することについて再考する可能性があります。これは問題であり、私はそれはしたくない私のプロジェクト。代わりに、自分がプロジェクトを所有していないというメッセージを伝えることができればいいと思います。さて、正直に言って、私のプロジェクトはコミュニティの関与を増やすとは思えないので、それほど大したことではありませんが、これは貢献者になることを思いとどまらせる可能性を避けるためのさらに多くの理由と考えています。
別の例として、数年前にGoogle Codeプロジェクトを作成しました(「oldproj」と呼びましょう)。プロジェクトを作成したとき、Google Codeでホストすることを知っていたのでgroupId
、「com.googlecode.oldproj」というパッケージ名を使用しました。これは、Google Codeがすべての新しいプロジェクトに提供するデフォルトのドメイン名の逆です。これはそれほど素晴らしいアイデアではないことが判明しました。1年ほど後、私はコードを別のリポジトリに移動し、これらの識別子の名前を変更する必要がありました(私は持っていませんでしたに...)。当時、私はドメイン名を所有していなかったため、「oldproj.com」というドメイン名を購入し、それを使用しました。これは、プロジェクトに独自のアイデンティティを与え、どこでもコードに自分の名前を刻印していなかったので、これが好きでした。「jessewebb.ca」ドメイン名を簡単に登録し、「ca.jessewebb.oldproj」をパッケージ名として使用することもできましたが、当時も同じ懸念があったため、登録しませんでした。
だから私の質問は...
パッケージ/名前空間の一意性を維持しながら、オープンソースプロジェクトを作成するときに自分の(ドメイン)名を使用しないようにするにはどうすればよいですか?
プロジェクトが勢いを増すにつれて、ドメイン名を登録することは理にかなっていますが、これを前もって行うのはばかげており、お金の無駄です。コードでドメイン名を使用するために実際にドメイン名を所有する必要はありませんが、それは間違っていると感じ、その間にあなたの下から不法占拠者を奪う可能性があります。他の人はこのジレンマについてどうしますか?独自の識別子の一部として元の開発者のIDを含む人気のある(広く使用されている、大規模なコミュニティなどの)オープンソースプロジェクトの例はありますか?