Пространство имен Java-пакетов для проектов без собственного домена

Существует ли общее правило о том, как назвать пространства имен пакетов для проектов с открытым исходным кодом без собственного домена?

Пространства имен должны быть уникальными, поэтому домены были выбраны, чтобы позаботиться об этом, но в конце это не имеет значения, если они уникальны.

Теперь, если у меня есть проект, который размещен только на github, можно ли взять

com.github.username.projectname

или это довольно неодобрительно, потому что я использую домен, который я действительно не владею?

Ответ 1

Существует ряд com.google.code и проектов с sourceforge в имени пакета, так что пространство имен имеет множество прецедентов.

Ответ 2

В вашем примере com.github не имеет прямого отношения к вашему коду. Если этот код хранится (он же размещен) не имеет значения и может измениться в будущем. Поэтому я предлагаю чисто специфическое для проекта имя, например

org.projectname

или даже

projectname

поскольку имя пакета не должно быть доменным именем.

О, кстати: вы найдете приоритет почти для всех и всех в отношении соглашений об именах - не только для имен пакетов Java. Но решительно: в истории вы также можете найти приоритет для всех видов убийств. Это почему-то делает его приемлемым только потому, что кто-то еще это делал раньше? Я так не думаю.

Ответ 3

Это хорошо. В общем, просто выберите что-то "вероятно", чтобы быть уникальным и специфичным для проекта.

Пакеты обычно сталкиваются только тогда, когда они представляют собой библиотеку, предназначенную для потребления; если пакеты предназначены только для использования внутри проекта, это имеет гораздо меньшее значение.