วิธีปฏิบัติที่ดีที่สุดในการ จำกัด 80 ตัวอักษรในขณะที่เขียนซอร์สโค้ดได้อย่างไร


15

ดังนั้นอย่างที่คุณรู้ว่ามีวิธีปฏิบัติที่ดีที่สุดว่า

จำกัด แถวของซอร์สโค้ดไม่เกิน 80 อักขระ

นี่คือ 2 ลิงค์:

เพราะเหตุใด 80 อักขระจึงถูกจำกัดความกว้างของมาตรฐานสำหรับความกว้างของรหัส

ขีด จำกัด 80 อักขระยังคงมีความเกี่ยวข้องในช่วงเวลาของจอภาพแบบจอกว้างหรือไม่

และฉันมั่นใจว่าคุณสามารถทำได้ดีขึ้นหากคุณค้นหาแนวปฏิบัติที่ดีที่สุดนี้

แต่ฉันพบว่ามันยากมากนี่คือตัวอย่าง:

public class MyClass {

    public void myMethod() {

        final Map<String, List<MyInterfaceHere>> myReference

ดังนั้นคุณเยื้องแต่ละชั้นเรียนและแต่ละวิธีและแต่ละคำสั่ง

และฉันอยู่ที่คอลัมน์ 60 ในตอนท้ายของ 'e' สุดท้ายที่ฉันมีใน 'myReference'

ฉันมีช่องว่างเหลืออีก 20 ช่องเรียกว่าตัวสร้างและกำหนดวัตถุให้กับการอ้างอิงที่ฉันมี

ฉันหมายความว่านี่ดูดีกว่าจริงๆ:

public class MyClass {

    public void myMethod() {

        final Map<String, List<MyInterfaceHere>> myReference 
                = new HashMap<String, List<MyInterfaceHere>>(); 

การปฏิบัติที่ดีที่สุดที่นี่คืออะไร?


6
เราทำให้มัน 140. 80 อาจจะดีในวันที่หน้าจอขนาดเล็กและเครื่องพิมพ์ขนาดเล็ก
tgkprog

7
วิธีปฏิบัติที่ดีที่สุดยกเว้นว่าคุณอยู่ในเวอร์ชั่น End-Of-Life เช่น 5/6น่าจะเป็นfinal Map<String, List<MyInterfaceHere>> myReference = new HashMap<>();(80 ตัวอักษรที่มีการเยื้องเหมือนในตัวอย่างของคุณ)
gnat

4
meta-best-practice ไม่ใช่การใช้แนวทางปฏิบัติที่ดีที่สุดจากเมื่อยี่สิบปีก่อน ย้อนกลับไปเมื่อ CRT ขนาด 17 นิ้วมีความละเอียด 1280x1024 ขีด จำกัด อักขระที่น้อยลงทำให้เข้าใจได้ แต่ไม่ใช่ในวันนี้
TMN

2
โปรดทราบว่าข้อดีอย่างหนึ่งของการใช้คอลัมน์ข้อความแคบแทนที่จะแผ่กิ่งก้านสาขาไปทั่วพื้นที่ที่มีอยู่ทั้งหมดในจอแสดงผลของคุณคือความสามารถในการดูหลาย ๆ ด้านของโค้ดได้อย่างง่ายดาย 80 chars * 7 pixels/char = 560 pixels per file. สิ่งนี้อนุญาตให้สองไฟล์ (1120 px) พอดีกับหน้าจอกว้าง 1280 px หรือสาม (1680 px) บนหน้าจอ 1920 px ในทั้งสองกรณีทำให้มีพื้นที่ว่างเหลือพอสำหรับหมายเลขบรรทัดแถบเลื่อน sigils และองค์ประกอบ UI อื่น ๆ . หรือแม้กระทั่งเส้นที่ยาวขึ้นเล็กน้อยเป็นครั้งคราว
8bittree

3
@ 8bittree ฉันสามารถดูโค้ดข้าง - บนจอภาพสองจอ การพัฒนาบนหน้าจอเดียวเปรียบเสมือนการขับรถยนต์ที่มีเพียงล้อเดียว

คำตอบ:


18

แนวทางปฏิบัติที่ดีที่สุดคือ "จำกัด ความยาวของบรรทัดเพื่อให้คุณเพื่อนร่วมงานของคุณและเครื่องมือทั้งหมดที่คุณใช้มีความสุขกับมัน" รวมทั้งความรู้สึกบางอย่าง ดูเหมือนว่า 80 ตัวอักษรจะต่ำมากและมีแนวโน้มที่จะลดความสามารถในการอ่าน ฉันเคยถูกหลอกโดยสายเช่นนี้:

/* Very long comment to the end of the line */ realCode ();

ที่ไม่สามารถมองเห็นการเรียกใช้ฟังก์ชันบนหน้าจอ (ไม่ปรากฏบนหน้าจอของเพื่อนร่วมงาน) โดยไม่มีข้อบ่งชี้

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

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

PS ฉันพบบรรทัดในโค้ดที่เขียนด้วยมนุษย์จริงซึ่งมีอักขระเกิน 400 ตัว กล่าวอีกนัยหนึ่งคุณต้องเลื่อนเพื่อให้อายุอ่านส่วนที่เหลือของบรรทัดแม้กระทั่งบนหน้าจอ 24 นิ้ว ฉันไม่สนุก :-(


10
ดูเหมือนว่า/* Very long comment to the end of the line */ realCode ();ควรละเมิดกฎสไตล์อื่น ๆ อยู่แล้ว
Robert Harvey

3
/* Very long comment to the end of the line */ realCode ();เป็นหนึ่งในเหตุผลที่ IDEs มีตัวจัดรูปแบบโค้ดที่ใส่ความคิดเห็นและโค้ดในบรรทัดแยกต่างหากโดยอัตโนมัติ

2
มันมาจากแหล่งเดียวกันที่เขียนชื่อเสีย "ถ้า (เงื่อนไข) \ n \ tgoto ออก; \ n \ tgoto ออก;" เพียงไม่กี่ปีก่อนหน้านี้
gnasher729

ฉันพบว่าการตั้งค่าความยาวบรรทัดสูงสุดเป็น 80 ตัวอักษรบังคับให้ฉันคิดในแง่ของฟังก์ชั่นและคลาสและ OO แทนที่จะเขียนข้อความยาว ๆ เพื่อทำทุกอย่างในนัดเดียว มันทำให้ฉันเขียนโปรแกรมที่คนอื่นสามารถทำได้อย่างง่ายดาย ประการที่สองส่วนใหญ่ของโปรแกรม (จากประสบการณ์ของฉัน) ฉันได้เห็นใน SV ทำงานบนแล็ปท็อปของพวกเขาและไม่ได้มีหน้าจอขนาดใหญ่แสดงให้พวกเขาตลอดเวลา ดังนั้นการเขียนในขีด จำกัด บรรทัด 80 ตัวอักษรจึงช่วยให้ทุกคน ประการที่สามคุณสามารถแยกหน้าจอมอนิเตอร์ขนาดใหญ่เป็นหลายบานหน้าต่างและดูรหัสพร้อมกัน
alpha_989

3

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

สำหรับแนวปฏิบัติที่ดีที่สุดฉันไม่เคยใช้คำที่สร้างขึ้นมานานอย่างน่ากลัวเหล่านี้ ฉันมักจะใช้

public class MyClass {

    public void myMethod() {

        final Map<String, List<MyInterfaceHere>> yReference = newMap();

newMap()สำหรับบางคนที่กำหนดไว้อย่างเหมาะสมคุ้มค่านำเข้าแบบคงที่ของ ฉันคิดว่ามันเป็นข้อบกพร่องร้ายแรงใน Java ที่ไม่มีในตัวรุ่น


1

เป้าหมายไม่ได้ "เก็บสายอักขระไว้ที่ 80 ตัว" เป้าหมายคือ "ทำให้รหัสของคุณง่ายต่อการอ่านและทำความเข้าใจ" การ จำกัด จำนวนอักขระ 80 ตัวช่วยในการอ่าน แต่ไม่ใช่กฎที่ยากและรวดเร็วเว้นแต่ทีมของคุณจะตัดสินใจ

คุณขอแนวปฏิบัติที่ดีที่สุดและแนวปฏิบัติที่ดีที่สุดคือ "มุ่งเน้นที่การสร้างรหัสให้อ่านได้มากที่สุด" หากต้องมีมากกว่า 80 ตัวอักษรไม่ว่าจะเป็น


1

อย่ากลัวที่จะกดปุ่ม Return ภาษาสมัยใหม่ส่วนใหญ่ (รวมถึง Java เช่นในตัวอย่างของคุณ) ค่อนข้างพอใจกับข้อความที่ใช้ข้ามหลายบรรทัด

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

ถูกต้องแล้วเส้นที่ขาดหายอย่างประณีตสามารถอ่านได้มากกว่าหนึ่งบรรทัดที่หายไปจากด้านข้างของหน้าจอ


1

หากคุณบังคับใช้ความยาว / ความกว้างของรหัสให้ใช้เครื่องมือ

  • Resharper
  • Visual Assist
  • เป็นต้น

นักพัฒนาตัดสินใจว่าความยาวที่เหมาะสมคืออะไร (80, 120, 200, ฯลฯ ) ตั้งค่าตัวเลือกนั้นในเครื่องมือ

หลังจากนั้นให้เขียนโค้ดตามปกติโดยไม่คำนึงถึงความกว้างหรือความยาวของบรรทัด เมื่อมันทำงานและเสร็จสิ้นให้คลิกขวาและเลือกClean Up Codeหรือตัวเลือกที่คล้ายกัน เครื่องมือจะจัดรูปแบบรหัสตามที่คุณบอกและแยกบรรทัดยาวตามที่ระบุ

ไม่ต้องสนใจและใช้งานง่ายและไฟล์ต้นฉบับทุกไฟล์จะถูกจัดรูปแบบในลักษณะเดียวกัน


0

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

/ * ความคิดเห็นยาวมากถึงท้ายบรรทัด * / realCode ();

อาจอยู่ในช่วง 80 chr แต่สร้างความสับสนเนื่องจากข้อสังเกตและตัวเลือกรหัสอยู่ในบรรทัดเดียวกัน

การยึดติดกับขีด จำกัด 80 chr หรือไม่เป็นตัวเลือกของแต่ละบุคคล แต่ถ้าสิ่งต่าง ๆ สามารถมองเห็นได้ในนัดเดียวมันจะให้มุมมองที่สะดวกสบาย

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