Neden bu kadar çok ad alanı com ile başlıyor?


45

Birçok şirketin "ters etki alanı adı" ad alanlarını kullandığını ve bu uygulamanın nereden çıktığını ve neden devam ettiğini merak ediyorum. Sadece ezberci uygulama nedeniyle devam ediyor mu yoksa burada kaybolacağım olağanüstü bir mimari konsept var mı?

Ayrıca gibi sorular not: https://stackoverflow.com/questions/189209/do-you-really-use-your-reverse-domain-for-package-naming-in-java Bu cevap sıralama Sorum ancak 100 %

(Size daha iyi hissettiriyorsa, javascript ad alanımdaki çabalarım için kullanmam gerekip gerekmediğini gerçekten merak ediyorum, ancak daha sonra ne zaman ve neden merak ettiğimi ve bunun javascript yanıtında bana rehberlik etmesine yardımcı olması gerektiğini düşünüyorum. bene: "pencere")

Klasörlere ve dosyalara uzanan bu uygulamaya örnek: http://imgur.com/jtdXo


1
Bu garip, bunu daha önce hiç görmedim .. şimdi merak ediyorum.
Jimmy Hoffa

Yanıtlar:


54

Ters Etki Alanı Notasyonu'nun kökeni Java'dadır, ancak Android Paketleri, Mac OS X Paketleri, JavaScript, ActionScript ve diğerleri gibi pek çok platformda yaygın olarak kullanılır.

Bu uygulama son derece kullanışlıdır çünkü ad alan yazılımı için merkezi olmayan bir sistem sunar. Bir ad alanı için merkezi bir kuruma başvurmaya gerek yoktur; sadece sahip olduğunuz alan adını kullanın (ters çevirin) ve bunu kendi organizasyonunuzda yönetin. Bunun gibi paketleri adlandırarak, kodun diğer paketlerle çakışmayacağından hemen hemen emin olabilirsiniz.

Oracle'ın Java Rehberlerinden :

Şirketler paket adlarına başlamak için ters çevrilmiş İnternet alan adlarını kullanırlar; örneğin example.com'da bir programcı tarafından oluşturulan mypackage adlı bir paket için com.example.mypackage.

Tek bir şirket içinde ortaya çıkan isim çarpışmalarının, o şirket içindeki sözleşmelerle, belki de şirket adından sonra bölge veya proje adı dahil edilerek ele alınması gerekir (örneğin, com.example.region.mypackage).

Bu, ezbere bir uygulamadan çok, iyi bir pratiktir, çünkü tam ve tamamen özel bir ad alanıdır. Acme adında iki şirket olsaydı ve her ikisi de ad alanını seçerse acme., kodları çelişirdi. Ancak bu şirketlerden yalnızca biri acme.com etki alanına sahip olabilir , bu nedenle com.acme.ad alanını kullanabilirler .

Alan adının tersine çevrilmesi, yukarıdan aşağıya bir mimariye izin verir. comşirketler (veya bir .com etki alanı adına sahip olan herkes için) kodunu ve bunun altında şirket (etki alanı) adlarını içerir. Daha sonra, bunun içinde daha derin bir organizasyon yapısı ve / veya gerçek ad alanı olacaktır. (Örneğin, internal.acme.com adlı bir ağdan kodlanmışsa , bu bölüme kendi alt ad alanını verir com.acme.) Bu yukarıdan aşağı yapı, sistem yönetiminde de dahil olmak üzere bir dizi uygulamada kullanılır. (Ters IP adresi aramalarına benzer.)

Şahsen, firmam için yazdığım tüm yeni JavaScript kodları için kullanıyorum. Daha sonra başka bir şirket için aynı kodu yazsam bile, kodun hiçbir zaman başka bir kodla çakışmamasını sağlar. Bu, kodun hantal olarak kullanılmasını com.digitalfruition.sağlayabilir (yazma işlemi biraz daha fazla olabilir) ancak bir kapatma ve yerel bir değişkenle ( var DF = com.digitalfruition) kolayca çalışılabilir .


