จุดประสงค์ของการตั้งชื่อแพ็คเกจของ Java คืออะไร?


14

ฉันไม่เข้าใจว่าทำไม Java จึงใช้ชื่อโดเมน (อาจเป็นสมมุติฐาน) กลับด้านในขณะที่ส่วนใหญ่ไม่มีการเชื่อมต่อระหว่างชื่อโดเมนที่บางคนใช้และผลิตภัณฑ์ที่พวกเขามี นักพัฒนาจำนวนมากไม่มีแม้แต่โดเมนใด ๆ

อะไรคือสาเหตุของอนุสัญญาการตั้งชื่อนี้ถ้ามี?


แม้ว่าจะไม่มีโดเมน แต่มันก็เป็นเรื่องธรรมดาใน Java-land ที่จะแกล้งคุณทำเพื่อตั้งชื่อแพ็คเกจ เช่นในกรณีของคุณคุณจะใช้com.louisrhys.xxx.yyyว่าคุณเป็นเจ้าของหรือไม่louisrhys.com
Wayne Molina

คำตอบ:


14

เอกลักษณ์ระดับโลก หากทุกคนหรืออย่างน้อยนักพัฒนาอย่างจริงจังที่แจกจ่ายรหัสของพวกเขานอกเหนือจากโครงการในบ้านปฏิบัติตามอนุสัญญาดังกล่าวจะไม่เกิดขึ้นว่าคุณได้รับการปะทะกันของชื่อเมื่อคุณเพิ่มห้องสมุดบุคคลที่สามในโครงการของคุณ โปรดจำไว้ว่า Java ถูกเผยแพร่ครั้งแรกเป็นโซลูชันสำหรับการปรับใช้รหัสทุกที่ทุกเวลา (ผ่านแอปเพล็ตและการโหลดคลาสระยะไกลผ่านอินเทอร์เน็ต)


3
ใน Java 1.4 Sun ใช้เครื่องมือ Apache XML แบบโอเพนซอร์สโดยไม่ต้องเปลี่ยนชื่อพื้นที่ ทำให้ค่อนข้าง "น่าสนใจ" เพื่อลองใช้เวอร์ชันที่ใหม่กว่าในแอปพลิเคชันของคุณเอง

3
Java was initially propagated as a solution for code deployment anywhere, anytime ตรงข้ามกับสิ่งที่ Java ตอนนี้? ฉันไม่รู้เกี่ยวกับคุณ แต่ฉันก็ยังใช้ Java WebStart เพื่อปรับใช้โค้ดฝั่งไคลเอ็นต์กับพีซีนับพันในเครือข่ายภายใน สิ่งนี้ทำให้ "Release Early, Release บ่อย" เจ็บปวดน้อยกว่าสำหรับทุกคน
maple_shaft

1
ไม่จำเป็นต้องเป็นเรื่องจริง ในที่สุดคุณจะสูญเสียชื่อโดเมน ไม่ว่าจะโดยการตายหรือเพียงแค่ลืมที่จะต่ออายุ ใครบางคนสามารถซื้อได้และไม่ต้องใช้ชุด Java ที่ขัดแย้งกับคุณ และยังมีความเป็นไปได้ที่บางคนเป็นเจ้าของโดเมนก่อนคุณและวางรหัสที่รหัสของคุณขัดแย้ง
เควิน

@maple_shaft มันไม่ได้เป็นเช่นนั้นสำหรับผู้ใช้ส่วนใหญ่ตั้งแต่การลดลงของ Java applets ค่อนข้างเป็นเพียงแพลตฟอร์มสำหรับแอปพลิเคชัน (เช่นพูด Qt หรือ XUL หรืออิเล็กตรอน)
user253751

12

ในฐานะที่เป็นวิกิพีเดียกล่าวว่าในเรื่องที่

"Java Language Specification สร้างระเบียบการตั้งชื่อแพ็คเกจเพื่อหลีกเลี่ยงความเป็นไปได้ของแพ็คเกจที่เผยแพร่สองชุดที่มีชื่อเหมือนกัน"


ข้อกำหนดรายละเอียดมีข้อกำหนดว่าต้องใช้หรือไม่หากนักพัฒนาไม่มีชื่อโดเมนของตัวเอง
FrustratedWithFormsDesigner

@FrustratedWithFormsDesigner: ไม่มีก็ไม่ได้
Mike Seymour

@MikeSeymour: ดังนั้น ... เราสามารถตั้งชื่อพวกเขา แต่เราต้องการในกรณีนั้น? ดีจัง! :)
FrustratedWithFormsDesigner

1
@FrustratedWithFormsDesigner คุณสามารถตั้งชื่อได้ตามที่คุณต้องการในทุกกรณี หากคุณต้องการให้คนอื่นใช้ซอฟต์แวร์ของคุณคุณควรปฏิบัติตามข้อกำหนดและสรุปเนมสเปซเชิงตรรกะและน่าจะเป็นไปได้หากคุณไม่มีโดเมนจริง
Jeremy

2

ฉันพบเอกสารที่เผยแพร่โดย Oracle สองฉบับที่พูดถึงการตั้งชื่อแพ็คเกจ มีคือการตั้งชื่อหน้าแพคเกจใน Java สอนและส่วนแพคเกจของ Java Language ข้อกำหนด

วัตถุประสงค์หลักของการประชุมนี้คือพยายามลดความขัดแย้งระหว่างแพ็คเกจที่จัดทำโดยองค์กรต่าง ๆ

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.