Saya melakukan banyak pengembangan di waktu saya sendiri. Proyek-proyek yang saya kerjakan ini semua hanya untuk bersenang-senang dan belajar (sejauh ini). Saya biasanya melakukan pengembangan Java dengan Maven tetapi saya juga dikenal berkecimpung di .NET dan Python. Semua proyek yang saya kerjakan menggunakan lisensi open source, meskipun kebanyakan dari mereka tidak pada repositori kode publik.
Pengembangan Java / Maven mengharuskan saya untuk menggunakan struktur unik groupId
(mis. "Com.mydomain") dan unik package
(direktori), biasanya berisi pengembangan groupId
sementara .NET mendorong keunikan namespaces
di mana saya menggunakan konvensi serupa dengan package
konsep Java . Untuk memastikan keunikan, saya biasanya hanya menggunakan salah satu nama domain saya dengan bagian yang dibalik (mis. "Ca.jessewebb"); Saya percaya ini adalah praktik yang sangat umum.
Saya sedang dalam tahap awal membuat proyek Java / Maven, open source, baru (sebut saja "newproj") dan saya ingin meletakkannya di GitHub. Username saya di GitHub itu "jessewebb" jadi ini akan memberikan URL seperti: https://github.com/jessewebb/newproj
. Saya tidak ingin repot mendaftarkan nama domain "newproj.com" jadi saya memutuskan untuk menggunakan "ca.jessewebb" dan "ca.jessewebb.newproj" sebagai groupId
dan package
, masing-masing.
Terpikir oleh saya bahwa keberadaan identitas pribadi saya dalam kode dan sebagai bagian dari rumah proyek (di URL GitHub) kemungkinan akan menyebabkan kontributor potensial untuk berpikir dua kali untuk terlibat dengan proyek saya. Ini masalah, saya tidak ingin itu menjadi proyek saya . Saya lebih suka jika saya bisa, sebagai gantinya, menyampaikan pesan bahwa saya tidak memiliki proyek. Sekarang, dalam semua kejujuran, itu sebenarnya bukan masalah besar karena saya ragu proyek saya akan mengumpulkan banyak keterlibatan masyarakat tetapi saya juga melihat ini sebagai alasan yang lebih besar untuk menghindari kemungkinan menghalangi calon kontributor.
Sebagai contoh lain, saya membuat proyek Google Code beberapa tahun yang lalu (sebut saja "oldproj"). Ketika saya membuat proyek, saya tahu saya akan meng-host-nya di Google Code jadi saya menggunakan groupId
dan mengemas nama "com.googlecode.oldproj", yang merupakan kebalikan dari nama domain default yang disediakan Google Code pada setiap proyek baru. Ini ternyata bukan ide yang terlalu bagus; setahun atau lebih kemudian, saya memindahkan kode ke repo yang berbeda dan saya harus mengganti nama pengidentifikasi ini (baik saya tidak punyauntuk tetapi ...). Pada saat itu, saya tidak memiliki nama domain dan akhirnya saya membeli nama domain "oldproj.com" dan saya menggunakannya. Saya suka ini karena memberi proyek identitasnya sendiri dan saya tidak mencap nama saya pada kode di mana-mana. Saya bisa saja dengan mudah mendaftarkan nama domain "jessewebb.ca" dan menggunakan "ca.jessewebb.oldproj" sebagai nama paket, tetapi saya tidak melakukannya karena saya mempunyai masalah yang sama saat itu juga.
Jadi pertanyaan saya adalah ...
Bagaimana saya bisa menghindari menggunakan nama (domain) saya sendiri saat membuat proyek sumber terbuka sambil tetap mempertahankan keunikan paket / ruang nama?
Sebagai proyek mendapatkan momentum lebih, masuk akal untuk mendaftarkan nama domain tetapi tampaknya konyol dan buang-buang uang untuk melakukan ini sebelumnya. Saya menyadari bahwa saya sebenarnya tidak harus memiliki nama domain untuk menggunakannya dalam kode tetapi itu terasa salah dan dapat menyebabkan penghuni liar mengambilnya dari bawah Anda sementara itu. Apa yang dilakukan orang lain tentang dilema ini? Apakah ada contoh proyek sumber terbuka populer (digunakan secara luas, komunitas besar, dll.) Yang berisi identitas pengembang asli sebagai bagian dari pengidentifikasi sendiri?