Android uygulamamın rasgele paket adını değiştirmeyi düşünüyorum ... ya da bu etki alanını satın almalıyım. :(
jadkik94

Kimsenin 123ABC.com gibi bir numarayla başlayan bir şirket adına sahip olma sorununu çözmenin bir yolunu bulup bulmadığını merak ediyorum, bu durumda hangi adlandırma kuralını kullanmalısınız, burada Java ile başlayan herhangi bir sınıf adını girmenize izin vermez. bir sayı?!
sorin

1
@sorin - paket adınızın ilgili bölümünü bir alt çizgi ile öneki yapın. Örneğin, com._123ABC. Docs.oracle.com/javase/tutorial/java/package/namingpkgs.html adresindeki örnekler .
cxw

13

Bunun nedeni, ad alanlarının kullanılması, ad çakışmaları olasılığını büyük ölçüde azaltması ve etki alanı adınızı (zaten düzenlenmiş) kullanmanız, küresel bir ad alanı oluşturmak için iyi bir yol olduğu içindir .

Alandaki alan adının tersine çevrilmesi, onu sıralanabilir kılar; ad alanı evrendeki küçük parçalarına ait tüm isimler birlikte sıralanır.

Ve son olarak, en az değil, TLD .cominternetteki en popüler TLD'dir, bu nedenle diğer tüm TLD'lerden daha fazla yazılım geliştiricisi tarafından kullanılır.

Her durumda, uygulama, her sınıfın kendi dosyasına sahip olması gereken Java ile başladı ve daha büyük bir ekosistemde oynamak için sınıfların kalifikasyonlarını kolaylaştırmaya yardımcı olmak için küresel ad alanı şeması tanıtıldı.


Kesinlikle uygulanır mu? Com.xyz paketini oluşturmaya çalıştığımı ancak etki alanının kendisine ait olmadığını varsayalım, android bunu yapmamı engeller mi?
VarunAgw

@VarunAgw hayır, kirli oynayabilir ve çatışmaları zorlayabilirsiniz.
Martijn Pieters

Çatışmalar dışında, daha sonra küçük projeler için OrgName.ProjectName kullanmak daha mantıklı
VarunAgw

Kongre karşısında uçacaktın, ama bu senin görevin.
Martijn Pieters

2

endian

Java uzmanı değilim ama genel yapıya göre bu, büyük-endian-little-endian'ın mecazi olarak konuşmakta olduğu başka bir permütasyon.

"Endianness" bazen bir alan adının bileşenlerinin sırasını tanımlamak için kullanılır, örneğin 'en.wikipedia.org' (normal modern 'küçük-endian' formu) ve ters-DNS 'org.wikipedia.en' ( 'big-endian', bilgisayar sistemlerinde bileşenleri, paketleri veya türleri adlandırmak için kullanılır, örneğin Java paketleri, Macintosh ".plist" dosyaları vb.). Ana bilgisayar bölümü bir 'küçük-endian' DNS adı olsa bile, URL'ler 'büyük-endian' olarak kabul edilebilir.

Bu durumda, muhtemelen doğal gruplama / ağaç dallanmasına izin vermek için örgütsel amaçlar için. İşleri daha üst düzeyde düzenli tutar ve daha ayrıntılı bilgi için kazın.

Alternatif çok düz olurdu ve anlamlı / potansiyel olarak faydalı gruplamanın yapıya özdeş olmakla yorumlanması gerekir.


7
Golly, hiç bir zamanki endianness'in ters etki alanı ad alanı düzenine gönderme yaptığını duymadım ..
Martijn Pieters

Ben de bir meslektaşım bir sohbette atmadan ve somut bir tartışma ortaya çıkıncaya kadar yapmadım. O wikipedia (buna bağlı olarak) 'ı reddetti, yani görünüşe göre hiç duyulmadı. Bu düşünceyi benimsemek için gerçek düşüncelerimi biraz rahatlatmak zorunda kaldım, ancak bununla yaşayabilirim.
Ed Hastings

3
Evet, DNS endianness tartışması periyodik olarak gerçekleşiyor. İngiltere’de uzun süredir devam eden “Janus” ağı, isimlerini diğer tarafa taşıdı ve her zaman ARPANet kalabalığının işleri tersine çevirdiğini söylediler.
Ross Patterson,

3
@RossPatterson: Dosya sistemleri, İşletim Sistemleri, Yönlendirilmiş Sınıflandırma Sistemleri, Kütüphane Dosyalama Sistemleri, telefon numaraları, çoğu soldaki kök ile başlar ve sonra daha belirgin hale gelir. Heck, çoğu DNS isim sunucusu yapılandırma dosyası bile bu şekilde yapar. Bu yüzden Janus kalabalığına katılıyorum.
Jörg W Mittag

1
@RossPatterson İsimlerini verdikten sonra Janus'un "doğru yol" olarak neyin sayıldığına dair bir fikri olduğuna şaşırdım.
trigonometri

0

Diğer cevaplarda ufak bir ayrıntıdan bahsetmediğimi düşünüyorum: TLD'nin en popüler olmasının nedeni, Web'in ilk günlerinde, Netscape Navigator gibi web tarayıcılarının "otomatik olarak eklenmiş" .com adreste yer almıyordu (ör. isim araması başarısız olursa). Bu yüzden eğer "shareware" yazdıysanız, " http://shareware.com " ya (ya da " http://www.shareware.com "; www detayını hatırlamıyorum) kadar genişleyecektir . .com alan adları muhtemelen hala en popüler olanlardır.

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.