Общее имя пакета Java - PullRequest
       34

Общее имя пакета Java

0 голосов
/ 02 февраля 2011

Когда я создаю отдельную Java-программу, которая имеет только один или два файла java / class и не используется совместно с другими программами, я никогда не беру время, чтобы сказать org.domain.scripts.purpose в имени пакета. Я обычно просто делаю свой основной класс main.Main.

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

Кроме того, небольшие универсальные классы (например, преобразование Base64) легче копировать из одной программы в другую, если у них нет уникальных имен пакетов.

Итак, каково будет стандартное универсальное имя пакета (или оно есть)

Редактировать: Полагаю, я пойду дальше и упомяну еще несколько причин. Проще различать файлы или видеть, идентичны ли они, если у них одинаковое имя пакета. Кроме того, когда мне нужно включить библиотеку, я делаю примечание об использовании, которое включает java -cp library:jarfile вместо java -jar, а опция cp требует, чтобы я установил имя основного класса, поэтому мне также хотелось бы, чтобы оно было коротким там же. Кроме того, трассировки стека выглядят так лучше.

Ответы [ 5 ]

5 голосов
/ 02 февраля 2011

Стандартного общего имени пакета не существует.Однако существуют соглашения о присвоении имен для именования пакетов:

  • Имена пакетов пишутся строчными буквами, чтобы избежать конфликта с именами классов или интерфейсов.
  • Компании используют свое обратное доменное имя в Интернете для начала имен своих пакетов - например, com.example.orion для пакета с именем orion, созданного программистом на example.com.Рекомендации:
1 голос
/ 02 февраля 2011

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

1 голос
/ 02 февраля 2011

"foo" - это то, что я чаще всего использую для этой цели.

0 голосов
/ 02 февраля 2011

Я думаю, что самым близким к "стандартному универсальному" имени пакета будет пакет по умолчанию (или пакет без пакета, если хотите).Конечно, это плохая практика, но я понимаю, что мы говорим о крошечных экспериментах, а не о производственном коде.

Тем не менее, один из основных недостатков пакета по умолчанию (помимо отсутствия пространства имен) заключается в том, чточто вы не можете импортировать классы в пакете по умолчанию из именованного пакета.

Поэтому для ваших экспериментов, если вам нужны только односегментные имена пакетов, используйте все, что вам подходит: test, pkgmain (как вы упомянули) или что-то еще ...

0 голосов
/ 02 февраля 2011

Это может быть хорошо, если вы не используете код, написанный другим столь же ленивым разработчиком :-) Угадайте, что произойдет, если компилятор найдет два класса с именем Base64 в пакете по умолчанию ...

Использование правильных имен пакетов предназначено для предотвращения конфликтов имен.Большинство современных IDE упрощают миграцию класса (ов) в другой пакет, поэтому я не думаю, что это проблема.Однако, если у вас есть конфликт имен, это становится проблемой, если вам нужно вернуться и перенести класс в 100 более старых проектов.Или это становится проблемой, когда вы этого не делаете, и тогда вам нужно исправить ошибку во всех различных версиях класса ...

Так что, если вы пишете код для себя, самый простой выбор будетположить его в package net.georgebailey.Затем общие утилиты могут перейти в net.georgebailey.util.

...