Что такое соглашение для имен пакетов java без ассоциации с доменом?
Я не могу найти Q/A на SO, который отвечает на мой точный вопрос, поэтому я полагаю, что опубликую его и посмотрю, что вернется.
Что касается соглашения об именах для пакетов Java, я понимаю, что он должен быть обратным доменным именем: com.whatever.stuff
, и я получаю правила о не смешанном случае, дефисах, ключевых словах и т.д.
Я также прочитал раздел 7.7 (Unique-Package-Names) спецификации языка Java. Насколько я могу судить, правила Java - использовать обратный домен, чтобы обеспечить уникальность... и если у вас его нет, то получите один:
You form a unique package name by first having (or belonging to an organization that has) an Internet domainname, such as sun.com.
- Раздел 7.7
Итак, если мне не интересно обманывать деньги за доменное имя, я не принадлежу к компании, чье имя я могу контактировать с вами, есть ли какая-либо часть соглашения об именах, которое мне не хватает, следует следовать? Я думаю, что могу просто назвать это уникальное имя, которое мне кажется на данный момент, но мне было просто интересно, не пропал ли что-нибудь.
Примечание.. Я хотел бы опубликовать свой пакет для других разработчиков, поэтому я не хотел просто делать что-то, что работало в моей системе, но что-то более стандартное, если это возможно.
Я добавил тег android, потому что java-пакеты, которые я собираюсь писать, будут использоваться в приложении для Android, не были уверены, были ли разные мнения разработчиков Android.
Ответы
Ответ 1
Если вы собираетесь распространять много материала, я бы действительно предложил получить доменное имя. Другой альтернативой, однако, было бы использование вашего электронного письма: например. [email protected]
станет com.gmail.bob
. Это менее распространено, чем использование доменных имен, но все еще выполняется некоторыми и по-прежнему обеспечивает уникальность.
Ответ 2
Одно из условий - использовать доменное имя хостинг-провайдера, например
com.github.myrepositoryname
net.sf.sourceforge.myproject
com.googlecode.myproject
Преимущества:
Недостатки:
- Если вы решили сменить поставщиков, у вас либо есть устаревшие структуры пакетов, либо вы вводите обратно-несовместимые изменения, чтобы поддерживать источник в соответствии с вашим новым провайдером.
Ответ 3
Доменные имена могут предоставляться бесплатно.
Например, dyn.com предлагает бесплатные доменные имена формы "whatever.dyndns.org" на http://free.domain.name/
Ответ 4
В профессиональной среде соглашение заключается в использовании обратного домена. В среде, которая больше связана с вами, вы можете использовать org.projectname.packagename.*
.
Это конвенция, а не жесткое правило. Вы можете использовать любой тип имен доменов, который вам нравится.
Ответ 5
Если вы единственный кодер, вы можете просто использовать свое имя.
Меня зовут Jannis Froese, поэтому я бы использовал
jannisfroese.projectname.stuff
или если вы хотите остаться с "действительными" доменными именами
localhost.jannisfroese.projectname.stuff
(localhost - зарезервированный домен верхнего уровня)
Конечно, это работает только в том случае, если ваше имя достаточно уникально, так что столкновение маловероятно