Яку умову іменування пакунків ви використовуєте для особистих / хобі-проектів на Java?


143

Я вже знайомий зі стандартною умовою іменування пакету Java щодо використання доменного імені для створення унікального імені пакета (тобто пакета com.stackoverflow.widgets). Однак я ніколи не бачив жодних рекомендацій щодо вибору імен пакунків для особистих проектів. Я припускаю, що це тому, що це справді справа особистого смаку.

Отже, як ви вибираєте назви пакетів для особистих проектів, які ніколи не перетворять їх у виробництво (можливо, у вільний час ви експериментуєте з новою рамкою). Якщо припустити, що у вас немає особистого веб-сайту, домен якого ви можете використовувати для створення структури вашої упаковки, що ви робите (чи що) робите? Чи є у вас логічна система для створення нових назв пакетів для хобі-проектів, чи ви просто використовуєте прості назви пакетів, як-от викидання mypackage?

Оскільки мені просто цікаво побачити, які думки різних людей щодо цього, я зробив це вікі спільноти.

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

Я думав про просту конвенцію ієрархальних імен, щоб зберегти джерело для моїх особистих проектів у єдиній кореневій папці:

  • Використовувати myprojectsяк кореневу папку
  • Додайте назву проекту
  • Додайте будь-які додаткові імена субпакетів

Отже, мій проект Wicket був би в пакеті, myprojects.learningwicketа одиничні тести були б у пакеті myprojects.learningwicket.tests(наприклад).


1
Загальноприйняте, отримайте собі особистий домен (firstname-lastname.net) і використовуйте його як ім'я пакету. Мета пакету - бути унікальним у всьому світі, тому мійпроекти насправді не скорочують його.
Володимир Дюжев

5
Використання домену .onion також є варіантом (як onion.duskgytldkxiuqc6.packagename). Поки приватний ключ залишається секретним, ви контролюєте доменне ім’я. Таким чином, це безкоштовна реєстрація (генерування), і вона є постійною (на відміну від звичайних доменів). Він відповідає листу конвенції Java, і він однозначно ідентифікує вас.
зустріч

14
Ви завжди можете створити обліковий запис GitHub і використовувати io.github.username. *.
Bardi Harborow

2
@BardiHarborow дякую, я використав вашу пропозицію.
Нік Волинкін

3
@GabrielBB, GitHub Pages дозволяє розміщувати сайти HTML та Jekyll на yourusername.github.io, а тому піддомени github.io "гарантовано" відповідають користувачам GitHub, ніж піддомени github.com (які можуть використовуватися для внутрішніх Проекти GitHub в будь-який час).
Барді Харбороу

Відповіді:


49

Якщо ви просто робите особисті проекти, де ніхто більше не використовуватиме код, тоді ви можете скласти ім'я пакету, яке вам подобається. Не робіть що - то , що починається з com.або net.або іншим доменом верхнього рівня , хоча, тому що це буде означати , що у вас є ім'я домену (наприклад, використовуючи в com.johnякості імені пакета просто тому , що ваше ім'я трапляється Джон не дуже хороша ідея) .

Якщо ви збираєтеся надати код комусь іншому, вам слід використовувати глобально унікальне ім'я пакета, що згідно з умовами Java означає, що ви повинні зареєструвати та використовувати доменне ім’я.


1
Отже, якщо я хочу адресувати ім'я пакета, як com.xyzце ім'я пакета має бути десь зареєстровано ?? PS xyz- мій клієнт.
Прасад

9
Цікаво, чи можу я використовувати свій github id для цього та домену github? Наприклад com.github.mygithubid.myproject?
Кирило Г.

2
@KirillG. Я б радив проти цього, оскільки ідентифікатори GitHub можна змінювати в будь-який час і будь-яку кількість разів. Звичайно, будь-який домен може змінюватися, але не так легко чи часто (як правило, як правило). Хоча я думаю, що це нормально для хобі-проектів.
сара

26

Я просто використовую свої ініціали: fg.nameofproject.etc

Це зменшує набір тексту. Її можна в будь-який час встановити за допомогою sf.net або com. або орг. або com.google ..

Оскільки проект - це особисте частування, воно особливе, як і ваша свіжовичавлена ​​персоналізована подарункова сорочка - вона буде почувати себе добре.


42
bond.james.007
Клацніть Upvote

19
@click відповідно до вказівок, які були б bond.james._007- не мають однакового дзвінка до нього ...: - {
corsiKa


19

<sarcasm>Ба. Будь-який поважаючий себе програміст мав би своє власне доменне ім’я. Це, очевидно, хитрі питання. У кожного є своє особисте доменне ім’я! </sarcasm>:-)

Гаразд, з усією серйозністю, придбання користувацького доменного імені, мабуть, найпростіший варіант. Приблизно за 10 доларів США на рік ви можете знайти авторитетних постачальників для розміщення домену та пересилання електронної пошти.


18
Як не дивно, це також зробить вашу впевненість у собі.
Джеймс

26
Хороша відповідь, але починаючий програміст, ймовірно, не хоче купувати веб-сайт, а лише слідкувати за веб-сайтом підручника чи відео про те, як створити графічний інтерфейс за допомогою кнопки закриття.
Jochem Kuijpers

17

Я зберігаю більшість моїх хобі проектів в Google Code, так що я просто використовувати сайт проекту в якості імені пакета: com.googlecode.donkirkby.someproject.


8
Якими ж ми могли бути сліпими, щоб не бачити глупоти наших дій ?!
Joey Sabey

1
Ви пропустили код Google, @Joey? В основному я використовував GitHub протягом останніх декількох років, тому мені просто довелося перенести кілька старих проектів з Google Code, перш ніж вони закрилися.
Дон Кіркбі

Ви перейменовували пакунки, зберігали імена googlecode чи ...?
серв-інк

1
Я не використовував жодного старого коду з моменту його переміщення, @ serv-inc. Будь-який варіант буде працювати.
Дон Кіркбі

3

мене звуть Анжан

зазвичай я використовую com.anjan

У мене є власна компанія фантазій - іноді цим користуюся

традиція з sourceforge (як показали сплячий режим та інші пакунки) net.sf. *

тож, залежно від вашого настрою, ви можете піти з цим.


13
Якщо ви також не володієте anjan.com, я думаю, що ви страшенно помиляєтесь у цьому.
Фредрік

7
@Fredrick, на щастя, схоже, що anjan.com незабаром не випускає жодної бібліотеки.
corsiKa

1
@corsiKa: ти маєш рацію, доки я нічого не звільняю, я все в порядку. :-)
anjanb

