Làm thế nào để tuân theo giới hạn 80 ký tự thực hành tốt nhất trong khi viết mã nguồn?


15

Vì vậy, như bạn biết có một thực hành tốt nhất nói

Giới hạn một hàng mã nguồn trong 80 ký tự.

Dưới đây là 2 liên kết:

Tại sao 80 ký tự là giới hạn 'tiêu chuẩn' cho chiều rộng mã?

Giới hạn 80 ký tự có còn phù hợp trong thời gian của màn hình rộng không?

Và tôi chắc chắn rằng bạn có thể tốt hơn nếu bạn tìm kiếm thực hành tốt nhất này.

Nhưng tôi thấy điều này vô cùng khó khăn, đây là một ví dụ mẫu:

public class MyClass {

    public void myMethod() {

        final Map<String, List<MyInterfaceHere>> myReference

Vì vậy, bạn thụt lề từng lớp và từng phương thức và từng câu lệnh.

Và tôi đã ở cột 60 vào cuối 'e' cuối cùng tôi có trong 'myReference'.

Tôi còn 20 khoảng trống để thực sự gọi hàm tạo và gán đối tượng cho tham chiếu mà tôi có.

Tôi có nghĩa là điều này thực sự nhìn tốt hơn:

public class MyClass {

    public void myMethod() {

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

Thực hành tốt nhất ở đây là gì?


6
Chúng tôi làm cho nó 140. 80 có thể đã tốt trong thời của màn hình nhỏ hơn và máy in nhỏ hơn
tgkprog

7
cách tốt nhất trừ khi bạn sử dụng các phiên bản End-Of-Life như 5/6 sẽ có thể final Map<String, List<MyInterfaceHere>> myReference = new HashMap<>();(80 ký tự có vết lõm như trong ví dụ của bạn)
gnat

4
Một thực hành tốt nhất là không sử dụng một cách mù quáng các thực tiễn tốt nhất từ ​​hai mươi năm trước. Quay lại khi độ phân giải 17 "CRT có độ phân giải 1280x1024, giới hạn ký tự thấp hơn có ý nghĩa, nhưng không phải hôm nay.
TMN

2
Lưu ý rằng một lợi ích của việc sử dụng các cột văn bản hẹp thay vì nằm dài trên tất cả không gian có sẵn trong màn hình của bạn, là khả năng dễ dàng xem nhiều đoạn mã cạnh nhau. 80 chars * 7 pixels/char = 560 pixels per file. Điều này cho phép hai tệp (1120 px) vừa vặn thoải mái trên màn hình rộng 1280 px hoặc ba (1680 px) trên màn hình 1920 px, trong cả hai trường hợp để lại một số không gian thừa cho số dòng, thanh cuộn, sigils và các thành phần UI khác . Hoặc thậm chí dòng đôi khi hơi dài hơn.
8bittree

3
@ 8bittree Tôi có thể xem mã cạnh nhau - trên hai màn hình. Phát triển trên một màn hình duy nhất giống như lái một chiếc xe chỉ có một bánh xe.

Câu trả lời:


18

Cách thực hành tốt nhất nên là "giới hạn độ dài của một dòng để bạn, tất cả đồng nghiệp và tất cả các công cụ mà bạn đang sử dụng đều hài lòng với nó", cộng với một số ý nghĩa thông thường. 80 ký tự dường như rất thấp và có xu hướng giảm khả năng đọc. Tôi đã từng bị lừa hoàn toàn bởi một dòng như thế này:

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

trong đó cuộc gọi chức năng không hiển thị trên màn hình (không hiển thị trên màn hình của bất kỳ đồng nghiệp nào) mà không có dấu hiệu.

Tôi đặt trình chỉnh sửa của mình để hiển thị lề 100 cột, cộng với việc viết lại mã trên màn hình để mọi thứ luôn hiển thị trong khi chỉnh sửa và các dòng quá dài có xu hướng được chia thủ công thành hai hoặc đôi khi nhiều dòng hơn. Xin cầu nguyện rằng các định dạng trình soạn thảo của bạn sẽ phân chia các câu lệnh độc đáo nếu nó tự động định dạng. Sử dụng một kiểu mã hóa không dẫn đến các câu lệnh lồng nhau sâu sắc. (Một số người tạo ra một tổ gồm hai mươi câu lệnh if theo sau là một đuôi của hai mươi câu khác dẫn đến thụt sâu 200 ký tự và không ai có thể tìm ra cái nào khác thuộc về cái nào nếu).

Trong trường hợp cụ thể của bạn, Swift đã phát minh ra một cách để tránh điều này: Biến "let" (giống như "cuối cùng" trong các ngôn ngữ khác) phải được gán một giá trị chính xác một lần trước khi được sử dụng, nhưng không nhất thiết phải trong khai báo , vì vậy bạn có thể chia dòng rắc rối của mình thành hai tuyên bố độc lập.

Tái bút Tôi đã gặp các dòng, trong mã thực sự do con người viết, có hơn 400 ký tự. Nói cách khác, bạn phải cuộn nhiều năm để đọc phần còn lại của dòng, ngay cả trên màn hình 24 inch. Tôi không thích thú :-(


10
Có vẻ như /* Very long comment to the end of the line */ realCode ();phải phá vỡ một số quy tắc phong cách khác.
Robert Harvey

3
/* Very long comment to the end of the line */ realCode ();là một lý do tại sao các IDE có các trình định dạng mã tự động đặt nhận xét và mã trên các dòng riêng biệt.

2
Nó đến từ cùng một nguồn đã viết một cách bỉ ổi "if (condition) \ n \ tgoto exit; \ n \ tgoto exit;". Chỉ vài năm trước.
gnasher729

Tôi thấy rằng việc thiết lập độ dài dòng tối đa thành 80 ký tự buộc tôi phải suy nghĩ về các chức năng và các lớp và OO, thay vì viết một dòng văn bản dài để làm mọi thứ trong một lần chụp. Nó làm cho tôi viết các chương trình mà người khác có thể dễ dàng sẵn sàng. Thứ hai, phần lớn các chương trình (Theo kinh nghiệm của tôi) tôi đã thấy trong SV hoạt động trên máy tính xách tay của họ và không có màn hình lớn hiển thị cho họ mọi lúc. Vì vậy, viết trong giới hạn 80 ký tự giúp mọi người. Thứ ba, bạn có thể chia màn hình màn hình lớn của bạn thành nhiều bảng và xem mã đồng thời.
alpha_989

3

Vâng, nó trông tốt hơn. Đó là lý do tại sao "Đừng sử dụng các dòng quá dài!" châm ngôn là rất mạnh

Đối với thực tiễn tốt nhất, tôi không bao giờ, không bao giờ sử dụng các biểu thức xây dựng dài khủng khiếp này. Tôi sẽ luôn luôn sử dụng

public class MyClass {

    public void myMethod() {

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

đối với một số xác định phù hợp, giá trị nhập tĩnh của newMap(). Tôi coi đó là một khiếm khuyết nghiêm trọng trong Java rằng nó không có phiên bản dựng sẵn.


1

Mục tiêu không phải là "giữ các dòng đến 80 ký tự". Mục tiêu là "làm cho mã của bạn dễ đọc và dễ hiểu". Giới hạn 80 ký tự nhân tạo giúp dễ đọc, nhưng đó không phải là quy tắc khó và nhanh trừ khi nhóm của bạn quyết định.

Bạn đã yêu cầu thực hành tốt nhất và thực tiễn tốt nhất là "tập trung vào việc làm cho mã dễ đọc nhất có thể". Nếu điều đó đòi hỏi nhiều hơn 80 ký tự, vì vậy hãy là nó.


1

Đừng sợ nhấn phím Return. Hầu hết các ngôn ngữ hiện đại (bao gồm Java như trong ví dụ của bạn) khá hài lòng với các câu lệnh chạy trên một số dòng.

Chỉ cần suy nghĩ một chút về nơi bạn phá vỡ các dòng, và bạn có thể nhận được một cái gì đó phù hợp với giới hạn 80 cột và vẫn hoàn toàn có thể đọc được. Các quy ước mã hóa Java chính thức thậm chí chỉ định các vị trí ưa thích để ngắt dòng.

Thực hiện đúng, một dòng chia nhỏ gọn gàng dễ đọc hơn nhiều so với một dòng biến mất bên cạnh màn hình.


1

Nếu bạn thi hành độ dài / chiều rộng của mã, hãy sử dụng một công cụ.

  • Chia sẻ lại
  • Hỗ trợ trực quan
  • Vân vân.

Các nhà phát triển quyết định độ dài hợp lý là gì (80, 120, 200, v.v.), đặt tùy chọn đó trong công cụ.

Sau đó, chỉ cần viết mã như bạn thường làm mà không liên quan đến độ rộng hay dài của dòng. Khi nó hoạt động và hoàn tất, nhấp chuột phải và chọn Clean Up Code hoặc tùy chọn tương tự. Công cụ sẽ định dạng mã như bạn đã nói và chia nhỏ các dòng dài như đã chỉ ra.

Vô tư và dễ dàng và mọi tệp nguồn sẽ được định dạng theo cùng một cách.


0

Giới hạn 80 char có thể là một chút quá ngắn những ngày này, nhưng nó giúp. Tôi đồng ý với tất cả những ý kiến ​​rằng mã cũng nên được định dạng tốt. ví dụ mã

/ * Nhận xét rất dài đến cuối dòng * / realCode ();

có thể trong vòng 80 chr nhưng tạo ra sự nhầm lẫn vì các nhận xét và tùy chọn mã nằm trên cùng một dòng.

Để tuân thủ giới hạn 80 chr hay không là lựa chọn cá nhân, nhưng nếu mọi thứ có thể nhìn thấy trong một lần chụp, nó sẽ luôn mang lại cái nhìn thoải mái và cảm giác cho các lập trình viên và những người đánh giá khác.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.