Я багато часу займаюся розробкою. Ці проекти, над якими я працюю, - це лише для розваги та навчання (поки що). Я зазвичай займаюся розробкою Java разом з Maven, але мені також відомо, що я бавлюсь у .NET та Python. Усі проекти, над якими я працюю, використовують ліцензії з відкритим кодом, хоча більшість з них не є у жодних сховищах публічного коду.
Розробка Java / Maven вимагає від мене , щоб використовувати унікальний groupId
(наприклад , «com.myDomain») і унікальну package
(каталог) структуру, як правило , містить у groupId
той час як розвиток .NET підтримує унікальне , namespaces
в якому я використовую аналогічні угоди з Java package
концепції. Щоб забезпечити унікальність, я зазвичай просто використовую одне з моїх доменних імен із перевернутими частинами (наприклад, "ca.jessewebb"); Я вважаю, що це дуже поширена практика.
Я перебуваю на початкових етапах створення нового, відкритого коду, проекту Java / Maven (назвемо це "newproj"), і я хотів би поставити його на GitHub. Моє ім'я користувача на GitHub є «jessewebb» , так що це дасть йому URL , як: https://github.com/jessewebb/newproj
. Я не хочу перейматися реєстрацією доменного імені "newproj.com", тому я вирішив використовувати "ca.jessewebb" і "ca.jessewebb.newproj" як groupId
і package
, відповідно.
Мені прийшло в голову, що присутність моєї особистої ідентичності в коді та в частині будинку (в URL-адресі GitHub), ймовірно, змусить потенційного учасника задуматися про те, щоб долучитися до мого проекту. Це проблема, я не хочу, щоб це був мій проект. Я вважаю за краще, якби міг натомість передати повідомлення, що я не є власником проекту. Тепер, чесно кажучи, це насправді не така вже й велика угода, тому що я сумніваюся, що мої проекти будуть значною мірою залучати громадськість, але я також вважаю це ще більшою причиною уникати будь-якої можливості стримувати потенційних учасників.
Для іншого прикладу я створив проект Google Code кілька років тому (назвемо це "oldproj"). Коли я створював проект, я знав, що збираюся розмістити його в Google Code, тому застосував назву groupId
та пакет "com.googlecode.oldproj", який є зворотним доменним іменем Google Code, яке надає кожному новому проекту. Це виявилося не дуже великою ідеєю; через рік або близько того, я перемістив код на інше репо, і мені довелося перейменувати ці ідентифікатори (ну, у мене не булодо але ...). У той час у мене не було жодних доменних імен, і я нарешті купив доменне ім’я "oldproj.com", і я ним користувався. Мені це сподобалось, тому що він надав проекту свою власну ідентичність, і я не скрізь скріплював своє ім’я кодом. Я міг так само легко зареєструвати доменне ім'я "jessewebb.ca" і використав "ca.jessewebb.oldproj" як назву пакета, але я цього не зробив, тому що в мене теж були проблеми.
Отже, моє запитання ...
Як я можу уникати використання власних (доменних) імен під час створення проектів з відкритим кодом, зберігаючи унікальність пакетів / просторів імен?
Оскільки проекти набувають все більшої швидкості, є сенс реєструвати доменні імена, але це здається дурним і марно витрачати гроші на це раніше. Я усвідомлюю, що насправді не потрібно володіти доменним іменем, щоб використовувати його в коді, але це відчуває себе неправильно і може призвести до того, що тимчасовий скутер вирве його з-під вас. Що роблять інші люди щодо цієї дилеми? Чи є приклади популярних (широко використовуваних, великих спільнот тощо) проектів з відкритим кодом, які містять оригінальну особу розробника як частину власного ідентифікатора (ів)?