Java'nın paket adlandırma kuralının anlamı nedir?


14

Java'nın neden (muhtemelen varsayımsal) bir alan adının tersini bir paket adı olarak kullandığını anlamıyorum, çoğunlukla bazı kişilerin kullandığı alan adı ile sahip oldukları ürünler arasında hiçbir bağlantı yoktur. Birçok geliştiricinin alanı bile yoktur.

Varsa bu adlandırma kuralının nedenleri nelerdir?


Etki alanı olmasa bile, Java adlandırmasında paket adlandırma için yaptığınız gibi davranmak yaygın bir uygulamadır. Örneğinizde, sahibi com.louisrhys.xxx.yyyolup olmadığınızı kullanırsınızlouisrhys.com
Wayne Molina

Yanıtlar:


14

Küresel benzersizlik. Kodunu şirket içi projelerin ötesine dağıtan herkes veya en azından ciddi geliştiriciler, bu sözleşmeye bağlı kalırsa, projenize başka bir üçüncü taraf kitaplığı eklediğinizde ad çakışmaları yaşarsınız. Java'nın başlangıçta her yerde ve her zaman kod dağıtımı için bir çözüm olarak yayıldığını unutmayın (uygulamalar üzerinden ve internet üzerinden uzaktan sınıf yükleme yoluyla).


3
Java 1.4 Sun'da isim alanını değiştirmeden açık kaynaklı Apache XML araçlarını kullandı. Kendi uygulamalarınızda daha yeni bir sürüme sahip olmayı denemeyi oldukça ilginç hale getirdi.

3
Java was initially propagated as a solution for code deployment anywhere, anytime Şu anda Java'nın aksine? Seni bilmiyorum ama hala dahili bir ağdaki binlerce PC'ye istemci tarafı kodunu dağıtmak için Java WebStart'ı başarıyla kullanıyorum. Bu "Erken Salınma, Sık Salınma" yı herkes için çok daha az acı verici hale getirir.
maple_shaft

1
Mutlaka doğru değil. Sonunda bir alan adını kaybedeceksiniz; ölerek ya da sadece yenilemeyi unutarak. Başka biri satın alabilir ve farkında olmadan kendinizle çatışan bir Java paketi çıkarabilir. Ayrıca, birisinin sizden önce alan adına sahip olma ve kodunuzun çakıştığı kodu koyma olasılığı da vardır.
Kevin

@maple_shaft Java uygulamalarının reddedilmesinden bu yana çoğu kullanıcı için böyle olmamıştır. Aksine, uygulamalar için başka bir platform (örneğin, Qt veya XUL veya Elektron gibi).
user253751

12

Wikipedia'nın bu konuda söylediği gibi ,

"Java Dil Belirtimi, aynı ada sahip iki yayımlanmış paket olasılığını önlemek için paket adlandırma kuralları oluşturur."


Özellik, geliştiricinin kendi etki alanı adı yoksa hangi kuralın kullanılacağını ayrıntılı olarak açıklıyor mu?
SinirliWithFormsDesigner

@FrustratedWithFormsDesigner: Hayır değil .
Mike Seymour

@MikeSeymour: Yani ... bu durumda istediğimiz gibi adlandırabilir miyiz? Bravo! :)
SinirliWithFormsDesigner

1
@FrustratedWithFormsDesigner Her durumda istediğiniz gibi adlandırabilirsiniz. Başkalarının yazılımınızı kullanmasını istiyorsanız, gerçek bir etki alanınız yoksa belirtimi izlemeli ve mantıklı ve olası benzersiz bir ad alanı çıkarmalısınız.
Jeremy

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.