Java'daki kişisel / hobi projeleri için hangi paket adlandırma kuralını kullanıyorsunuz?


143

Zaten benzersiz bir paket adı (yani paket com.stackoverflow.widgets) oluşturmak için bir etki alanı adı kullanarak standart Java paket adlandırma kuralına aşinayım . Bununla birlikte, kişisel projeler için paket adlarının nasıl seçileceğine dair herhangi bir öneri görmedim. Sanırım çünkü bu gerçekten kişisel bir zevk meselesi.

Peki, hiçbir zaman üretime geçmeyecek kişisel projeler için paket adlarını nasıl seçersiniz (boş zamanlarınızda yeni bir çerçeve deniyor olabilirsiniz). Etki alanını paket yapınızı oluşturmak için kullanabileceğiniz kişisel bir web siteniz olmadığını varsayarsak, ne yaparsınız (ya da yaparsınız)? Hobi projeleri için yeni paket adları oluşturmak için yerinde bir mantıksal sisteminiz var mı, yoksa sadece gibi basit paket adları mypackagemı kullanıyorsunuz ?

Farklı insanların düşüncelerinin bunun hakkında ne olduğunu merak ettiğim için bunu bir topluluk wiki'si haline getirdim.

Şahsen benim için hiç düşünmedim, ama bu gece Wicket ile oynamak istedim ve hobi projelerimi nasıl düzenlemek istediğim konusunda net bir fikrim yok. Hobi projeleri için ayrı, farklı bir paket adlandırma kuralı (en azından bence), kişisel ve işle ilgili kodu birbirinden açıkça ayırmanın iyi bir yolu olacaktır.

Kişisel projelerimin kaynağını tek bir kök klasörde tutmak için basit bir hiyerarşik adlandırma kuralı düşünüyordum:

  • myprojectsKök klasör olarak kullan
  • Proje adını ekleyin
  • Ek alt paket adları ekleyin

Yani, Wicket projem pakette olacak myprojects.learningwicketve birim testleri pakette olacaktı myprojects.learningwicket.tests(örneğin).


1
Yaygın olarak, kendinize kişisel bir alan adı (ad -lastname.net) edinin ve paket adı olarak kullanın. Paketin amacı küresel olarak benzersiz olmaktır, bu yüzden projelerim gerçekten kesmez.
Vladimir Dyuzhev

5
Bir .onion alan adı kullanmak da bir seçenektir (gibi onion.duskgytldkxiuqc6.packagename). Özel anahtar gizli kaldığı sürece, alan adının kontrolü sizdedir. Bu nedenle kayıt yaptırmak (oluşturmak) ücretsizdir ve kalıcıdır (geleneksel alan adlarından farklı olarak). Java sözleşmesi mektubuna uygundur ve sizi benzersiz bir şekilde tanımlar.
sastanin

14
Her zaman bir GitHub hesabı oluşturabilir ve io.github.username. * Kullanabilirsiniz.
Bardi Harborow

2
@BardiHarborow teşekkürler, önerinizi kullandım.
Nick Volynkin

3
@GabrielBB, GitHub Pages , HTML ve Jekyll sitelerini kullanıcı adınız.github.io'da barındırmanıza izin verir ve bu nedenle github.io alt alanlarının GitHub kullanıcılarına karşılık gelmesi için github.com alt alan adlarından daha fazla "garanti" edilir (dahili olarak kullanılabilir) GitHub projeleri her zaman).
Bardi Harborow

Yanıtlar:


49

Sadece kimsenin kodu kullanmayacağı kişisel projeler yapıyorsanız, sevdiğiniz bir paket adı oluşturabilirsiniz. Bununla birlikte com.veya net.başka bir üst düzey alan adıyla başlayan bir şey oluşturmayın , çünkü bu alan adına sahip olduğunuz anlamına gelir (yani com.john, adınızın John olduğu için paket adınız olarak kullanmak iyi bir fikir değildir) .

