Điểm của quy ước đặt tên gói của Java là gì?


14

Tôi không hiểu tại sao Java sử dụng ngược lại tên miền (có thể là giả thuyết) làm tên của gói, trong khi chủ yếu không có mối liên hệ nào giữa tên miền mà một số người sử dụng và các sản phẩm mà họ có. Rất nhiều nhà phát triển thậm chí không có bất kỳ tên miền nào.

Các lý do của quy ước đặt tên này, nếu có?


Ngay cả khi không có tên miền, thực tế phổ biến ở vùng đất Java để giả vờ bạn thực hiện việc đặt tên gói. Ví dụ: trong trường hợp của bạn, bạn sẽ sử dụng com.louisrhys.xxx.yyydù bạn có sở hữu hay khônglouisrhys.com
Wayne Molina

Câu trả lời:


14

Tính độc đáo toàn cầu. Nếu tất cả mọi người, hoặc ít nhất là các nhà phát triển nghiêm túc phân phối mã của họ ngoài các dự án nội bộ, tuân thủ quy ước đó, sẽ không bao giờ xảy ra việc bạn bị đụng độ tên khi bạn thêm thư viện của bên thứ ba vào dự án của mình. Hãy nhớ rằng Java ban đầu được tuyên truyền như một giải pháp để triển khai mã ở mọi nơi, mọi lúc (thông qua các applet và tải lớp từ xa qua internet).


3
Trong Java 1.4 Sun đã sử dụng các công cụ XML Apache nguồn mở mà không thay đổi không gian tên. Làm cho nó khá "thú vị" để cố gắng có một phiên bản mới hơn trong các ứng dụng của riêng bạn.

3
Java was initially propagated as a solution for code deployment anywhere, anytime Trái ngược với những gì Java bây giờ? Tôi không biết về bạn nhưng tôi vẫn sử dụng thành công Java WebStart để triển khai mã phía máy khách tới hàng ngàn PC trong mạng nội bộ. Điều này làm cho "Phát hành sớm, Phát hành thường xuyên" ít gây đau đớn hơn cho mọi người.
maple_shaft

1
Không nhất thiết phải đúng. Cuối cùng bạn sẽ mất một tên miền; cho dù bằng cách chết hoặc chỉ quên làm mới nó. Một số người khác có thể mua nó và, mà không nhận ra, đưa ra gói Java xung đột với gói của bạn. Và cũng có khả năng ai đó sở hữu tên miền trước bạn và đưa ra mã mà mã của bạn xung đột với.
Kevin

@maple_shaft Nó đã không được như vậy đối với hầu hết người dùng kể từ sự suy giảm của các applet Java. Thay vào đó, nó chỉ là một nền tảng khác cho các ứng dụng (như, nói, Qt hoặc XUL hoặc Electron).
dùng253751

12

Như Wikipedia nói về chủ đề này,

"Đặc tả ngôn ngữ Java thiết lập các quy ước đặt tên gói để tránh khả năng hai gói được xuất bản có cùng tên."


Thông số kỹ thuật có nêu chi tiết quy ước sử dụng nếu nhà phát triển không có tên miền riêng không?
Thất vọngWithFormsDesigner

@FrustratedWithFormsDesigner: Không, không .
Mike Seymour

@MikeSeymour: Vậy ... chúng ta có thể đặt tên cho chúng theo cách chúng ta muốn trong trường hợp đó? Woohoo! :)
Thất vọngWithFormsDesigner

1
@FrustratedWithFormsDesigner Bạn có thể đặt tên cho chúng theo cách bạn muốn trong mọi trường hợp. Nếu bạn muốn người khác sử dụng phần mềm của mình, bạn nên tuân theo thông số kỹ thuật và suy ra một không gian tên duy nhất hợp lý và có khả năng nếu bạn không có tên miền thực.
Jeremy

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.