“ ฉัน”,“ เรา”, หรือไม่อยู่ในเอกสารรหัส


41

ฉันพบว่าตัวเองเขียน (หวังว่า) ความคิดเห็นที่เป็นประโยชน์ในรหัส (C ++) เอกสารประเภท:

The reason we are doing this is...

เหตุผลที่ฉันใช้ "พวกเรา" แทนที่จะเป็น "ฉัน" ก็เพราะฉันเขียนบทความเชิงวิชาการจำนวนมากซึ่งบ่อยครั้งที่ "เรา" ชอบ

ดังนั้นนี่คือคำถาม มีเหตุผลที่ดีที่จะเลือกใช้รหัสอื่นในรหัสเอกสารหรือไม่:

  1. ใช้ "เรา":เหตุผลที่เราทำเช่นนี้คือ ...
  2. ใช้ "ฉัน":เหตุผลที่ฉันทำสิ่งนี้คือ ...
  3. ใช้ชื่อของฉัน:เหตุผล[my name]นี้คือ ...
  4. เสียงไม่โต้ตอบ:เหตุผลที่ทำเช่นนี้คือ ...
  5. ไม่:ทำอย่างนี้เพราะ ...

ฉันเลือก # 1 เพราะฉันคุ้นเคยกับการเขียนด้วยวิธีนี้ แต่เอกสารไม่ใช่สำหรับนักเขียน แต่สำหรับผู้อ่านดังนั้นฉันจึงสงสัยว่าการเพิ่มชื่อนักพัฒนาซอฟต์แวร์นั้นมีประโยชน์หรือไม่ จะมีการเปลี่ยนแปลงเมื่อรักษารหัส


ฉันคิดว่ามันเป็นความชอบส่วนตัว ฉันไม่เห็นเหตุผลใด ๆ ว่าทำไมจะมีความชัดเจนกว่าอีกทั่วไป
ConditionRacer

6
วิธีการเกี่ยวกับ # 5: "เมื่ออยู่ในเหตุการณ์ของมนุษย์ ... ";)
waxwing

8
"สี่คะแนนและเจ็ดวินาทีที่ผ่านมาบรรพบุรุษของเราได้เรียนรู้ว่าฟูจะต้องถูกห้ามอย่างน้อยกองกำลังของเราจะพ่ายแพ้ด้วย NULL"
Philip

มีความเกี่ยวข้องอย่างมากกับภาษาอังกฤษ SE: ทำไมโปรแกรมเมอร์มักใช้ 'เรา' เมื่อพวกเขาหมายถึง 'ฉัน' หรือ 'คุณ' จริงๆ (ซึ่งเป็นที่น่าเสียดายที่ปิด)
Izkata

2
ทำไมไม่พูดThis code was written like this because...? (เสียงแฝง)
อัลวินหว่อง

คำตอบ:


77

ฉันจะไปกับ:

# 6 ประกาศ: ...

แทนที่จะพูดว่า "เหตุผลที่ทำนี่คือเพราะแต่ละคนต้องมีบาร์" แค่พูดว่า "แต่ละคนต้องมีบาร์" แสดงความคิดเห็นลงในคำสั่งที่ใช้งานของเหตุผลมากกว่าที่จะอยู่เฉยๆ โดยทั่วไปแล้วมันเป็นสไตล์การเขียนที่ดีกว่าโดยรวมเหมาะกับลักษณะของโค้ด (ซึ่งทำอะไร) และthe reason this was doneวลีจะไม่เพิ่มข้อมูลใด ๆ นอกจากนี้ยังช่วยหลีกเลี่ยงปัญหาที่คุณพบ


