Cuộc tranh luận lâu đời trong lập trình về độ dài tối đa của dòng code đã nổi lên trở lại trong cộng đồng các nhà phát triển, được khơi mào bởi các thảo luận xung quanh việc lựa chọn 88 ký tự làm giới hạn mặc định của trình định dạng Python Black . Câu hỏi tưởng chừng đơn giản này đã chia rẽ các lập trình viên trong nhiều thập kỷ, với các진영 hình thành xung quanh các giới hạn khác nhau từ 80 đến 120 ký tự mỗi dòng.
Cuộc thảo luận vượt xa khỏi sở thích cá nhân. Trong khi một số nhà phát triển ủng hộ giới hạn truyền thống 80 ký tự được thừa hưởng từ các ràng buộc của terminal, những người khác lại ủng hộ các dòng dài hơn để phù hợp với màn hình rộng hiện đại và các ngôn ngữ lập trình dài dòng.
Giới hạn độ dài dòng phổ biến theo công cụ/tiêu chuẩn:
- Black (Python): 88 ký tự (mặc định)
- Terminal truyền thống: 80 ký tự
- TeX/LaTeX: 66 ký tự (tối ưu cho in ấn)
- Sở thích cộng đồng: khoảng 80-120 ký tự
- Tối ưu dựa trên nghiên cứu: 45-95 ký tự cho văn xuôi
- Fortran 77: 72 ký tự (lịch sử)
Khoa học đằng sau giới hạn độ dài dòng
Nghiên cứu về các mẫu đọc của con người cho thấy tại sao độ dài dòng lại quan trọng đến vậy. Khi mọi người đọc văn bản, mắt họ không di chuyển mượt mà qua các dòng như con trỏ. Thay vào đó, chúng thực hiện các chuyển động nhảy nhanh gọi là saccades giữa các điểm cố định. Để người đọc có thể nhảy chính xác từ cuối dòng này sang đầu dòng tiếp theo, phần đầu của dòng tiếp theo phải hiển thị trong tầm nhìn ngoại vi của họ.
Ràng buộc sinh lý này giải thích tại sao báo chí sử dụng các cột hẹp khoảng 30 ký tự, và tại sao hầu hết các trang web giới hạn độ rộng văn bản ngay cả trên màn hình siêu rộng. Những nguyên tắc tương tự áp dụng cho khả năng đọc code, mặc dù lập trình đặt ra những thách thức độc đáo với việc thụt lề và cú pháp.
Saccades: Các chuyển động mắt nhanh xảy ra khi chuyển tiêu điểm từ điểm này sang điểm khác trong khi đọc.
Nhiều trình soạn thảo so với dòng dài hơn
Một hiểu biết quan trọng từ cộng đồng nhà phát triển tập trung vào cách các lập trình viên thực sự sử dụng không gian màn hình của họ. Nhiều nhà phát triển có kinh nghiệm thích giới hạn dòng ngắn hơn không phải vì họ có màn hình nhỏ, mà vì họ chia màn hình thành nhiều panel code.
Sự khác biệt giữa tôi (người ủng hộ 80 cột) và đối thủ của tôi (ai đó ngu ngốc hơn nhiều) là họ đang sử dụng 1 buffer lớn đẹp, còn tôi có 6-8 cột buffer cạnh nhau.
Cách tiếp cận này tối đa hóa việc sử dụng màn hình rộng bằng cách hiển thị nhiều file đồng thời thay vì kéo giãn các file đơn lẻ trên toàn bộ chiều rộng. Các nhà phát triển báo cáo rằng phương pháp này giúp duy trì ngữ cảnh khi làm việc trên các dự án phức tạp, vì các file code liên quan có thể vẫn hiển thị mà không cần chuyển tab liên tục.
![]() |
---|
Thiết kế hình học này thể hiện cách tiếp cận có cấu trúc mà các nhà phát triển áp dụng khi quản lý nhiều bộ đệm mã để có bối cảnh tốt hơn |
Cân nhắc theo ngôn ngữ cụ thể
Độ dài dòng tối ưu thay đổi đáng kể tùy thuộc vào ngôn ngữ lập trình được sử dụng. Các nhà phát triển JavaScript và Python thường thấy 80 ký tự là đủ, trong khi những người làm việc với TypeScript hoặc Java gặp khó khăn với tính chất dài dòng của những ngôn ngữ này. Chú thích kiểu, tên class dài và chữ ký method mở rộng có thể khiến giới hạn ngắn hơn cảm thấy hạn chế.
Các ngôn ngữ hướng đối tượng hiện đại làm tăng vấn đề này với các mức thụt lề sâu. Một method class Python điển hình có thể bắt đầu với 8-12 khoảng trắng thụt lề trước bất kỳ code thực tế nào, làm giảm đáng kể chiều rộng dòng có thể sử dụng.
Các yếu tố ảnh hưởng đến việc lựa chọn độ dài dòng:
- Thiết lập màn hình: Màn hình rộng đơn lẻ so với nhiều khung chia nhỏ
- Ngôn ngữ lập trình: Ngôn ngữ dài dòng ( Java , TypeScript ) so với ngôn ngữ súc tích ( Python , JavaScript )
- Quy trình làm việc của nhóm: Người dùng laptop so với thiết lập máy tính để bàn
- Mức độ thụt lề: Mã hướng đối tượng thường sử dụng 8-12 khoảng trắng trước nội dung
- Tích hợp công cụ: Xem diff, xung đột merge, giao diện đánh giá mã
- Cấu hình IDE: Các panel thanh bên và cửa sổ công cụ làm giảm chiều rộng khả dụng
Công cụ và động lực nhóm
Sự gia tăng của các trình định dạng code có quan điểm như Black , gofmt và Prettier đã chuyển cuộc trò chuyện từ sở thích cá nhân sang tiêu chuẩn hóa nhóm. Những công cụ này loại bỏ việc tranh cãi vặt vãnh bằng cách đưa ra quyết định định dạng tự động, mặc dù mỗi công cụ xử lý độ dài dòng khác nhau.
Một số trình định dạng tránh hoàn toàn việc ngắt dòng, dẫn đến kết quả không nhất quán. Những công cụ khác sử dụng thuật toán tinh vi để xác định điểm ngắt tối ưu, nhưng có thể không hỗ trợ giới hạn ký tự cứng. Điều này tạo ra căng thẳng giữa định dạng tự động và việc thực thi độ dài dòng thủ công.
Giải pháp trung dung thực tế
Bất chấp những cuộc tranh luận gay gắt, hầu hết các nhà phát triển dường như hội tụ ở giới hạn từ 88 đến 120 ký tự. Phạm vi này cung cấp đủ không gian cho các cấu trúc lập trình hiện đại trong khi duy trì khả năng đọc và tương thích với quy trình chỉnh sửa cạnh nhau.
Lựa chọn thường phụ thuộc vào thành phần nhóm và công cụ. Các nhóm sử dụng laptop hoặc màn hình nhỏ hơn có xu hướng về giới hạn ngắn hơn, trong khi những nhóm có màn hình lớn và ít lộn xộn IDE có thể chứa các dòng dài hơn. Các cân nhắc về kiểm soát phiên bản cũng đóng vai trò, vì các dòng ngắn hơn thường tạo ra diff sạch hơn và giải quyết xung đột merge dễ dàng hơn.
Thay vì tìm kiếm một câu trả lời phổ quát, các nhóm phát triển thành công tập trung vào tính nhất quán trong các dự án của họ và chọn giới hạn hỗ trợ quy trình làm việc cụ thể và thiết lập hiển thị của họ.
Tham khảo: The Best Line Length
![]() |
---|
Mũi tên cách điệu tượng trưng cho sự tiến bộ hướng tới việc đạt được sự đồng thuận về giới hạn độ dài dòng trong lập trình |