ดวงอาทิตย์ (และตอนนี้ออราเคิล) การเก็บรักษาเอกสารชื่ออนุสัญญารหัสสำหรับ Java Programming Language การอัปเดตครั้งล่าสุดนี้เป็นปี 99 แต่สาระสำคัญของเส้นบอกแนวสไตล์ใช้งานได้
บทที่ 9ครอบคลุมอนุสัญญาการตั้งชื่อ
สำหรับประเภทตัวระบุของ 'ค่าคงที่':
ชื่อของตัวแปรที่ประกาศค่าคงที่คลาสและค่าคงที่ ANSI ควรเป็นตัวพิมพ์ใหญ่ทั้งหมดด้วยคำที่คั่นด้วยเครื่องหมายขีดล่าง ("_") (ควรหลีกเลี่ยงค่าคงที่ ANSI เพื่อความสะดวกในการดีบัก)
ตัวอย่างที่ได้รับ:
static final int MIN_WIDTH = 4;
static final int MAX_WIDTH = 999;
static final int GET_THE_CPU = 1;
ในเอกสารที่ใหม่กว่า - มันเลื่อนไปที่นั่น จากตัวแปร (บทเรียน Java> การเรียนรู้ภาษา Java> พื้นฐานภาษา :
หากชื่อที่คุณเลือกประกอบด้วยเพียงหนึ่งคำให้สะกดคำนั้นด้วยตัวอักษรตัวพิมพ์เล็กทั้งหมด หากประกอบด้วยมากกว่าหนึ่งคำให้ใช้ตัวอักษรตัวแรกของคำต่อ ๆ ไปเป็นตัวพิมพ์ใหญ่ ชื่อgearRatio
และcurrentGear
เป็นตัวอย่างสำคัญของอนุสัญญานี้ หากตัวแปรของคุณเก็บค่าคงที่เช่นstatic final int NUM_GEARS = 6
การประชุมเปลี่ยนแปลงเล็กน้อยการใช้อักษรตัวพิมพ์ใหญ่ทุกตัวและแยกคำที่ตามมาด้วยอักขระขีดล่าง โดยการประชุมตัวละครขีดเส้นใต้จะไม่เคยใช้ที่อื่น
เครื่องมือวิเคราะห์สแตติกจำนวนมากสำหรับ Java พยายามบังคับใช้สิ่งนี้ ยกตัวอย่างเช่นCheckstyleบังคับใช้:
ตรวจสอบว่าชื่อคงที่เป็นไปตามรูปแบบที่ระบุโดยคุณสมบัติรูปแบบ คงเป็นแบบคงที่และสนามสุดท้ายหรือสนามอินเตอร์เฟซ / คำอธิบายประกอบยกเว้นและserialVersionUID
รูปแบบคือการแสดงออกปกติและค่าเริ่มต้นserialPersistentFields
^[A-Z][A-Z0-9]*(_[A-Z0-9]+)*$
สิ่งนี้ทำให้การประชุมของชุมชนต้องเขียนรหัส ... และทำให้มันคงเดิม
ตัวอย่างข้างต้นจะได้รับเป็นตัวอย่างstatic final
ที่มีแนวโน้มว่าจะได้รับจากอนุสัญญา C สำหรับ#define
- ซึ่งเช่น C จะถูกแทนที่ในรหัสในระหว่างการรวบรวมมากกว่าที่รันไทม์
คำถามที่ควรถามก็คือ "สิ่งนี้ทำตัวเหมือนค่าคงที่หรือไม่หรือมันทำตัวเหมือนเขียนครั้งเดียวหรือไม่?" - จากนั้นทำตามอนุสัญญาตามนั้น การทดสอบสารสีน้ำเงินสำหรับคำถามดังกล่าวจะเป็น "ถ้าคุณต้องทำให้เป็นอันดับวัตถุคุณจะรวมเขตข้อมูลสุดท้ายหรือไม่?" หากคำตอบคือว่ามันคงที่ให้ทำเช่นนั้น (และอย่าทำให้เป็นอันดับ) ในทางตรงกันข้ามถ้ามันเป็นส่วนหนึ่งของสถานะของวัตถุที่จะต้องต่อเนื่องกันแล้วมันไม่คงที่
ไม่ว่ากรณีใดมันเป็นสิ่งสำคัญที่จะยึดติดอยู่กับสไตล์ของรหัส แต่ถูกหรือผิด ปัญหาที่เลวร้ายยิ่งปะทุขึ้นจากอนุสัญญาที่ไม่สอดคล้องภายในโครงการกว่าสิ่งที่ทำให้ตาขุ่นเคือง พิจารณารับเครื่องมือวิเคราะห์แบบคงที่และกำหนดค่าให้รักษาความสอดคล้อง