คุณจะช่วยอธิบายเพิ่มเติมสักเล็กน้อยว่าทำไมคุณถึงทำอย่างนั้น? คำตอบนี้ดูเหมือนจะเป็นความคิดเห็นที่เปลือยเปล่าซึ่งขัดแย้งกับแนวทางการสำรองข้อมูล : '... ความคิดเห็นไม่เลวทั้งหมดตราบใดที่มีการสำรองข้อมูลอย่างอื่นที่ไม่ใช่ "เพราะฉันเป็นผู้เชี่ยวชาญ" หรือ“ เพราะฉันพูดอย่างนั้น” หรือ“ เพียงเพราะ” ใช้ประสบการณ์เฉพาะของคุณเพื่อสำรองความคิดเห็นข้างต้นหรือชี้ไปที่งานวิจัยบางอย่างที่คุณทำบนเว็บหรือที่อื่น ๆ ที่ให้หลักฐานเพื่อสนับสนุนข้อเรียกร้องของคุณ ... '
gnat

15
@gnat "เหตุผลที่ทำเช่นนี้" ไม่ได้เพิ่มอะไรเข้าไปในคำอธิบาย ความคิดเห็นควรมีข้อความเพียงพอที่จะรับประเด็นและไม่เกิน ละทิ้ง niceties, preambles และข้อความเติมอื่น ๆ
David Harkness

@gnat - ฉันเพิ่งเพิ่มมากขึ้นเมื่อฉันเห็นความคิดเห็นของคุณ
Bobson

1
ฉันคิดว่าตัวอย่างของฉันง่ายเกินไปเพราะ "เหตุผลที่ทำไปแล้ว" ไม่ได้เพิ่มอะไรเลย แต่มีบางกรณีที่สถานการณ์ที่ยากลำบากต้องการคำอธิบายและในกรณีนั้นฉันคิดว่ามันเป็นธรรมชาติมากกว่าที่จะใช้ "เรา" หรือ "ฉัน" เหมือนกับที่ฉันใช้ "ฉัน" หลายครั้งในความคิดเห็นนี้ แต่ฉันคิดว่าคำตอบของคุณมีความชัดเจนในจิตวิญญาณ: "ที่เปิดเผย" แนะนำ: ใช้คำศัพท์จำนวนน้อยที่สุดเพื่อให้ชัดเจน
Alan Turing

7
ฉันอ่าน//เป็นbecauseส่วนใหญ่
Ilmo Euro

23

ฉันไม่ชอบและจริง ๆ แล้วจะทิ้งวลีเบื้องต้นทั้งหมดและเพียงไปที่จุด ฉันยังพยายามหลีกเลี่ยงเพียงแค่พูดว่า "นี่" เพราะมันไม่มีทางที่จะบอกได้ว่าความคิดเห็นนั้นซิงค์กับรหัสหรือไม่ กล่าวอีกนัยหนึ่งแทน:

// The reason this was done is to prevent null pointer exceptions later on.

ฉันจะพูดว่า:

// Frobnicate the widget first so foo can never be null.

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


4

ใน C # (และในเครื่องมือเอกสารส่วนใหญ่ในภาษาอื่น) มีความแตกต่างระหว่างเอกสารและคำอธิบายในบรรทัด ความคิดเห็นส่วนตัวของฉันคือคุณควรใช้ความเห็นที่เป็นทางการและเป็นสไตล์ที่เปิดเผยในขณะที่Bobsonและคนอื่น ๆ แนะนำในเอกสารของชั้นเรียนหรือสมาชิก แต่ภายในรหัสไม่มีอะไรผิดกับการเป็นทางการน้อยกว่า ในความเป็นจริงบางครั้งความคิดเห็นที่ไม่เป็นทางการนั้นมีประสิทธิภาพมากกว่าในการอธิบายว่าทำไมบางสิ่งถึงไม่ได้รับความสนใจมากกว่าการแสดงแบบเต็มในภาษาอังกฤษแบบทางการ

นี่คือตัวอย่างที่ฉันคิดว่าแสดงให้เห็นถึงจุด

/// <summary>
/// Takes data from the remote client and stores it in the database.
/// </summary>
/// <param name="data">The data to store.</param>
public void StoreData(ComplexObject data)
{
    // Don't take candy from strangers
    ComplexObject safeData = SanitizeData(data);
    ...
}

