Ký hiệu tên miền ngược có nguồn gốc từ Java, nhưng được sử dụng rộng rãi trong nhiều nền tảng, chẳng hạn như Gói Android, Gói Mac OS X, JavaScript, ActionScript, v.v.
Việc thực hành là vô cùng hữu ích vì nó cung cấp một hệ thống phi tập trung cho phần mềm đặt tên. Không cần phải áp dụng cho một cơ quan tập trung cho một không gian tên; chỉ cần sử dụng tên miền bạn sở hữu (đảo ngược) và quản lý tên miền đó trong tổ chức của riêng bạn. Bằng cách đặt tên các gói như thế này, người ta có thể gần như chắc chắn rằng mã sẽ không xung đột với các gói khác.
Từ Hướng dẫn Java của Oracle :
Các công ty sử dụng tên miền Internet đảo ngược của họ để bắt đầu tên gói của họ, ví dụ: com.example.mypackage cho gói có tên mypackage được tạo bởi một lập trình viên tại example.com.
Xung đột tên xảy ra trong một công ty duy nhất cần được xử lý theo quy ước trong công ty đó, có thể bằng cách bao gồm tên vùng hoặc tên dự án sau tên công ty (ví dụ: com.example.region.mypackage).
Đó là nhiều hơn một thực hành vẹt, đó là một thực hành tốt bởi vì đó là một không gian tên đầy đủ và cụ thể . Nếu có hai công ty tên Acme và cả hai đều chọn không gian tên acme.
, mã của họ sẽ xung đột. Nhưng chỉ một trong những công ty đó có thể sở hữu tên miền acme.com , vì vậy họ có thể sử dụng com.acme.
không gian tên.
Đảo ngược tên miền cho phép kiến trúc từ trên xuống. com
sẽ chứa mã cho các công ty (hoặc bất kỳ ai sở hữu tên miền .com) và bên dưới tên công ty (tên miền) đó. Sau đó, sâu hơn trong đó sẽ là cấu trúc của tổ chức và / hoặc không gian tên thực tế. (Ví dụ, nếu nó là mã từ một mạng lưới gọi là internal.acme.com , cung cấp cho bộ phận này của mình phụ namespace của com.acme
.) Từ trên xuống Cấu trúc này được sử dụng trong một số ứng dụng, bao gồm cả quản trị hệ thống. (Nó tương tự như tra cứu địa chỉ IP đảo ngược.)
Cá nhân, tôi sử dụng nó cho tất cả các mã JavaScript mới mà tôi viết cho công ty của mình. Nó đảm bảo rằng mã sẽ không bao giờ xung đột với bất kỳ mã nào khác, ngay cả khi sau đó tôi viết cùng mã cho một công ty khác. Nó có thể làm cho việc truy cập mã trở nên cồng kềnh (gõ com.digitalfruition.
có thể hơi nhiều) nhưng điều đó có thể dễ dàng được thực hiện với một bao đóng và một biến cục bộ ( var DF = com.digitalfruition
).