3
@anjanb Ну, я зайшов на веб-сайт. Вони займаються кормом для домашніх тварин. Я не експерт, але більшість компаній, що займаються харчовими продуктами, не випускають багато програмних бібліотек =)
corsiKa

3

Я думаю, у вас це вийшло. Тут слід уникати спокуси - взагалі не турбуватися з назвою пакета. Зберегти кілька натискань клавіш легко, тому що "я просто пишу тестовий код". Але тоді код стає хорошим, корисним і великим, і тоді ви зрозумієте, що у вас є міцний старт для того, що може бути довготривалою бібліотекою чи додатком. Це може бути не бібліотека чи програма, яка коли-небудь залишає вашу домашню мережу, але справа в тому, що ви не думали наперед. Ось датський привид інформатики - завжди думайте заздалегідь, хоч трохи.

Конвенція про іменування, яку я використовую для свого коду хобі, дуже схожа на вашу. У мене є каталог вищого рівня з назвою "futura" (довгі, нудні причини, чому саме ця назва з'явилася), з якої висить весь мій код. Я намагаюся організовувати свій код у бібліотеках пакетів, навіть якщо це може бути клас чи пакет, який я ніколи не використовую для іншого проекту. Я розміщую всі програми (тобто все, що має класовий недійсний (String [] args) у класі) у папку futura.app. *. Я також намагаюся імітувати стандартні назви пакетів бібліотеки Java для власного коду, хоча в декількох випадках я порушив умову через власні смаки (тобто futura.inet для Інтернету, а не просто сокет, код та futura.collections для не - корисні речі.) Перефразовуючи Девіда Мамета: Завжди будьте загальні. Завжди будьте генералізовані!

Зважаючи на турботу, яку ви використовували для того, щоб поставити запитання, я підозрюю, що ви згодні з моїм останнім пунктом: Ви не повинні ставитись до хабістських злому як до проекту на рівні підприємства, але якщо ви донесите частину цієї дисципліни до домашньої гри, хобі все корисніше.


2

Я використовую свою URL-адресу OpenID, а потім додаю ім'я свого проекту. наприклад, com.myopenid.cd1.twitterце основний пакет клієнта Twitter, який я розробляв.


Мені це сподобалось, але потім я зрозумів, що його більше немає. :( janrain.com/myopenid-service-ends "З 1 лютого 2014 року послугу вимкнено."
successhawk


1

Я просто використовую своє ім'я: surname.initials.xxx, як приємне поєднання між стислістю та уникненням зіткнень. Я вважав, що це дасть розумне вільне простір імен, якщо я коли-небудь вирішу публічно публікувати код. У мене також є невеличка програма, яку я написав, яка може перепакувати цілі дерева каталогів, тому я зрозумів, що мені коли-небудь потрібно перепакувати для публікації, що це досить безболісно ... тому я не втратив надто багато сну над цим.

Після surname.initials.xxx я використовую або додаток для пакетів програм, lib для бібліотечних пакетів, і tst для речей, з якими я суто експериментую.


1

що ти думаєш про lastname.firstname.project ??? як luz.marlon.project?


16
Це може допомогти вам, але Джон Сміт і Боб Джонс можуть зіткнутися з конфліктами, коли хочуть випустити свій код колись.
Білл Ящірка

0

Я думав над тим же запитанням. Поки що я використовував префікс com.tehvan, хоча насправді у мене немає компанії.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.