4
บันทึก Side: ควรกลับSanitizeData SafeComplexObject;)
Jon Purdy

ฉันเห็นด้วย แต่ฉันชอบความคิดเห็นที่เป็นตัวอักษร (แทนที่จะเป็นเชิงเปรียบเทียบ) โดยเฉพาะอย่างยิ่งหากมีนักพัฒนาที่มีภูมิหลังทางภาษาต่างกัน
John B. Lambe

2

แนวคิดอีกข้อที่ควรพิจารณาคือการทดสอบหน่วยที่ออกแบบมาอย่างดีซึ่งแสดงให้เห็นว่าเหตุใดรหัสจึงทำงานในแบบที่มันเขียนแทนความคิดเห็นเชิงพรรณนา นี่เป็นข้อดีสองสามข้อในการเขียนความคิดเห็น:

  1. ความคิดเห็นจะไม่เปลี่ยนแปลงเสมอเมื่อมีการเปลี่ยนแปลงรหัสซึ่งอาจทำให้เกิดความสับสนในภายหลัง

  2. การทดสอบหน่วยทำให้ผู้ดูแลง่ายขึ้นในการเล่นกับรหัส การเรียนรู้ codebase ใหม่นั้นง่ายกว่ามากหากคุณมีหน่วยที่คุณสามารถหยุดเพื่อสังเกตการเปลี่ยนแปลง

แม้ว่าถนนสายนี้ต้องการงานมากขึ้นการทดสอบหน่วยสามารถเป็นรูปแบบที่ดีของเอกสาร


1

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

ฉันเกลียดที่จะกีดกันใครบางคนจากการแสดงความคิดเห็นรหัสของพวกเขาเพราะพวกเขากังวลเกี่ยวกับกรณีความเครียดและสรรพนามของพวกเขา


ให้ฉันอธิบาย: สำหรับความคิดเห็นที่จะกลายเป็นส่วนหนึ่งของเอกสารอย่างเป็นทางการน้ำเสียงที่เป็นทางการเหมาะสมกว่าและ "ฉัน" และ "เรา" จะหลีกเลี่ยงได้ดีที่สุด สิ่งที่ฉันมีในใจกับคำตอบนี้คือความคิดเห็นอธิบายเป็นครั้งคราวเช่นเมื่อคุณทำอะไรบางอย่างที่จะดูผิดกับคนต่อไป ในกรณีดังกล่าวที่มีเพียงคนที่ทำงานในฐานรหัสเดียวกันจะเคยเห็นมันก็บอกว่าจะทำสิ่งที่จะสื่อความหมายของคุณอย่างชัดเจนมากที่สุดแม้มันจะเป็นหรือI wrote the code this way because... what we really need here is...ในกรณีเหล่านั้นความคิดเห็นที่ชัดเจนมีความสำคัญมากกว่าสไตล์ที่เข้มงวด
John M Gant

1

เหตุผลที่ฉันใช้ "พวกเรา" แทนที่จะเป็น "ฉัน" ก็เพราะฉันเขียนบทความเชิงวิชาการจำนวนมากซึ่งบ่อยครั้งที่ "เรา" ชอบ

มันเป็นสไตล์ที่ไม่ดีแม้แต่ในเอกสารทางวิชาการเว้นแต่ว่าคุณกำลังพยายามซ่อนผู้ที่ตัดสินใจในเรื่องนั้น

สำหรับคำถามเฉพาะของคุณ: ฉันจะไม่แสดงความคิดเห็นดังกล่าวเว้นแต่ว่าจะเริ่มต้นด้วย:

// TODO: clean this up, ...

หรือหากไม่ได้อธิบายสิ่งที่สำคัญมากซึ่งอาจไม่ชัดเจนจากโค้ด ในกรณีดังกล่าวแสดงความคิดเห็นสั้นที่สุด

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