ข้อความด้านล่างบางข้อความเป็นเรื่องส่วนตัวแม้ว่าจะมีเหตุผลและมีความหมายที่จะเป็นเช่นนี้
ประเภทความคิดเห็น
สำหรับรุ่นสั้น ๆ ... ฉันใช้ความคิดเห็นสำหรับ:
- ความคิดเห็นต่อท้ายที่อธิบายฟิลด์ในโครงสร้างข้อมูล (นอกเหนือจากนั้นฉันไม่ได้ใช้ความคิดเห็นบรรทัดเดียว)
- ความคิดเห็นแบบหลายบรรทัดที่มีวัตถุประสงค์พิเศษหรือมุ่งเน้นด้านบนบล็อก
- ผู้ใช้สาธารณะและ / หรือเอกสารสำหรับนักพัฒนาที่สร้างขึ้นจากแหล่งที่มา
อ่านรายละเอียดด้านล่างและเหตุผล (อาจปิดบัง) ด้านล่าง
ความคิดเห็นต่อท้าย
ขึ้นอยู่กับภาษาทั้งการใช้ความคิดเห็นแบบบรรทัดเดียวหรือความคิดเห็นแบบหลายบรรทัด ทำไมมันขึ้นอยู่กับ? มันเป็นเพียงปัญหามาตรฐาน เมื่อฉันเขียนรหัส C, ฉันโปรดปรานสมัยเก่ารหัส ANSI C89 /* comments */
โดยค่าเริ่มต้นดังนั้นฉันชอบที่จะมักจะมี
ดังนั้นฉันจะมีสิ่งนี้ใน C เวลาส่วนใหญ่และบางครั้ง (ขึ้นอยู่กับสไตล์ของ codebase) สำหรับภาษาที่มีไวยากรณ์คล้าย C:
typedef struct STRUCT_NAME {
int fieldA; /* aligned trailing comment */
int fieldBWithLongerName; /* aligned trailing comment */
} TYPE_NAME;
Emacs M-;
เป็นสิ่งที่ดีและไม่ว่าสำหรับฉันด้วย
หากภาษานั้นรองรับความคิดเห็นแบบบรรทัดเดียวและไม่ใช้ภาษา C ฉันจะถูกล้อมรอบมากขึ้นเพื่อใช้ความคิดเห็นแบบบรรทัดเดียว ไม่เช่นนั้นฉันเกรงว่าตอนนี้ฉันติดนิสัยแล้ว ซึ่งไม่จำเป็นต้องเลวร้ายเพราะบังคับให้ฉันต้องรัดกุม
ความคิดเห็นหลายสาย
ฉันไม่เห็นด้วยกับกฎเกณฑ์ของคุณโดยใช้ความคิดเห็นแบบบรรทัดเดียวสำหรับเรื่องนี้น่าสนใจยิ่งขึ้น ฉันใช้สิ่งนี้:
/*
* this is a multi-line comment, which needs to be used
* for explanations, and preferably be OUTSIDE the a
* function's or class' and provide information to developers
* that would not belong to a generated API documentation.
*/
หรือสิ่งนี้(แต่ฉันทำไม่ได้บ่อยกว่านั้นยกเว้นใน codebase ส่วนบุคคลหรือส่วนใหญ่เป็นประกาศเกี่ยวกับลิขสิทธิ์ - นี่คือประวัติศาสตร์สำหรับฉันและมาจากภูมิหลังทางการศึกษาของฉัน แต่น่าเสียดายที่ IDEs ส่วนใหญ่สับสนเมื่อใช้รูปแบบอัตโนมัติ) :
/*
** this is another multi-line comment, which needs to be used
** for explanations, and preferably be OUTSIDE the a
** function's or class' and provide information to developers
** that would not belong to a generated API documentation.
*/
หากจำเป็นจริงๆแล้วฉันจะแสดงความคิดเห็นแบบอินไลน์โดยใช้สิ่งที่ฉันกล่าวถึงก่อนหน้านี้สำหรับความคิดเห็นต่อท้ายหากมันเหมาะสมที่จะใช้ในตำแหน่งต่อท้าย ในกรณีที่ผลตอบแทนที่พิเศษมากสำหรับอินสแตนซ์หรือเอกสารswitch
ของcase
งบ (หายากผมไม่ใช้เปลี่ยนบ่อย) หรือเมื่อฉันเอกสารสาขาในif ... else
การควบคุมการไหล หากนั่นไม่ใช่สิ่งเหล่านี้โดยปกติแล้วบล็อกความคิดเห็นที่อยู่นอกขอบเขตการสรุปขั้นตอนของฟังก์ชัน / เมธอด / บล็อกจะเหมาะสมกว่าสำหรับฉัน
ฉันใช้สิ่งเหล่านี้เป็นพิเศษยกเว้นในกรณีที่การเขียนโค้ดเป็นภาษาที่ไม่ได้รับการสนับสนุนสำหรับความคิดเห็นในเอกสารประกอบ ในกรณีที่พวกเขากลายเป็นที่แพร่หลายมากขึ้น แต่ในกรณีทั่วไปมันเป็นเพียงการบันทึกสิ่งที่มีไว้สำหรับนักพัฒนาคนอื่น ๆ และเป็นความคิดเห็นภายในที่จำเป็นต้องโดดเด่นจริงๆ ตัวอย่างเช่นหากต้องการจัดทำเอกสารบล็อกว่างเปล่าบังคับเช่นบล็อก "บังคับ" catch
:
try {
/* you'd have real code here, not this comment */
} catch (AwaitedException e) {
/*
* Nothing to do here. We default to a previously set value.
*/
}
ซึ่งน่าเกลียดอยู่แล้วสำหรับฉัน แต่ฉันจะทนในบางสถานการณ์
ความคิดเห็นเอกสาร
& Javadoc อัล
ฉันมักจะใช้พวกเขาในวิธีการและชั้นเรียนเพื่อรุ่นเอกสารแนะนำคุณสมบัติ (หรือเปลี่ยนแปลง) โดยเฉพาะอย่างยิ่งถ้าเป็นสาธารณะ API และเพื่อให้ตัวอย่างบางอย่าง (กับกรณีที่เข้าและส่งออกที่ชัดเจนและกรณีพิเศษ) แม้ว่าในบางกรณีกรณีหน่วยอาจจะดีกว่าในเอกสารเหล่านี้การทดสอบหน่วยไม่จำเป็นต้องเป็นมนุษย์ที่อ่านได้ (ไม่ว่าคุณจะใช้ DSL แบบใดก็ตาม)
พวกเขาทำข้อผิดพลาดเล็กน้อยฉันถึงเอกสาร / คุณสมบัติเนื่องจากฉันชอบความคิดเห็นต่อท้ายสำหรับเรื่องนี้และไม่ทั้งหมดกรอบการสร้างเอกสารสนับสนุนความคิดเห็นเอกสารประกอบต่อท้าย ยกตัวอย่างเช่น Doxygen ทำเช่นนั้น แต่ JavaDoc ไม่ทำซึ่งหมายความว่าคุณต้องการความคิดเห็นสูงสุดสำหรับทุกสาขาของคุณ ฉันสามารถอยู่รอดได้แม้ว่าในขณะที่บรรทัด Java มีความยาวตลอดเวลาส่วนใหญ่ดังนั้นความคิดเห็นที่ต่อท้ายจะทำให้ฉันออกมาเท่า ๆ กันโดยการขยายบรรทัดเกินกว่าเกณฑ์ความอดทนของฉัน หาก Javadoc จะพิจารณาปรับปรุงสิ่งเหล่านี้ฉันก็จะมีความสุขมากขึ้น
รหัสออกความคิดเห็น
ฉันใช้บรรทัดเดียวด้วยเหตุผลเดียวเท่านั้นในภาษาที่เหมือน C (ยกเว้นถ้าคอมไพล์สำหรับ C ที่เข้มงวดซึ่งฉันไม่ได้ใช้พวกเขาจริงๆ): เพื่อแสดงความคิดเห็นในขณะที่เขียนโค้ด IDEs ส่วนใหญ่จะมีการสลับสำหรับความคิดเห็นบรรทัดเดียว (จัดชิดกับย่อหน้าหรือคอลัมน์ 0) และนั่นเหมาะกับเคสที่ใช้สำหรับฉัน การใช้สลับสำหรับความคิดเห็นแบบหลายบรรทัด (หรือการเลือกตรงกลางของบรรทัดสำหรับ IDE บางตัว) จะทำให้การสลับระหว่างความคิดเห็น / uncomment ง่ายขึ้น
แต่เมื่อฉันต่อต้านโค้ดที่ใส่ความเห็นใน SCM นั้นมักจะสั้นมากเพราะฉันจะลบชิ้นที่ถูกคอมเม้นต์ออกก่อนที่จะทำ (อ่านคำตอบสำหรับคำถามนี้ที่"แก้ไขโดยความเห็นในบรรทัดและ SCM" )
สไตล์ความคิดเห็น
ฉันมักจะเขียน:
- ประโยคที่สมบูรณ์พร้อมไวยากรณ์ที่ถูกต้อง (รวมถึงเครื่องหมายวรรคตอน) สำหรับการแสดงความคิดเห็นเอกสารตามที่ควรจะอ่านในภายหลังใน API เอกสารหรือแม้กระทั่งเป็นส่วนหนึ่งของคู่มือที่สร้างขึ้น
- รูปแบบที่ดี แต่หละหลวมมากขึ้นในเครื่องหมายวรรคตอน / หมวกสำหรับบล็อกความคิดเห็นหลายบรรทัด
- บล็อกต่อท้ายโดยไม่มีเครื่องหมายวรรคตอน (เนื่องจากพื้นที่และโดยปกติแล้วเนื่องจากความคิดเห็นเป็นบล็อกย่อที่อ่านคล้ายกับคำสั่งวงเล็บ)
หมายเหตุเกี่ยวกับการเขียนโปรแกรมความรู้
คุณอาจต้องการที่จะได้รับความสนใจในความรู้ด้านการเขียนโปรแกรมเป็นที่รู้จักในนี้กระดาษโดยโดนัลด์ Knuth
กระบวนทัศน์การเขียนโปรแกรมความรู้ [... ] หมายถึงการย้ายออกไปจากการเขียนโปรแกรมในลักษณะและคำสั่งที่กำหนดโดยคอมพิวเตอร์และช่วยให้โปรแกรมเมอร์ในการพัฒนาโปรแกรมในลำดับที่ต้องการโดยตรรกะและการไหลของความคิดของพวกเขา 2โปรแกรมงานเขียนถูกเขียนขึ้นเพื่อเป็นการแสดงออกอย่างต่อเนื่องของตรรกะในภาษามนุษย์ธรรมดาเหมือนข้อความของเรียงความ [... ]
เครื่องมือการเขียนโปรแกรม Literate ใช้เพื่อให้ได้การรับรองสองแบบจากไฟล์ต้นฉบับของ Literate: เครื่องมือหนึ่งที่เหมาะสำหรับการคอมไพล์หรือประมวลผลเพิ่มเติมโดยคอมพิวเตอร์รหัส "tangled" และอีกอันสำหรับการดูเป็นเอกสารที่จัดรูปแบบซึ่งกล่าวกันว่า "จักสาน" แหล่งความรู้
เป็นหมายเหตุด้านและตัวอย่าง: กรอบ JavaScript underscore.jsแม้ว่าจะไม่สอดคล้องกับสไตล์การแสดงความคิดเห็นของฉันเป็นตัวอย่างที่ดีของcodebase ที่มีเอกสารที่ดีและแหล่งที่มีคำอธิบายประกอบที่ดีแต่อาจไม่ใช่วิธีที่ดีที่สุดที่จะใช้เป็น การอ้างอิง API)
นี่คือการประชุมส่วนบุคคล ใช่ฉันอาจจะแปลก (และคุณก็อาจจะเกินไป) ไม่เป็นไรตราบใดที่คุณติดตามและปฏิบัติตามข้อกำหนดของรหัสทีมของคุณเมื่อทำงานกับเพื่อนหรือไม่โจมตีการตั้งค่าของพวกเขาอย่างรุนแรงและอยู่ร่วมกันอย่างดี มันเป็นส่วนหนึ่งของสไตล์ของคุณและคุณควรหาเส้นแบ่งระหว่างการพัฒนารูปแบบการเข้ารหัสที่กำหนดให้คุณเป็น coder (หรือเป็นผู้ตามโรงเรียนแห่งความคิดหรือองค์กรที่คุณมีการเชื่อมต่อ) และเคารพการประชุมกลุ่มเพื่อความมั่นคง .
:3,7 Align //
เพื่อจัดแนวความคิดเห็นในบรรทัดที่ 3-7