Kodu bir başkasına verecekseniz, Java kurallarına göre, bir etki alanı adı kaydetmeniz ve kullanmanız gerektiği anlamına gelen, dünya çapında benzersiz bir paket adı kullanmalısınız.


1
Bu yüzden com.xyzpaket adını bir yere kayıtlı olması gerektiği gibi ele almak istersem ?? PS xyzbenim müşterim.
Prasad

9
Github kimliğimi bu ve github alanı için kullanabilir miyim acaba? Örneğin com.github.mygithubid.myproject?
Kirill

2
@KirillG. GitHub kimlikleri herhangi bir zamanda, herhangi bir sayıda değiştirilebilir, çünkü buna karşı tavsiye ederim. Kabul edilirse, herhangi bir alan adı değişebilir, ancak kolayca veya sık sık değiştirilemez (normalde yine de değil). Hobi projeleri için sorun yok sanırım.
sara

26

Sadece baş harfleri kullanıyorum: fg.nameofproject.etc

Yazmayı azaltır. Herhangi bir zamanda sf.net veya com ile önceden eklenebilir. org. veya com.google ..

Proje kişisel muamele olduğundan, tıpkı taze preslenmiş kişiselleştirilmiş hediye gömleğiniz gibi özel - iyi hissedeceksiniz.


42
bond.james.007
Upvote Oyla

19
@ olacak kurallara göre tıklayın bond.james._007- aynı yüzüğü yok ...: - {
corsiKa

20
pmurray_at_bigpond_dot_com.project.package

2
+1. Zeki. Bu size benzersiz bir paket adı verir ve yazarın tümünü bir kerede tanımlar.
Mike Spross

19

<sarcasm>Bah. Kendine saygılı herhangi bir programcının kendi alan adı vardır. Bu açıkça hileli bir soru. Herkesin kendi kişisel alan adı vardır! </sarcasm>:-)

Tamam, ciddiyetle, özel bir alan adı satın almak muhtemelen en kolay seçenektir. Yılda yaklaşık 10 ABD doları karşılığında, alan adını barındırmak ve e-posta iletmek için saygın sağlayıcılar bulabilirsiniz.


18
Garip bir şekilde, bu da kendine güvenini artıracak.
jamesh

26
İyi cevap, ancak bir başlangıç ​​programcısı muhtemelen sadece bir öğretici web sitesini veya kapat düğmesi ile bir GUI oluşturma hakkında videoyu takip etmek için bir web sitesi satın almak istemiyor.
Jochem Kuijpers

17

Sadece paket adıyla proje siteyi kullanmak yüzden Google Code benim hobi projelerinin çoğunda saklamak: com.googlecode.donkirkby.someproject.


8
Eylemlerimizin çılgınlığını görmememiz ne kadar kör olabilirdi ?!
Joey Sabey

1
Google Code'u mu özlüyorsun? Çoğunlukla kullandım GitHub Sadece onlar kapatmadan önce Google Code arta benim eski projelerin birkaç taşımak zorunda, son birkaç yıldır.
Don Kirkby

Peki, paketleri yeniden adlandırdınız mı, googlecode adlarını sakladınız mı, yoksa ...?
serv-inc

1
Taşıdığımdan beri eski kodlardan hiçbirini kullanmadım, @ serv-inc. Her iki seçenek de işe yarar.
Don Kirkby

3

benim adım anjan

genellikle com.anjan kullanıyorum

Kendime ait bir fantezi şirketim var - bazen bunu kullanıyorum

sourceforge ile gelenek (hazırda bekletme ve diğer paketlerin gösterdiği gibi) net.sf. *

böylece, ruh halinize bağlı olarak, bununla gidebilirsiniz.


13
Siz de anjan.com sahibi değilseniz, bunda çok yanlış olduğunu düşünüyorum.
Fredrik

7
@Neyse ki Fredrick, anjan.com'un yakın zamanda herhangi bir kütüphane yayınlamayacağı anlaşılıyor.
corsiKa

1
@corsiKa: haklısın, hiçbir şey bırakmadığım sürece iyiyim. :-)
anjanb

3
@anjanb Peki, onların web sitesine gittim. Evcil hayvan yemi yaparlar. Uzman değilim, ancak çoğu evcil hayvan gıda şirketi birçok yazılım kütüphanesi yayınlamıyor =)
corsiKa

3

Sanırım çalıştın. Burada kaçınmanın cazibesi, bir paket adıyla hiç uğraşmamaktır. Birkaç tuşa basmak çok kolay çünkü "Sadece bir test kodu yazıyorum." Ama sonra kod iyi ve kullanışlı ve büyük olur ve daha sonra uzun ömürlü bir kütüphane veya uygulama için sağlam bir başlangıç ​​yaptığınızı fark edersiniz. Ev ağınızdan ayrılan bir kütüphane ya da uygulama olmayabilir, ama asıl nokta, ileriyi düşünmediğinizdir. Bu bilgisayar biliminin Danimarka hayaleti - eğer biraz ilerleseniz de daima ileriyi düşünün.

Hobi kodum için kullandığım adlandırma kuralı sizinkine çok benziyor. Tüm kodum askıda "futura" (bu adın neden uzun, sıkıcı nedenleri) adlı üst düzey bir dizin var. Ben asla başka bir proje için kullanacağım bir sınıf veya paket olsa bile, kodumu paket kitaplıkları halinde düzenlemek çalışın. Futura.app. * Klasörüne tüm uygulamaları (sınıfta geçersiz ana (String [] args) olan herhangi bir şey) yerleştiririm. Ayrıca, kendi kodum için standart Java kitaplığı paket adlarını taklit etmeye çalışıyorum, ancak birkaç durumda kendi zevklerim yüzünden (yani internet için futura.inet, sadece soket, kod ve futura.collections olmayan David Mamet: Her zaman jenerikleştirin. Her zaman jenerikleştirin!

Soruyu gönderirken kullandığınız bakımdan, son noktama da katıldığınızdan şüpheleniyorum: Hobi korsanlığını kurumsal düzeyde bir proje olarak ele almak zorunda değilsiniz, ancak bu disiplinin bir kısmını ev oyununa getirirseniz, hobi daha faydalıdır.


2

OpenID URL'mi kullanıyorum ve sonra projemin adını ekliyorum. örneğin, com.myopenid.cd1.twittergeliştirdiğim bir Twitter istemcisinin kök paketi.


Bunu sevdim, ama sonra artık var olmadığını fark ettim. :( janrain.com/myopenid-service-ends "1 Şubat 2014 itibariyle MyOpenID hizmeti kapatıldı."
successhawk


1

Sadece adımı kullanıyorum: soyadı.initials.xxx, kısalık ve çarpışmadan kaçınma arasında hoş bir oluşum olarak. Kodu herkese açık olarak yayınlamayı seçersem makul bir çarpışma olmadan ad alanı vereceğini düşündüm. Ayrıca tüm dizin ağaçlarını yeniden paketleyebilirsiniz yazdım küçük bir program var, bu yüzden yayınlamak için yeniden paketlemek gerekir gerektiğini düşündüm ki bu yüzden üzerinde çok fazla uyku kaybetmedim.

Soyadı.initials.xxx sonra, uygulama paketleri için uygulama, kütüphane paketleri için lib ve tamamen denemek istiyorum şeyler için tst kullanın.


1

soyad.firstname.project hakkında ne düşünüyorsun ??? luz.marlon.project gibi mi?


16
Bu sizin için işe yarayabilir, ancak John Smith ve Bob Jones bir gün kodlarını yayınlamak istediklerinde çatışmalarla karşılaşabilirler.
Kertenkele Bill

0

Aynı soruyu sormayı düşündüm. Şimdiye kadar aslında bir şirketim olmasa bile com.tehvan önekini kullandım.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.