Các nhà phát triển tranh luận về độ dài dòng code tối ưu khi Black Formatter ủng hộ 88 ký tự
Các nhà phát triển tranh luận về độ dài dòng code tối ưu khi Black Formatter ủng hộ 88 ký tự
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ôiFortran 77: 72 ký tự (lịch sử)Khoa học đằng sau giới hạn độ dài dòngNghiê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ơnMộ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ơnCâ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ànMứ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 dungTí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ụngCông cụ và động lực nhómSự 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 LengthMũ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
1 giờ trước
Ngành Bourbon Kentucky Đối Mặt Với Cơn Bão Hoàn Hảo Khi Thuế Quan, Thay Đổi Khẩu Vị và Dư Cung Khiến Thị Trường Sụp Đổ
Thực phẩm và đồ uống
1 giờ trước
Ngành Bourbon Kentucky Đối Mặt Với Cơn Bão Hoàn Hảo Khi Thuế Quan, Thay Đổi Khẩu Vị và Dư Cung Khiến Thị Trường Sụp Đổ
Tài Nguyên Xây Dựng Trình Biên Dịch Nhận Được Sự Chú Ý Khi Nhà Phát Triển Khám Phá Kỹ Thuật Chuyển Đổi Closure
1 giờ trước
Tài Nguyên Xây Dựng Trình Biên Dịch Nhận Được Sự Chú Ý Khi Nhà Phát Triển Khám Phá Kỹ Thuật Chuyển Đổi Closure
Những Người Hoài Nghi AI Im Lặng Khi Ngành Công Nghệ Chuyển Từ Bi Quan Sang Cơn Sốt Vàng
Nvidia
2 giờ trước
Những Người Hoài Nghi AI Im Lặng Khi Ngành Công Nghệ Chuyển Từ Bi Quan Sang Cơn Sốt Vàng
Kiến trúc CPU lai của Intel đối mặt với thách thức lập lịch khi FreeBSD giải quyết việc quản lý P-Core và E-Core
CPU
2 giờ trước
Kiến trúc CPU lai của Intel đối mặt với thách thức lập lịch khi FreeBSD giải quyết việc quản lý P-Core và E-Core
Cộng đồng công nghệ đặt câu hỏi về chiến lược nội dung của a16z như "cánh tay tuyên truyền" sau khi thuê biên tập viên mới
Khởi nghiệp
2 giờ trước
Cộng đồng công nghệ đặt câu hỏi về chiến lược nội dung của a16z như "cánh tay tuyên truyền" sau khi thuê biên tập viên mới
Nhiều người không cảm thấy khát khi bị mất nước, dẫn đến các vấn đề sức khỏe bất ngờ
Y tế công cộng
2 giờ trước
Nhiều người không cảm thấy khát khi bị mất nước, dẫn đến các vấn đề sức khỏe bất ngờ
Nỗi nhớ Windows XP châm ngòi cuộc tranh luận gay gắt về thời kỳ hoàng kim và sự phát triển thiết kế của Microsoft
Microsoft
2 giờ trước
Nỗi nhớ Windows XP châm ngòi cuộc tranh luận gay gắt về thời kỳ hoàng kim và sự phát triển thiết kế của Microsoft
Màn Hình E-Paper Mã Nguồn Mở Đạt Tần Số Làm Tươi 75Hz với Độ Trễ Dưới 100ms
Màn hình
2 giờ trước
Màn Hình E-Paper Mã Nguồn Mở Đạt Tần Số Làm Tươi 75Hz với Độ Trễ Dưới 100ms
Nhân viên quán cà phê Hàn Quốc mang máy tính để bàn và máy in đến Starbucks, khiến cửa hàng phải ban hành chính sách mới
Khách sạn và nhà hàng
2 giờ trước
Nhân viên quán cà phê Hàn Quốc mang máy tính để bàn và máy in đến Starbucks, khiến cửa hàng phải ban hành chính sách mới
Nghiên cứu thách thức việc đổ lỗi cho mạng xã hội về khủng hoảng thông tin của nước Mỹ
Khoa học chính trị
2 giờ trước
Nghiên cứu thách thức việc đổ lỗi cho mạng xã hội về khủng hoảng thông tin của nước Mỹ
Starbucks Korea Cấm Máy Tính Để Bàn và Máy In Khi Khách Hàng Biến Quán Cà Phê Thành Văn Phòng Hoàn Chỉnh
Khách sạn và nhà hàng
3 giờ trước
Starbucks Korea Cấm Máy Tính Để Bàn và Máy In Khi Khách Hàng Biến Quán Cà Phê Thành Văn Phòng Hoàn Chỉnh
Trump Xác Nhận Phí Doanh Thu 15% Đối Với Chip H20 Của Nvidia Khi Trung Quốc Được Cho Là Ngăn Cản Các Công Ty Địa Phương Sử Dụng Chúng
Nvidia
3 giờ trước
Trump Xác Nhận Phí Doanh Thu 15% Đối Với Chip H20 Của Nvidia Khi Trung Quốc Được Cho Là Ngăn Cản Các Công Ty Địa Phương Sử Dụng Chúng
Chi phí ẩn của AI: Hóa đơn điện tăng vọt 36% trong khi người lao động đối mặt với định kiến về năng lực và lo lắng gia tăng
3 giờ trước
Chi phí ẩn của AI: Hóa đơn điện tăng vọt 36% trong khi người lao động đối mặt với định kiến về năng lực và lo lắng gia tăng
Cuộc tranh luận về tính xác định của LLM: Tại sao khả năng tái tạo hoàn hảo vẫn khó đạt được dù đã đặt nhiệt độ bằng không
Xử lý ngôn ngữ tự nhiên
7 giờ trước
Cuộc tranh luận về tính xác định của LLM: Tại sao khả năng tái tạo hoàn hảo vẫn khó đạt được dù đã đặt nhiệt độ bằng không
Những Thay Đổi Visa H-1B Gây Ra Cuộc Tranh Luận Sôi Nổi Về Lựa Chọn Dựa Trên Lương và Việc Thay Thế Lao Động Công Nghệ
7 giờ trước
Những Thay Đổi Visa H-1B Gây Ra Cuộc Tranh Luận Sôi Nổi Về Lựa Chọn Dựa Trên Lương và Việc Thay Thế Lao Động Công Nghệ
Cuộc Tranh Luận Lớn Về CPU Cấp Cao: Tại Sao Phần Cứng Chuyên Biệt Cho Ngôn Ngữ Lập Trình Lại Thất Bại
8 giờ trước
Cuộc Tranh Luận Lớn Về CPU Cấp Cao: Tại Sao Phần Cứng Chuyên Biệt Cho Ngôn Ngữ Lập Trình Lại Thất Bại
Cơn Sốt Đầu Tư AI Cho Thấy Dấu Hiệu Bong Bóng Kinh Điển Khi Chi Tiêu Trung Tâm Dữ Liệu Vượt Tăng Trưởng Tiêu Dùng
8 giờ trước
Cơn Sốt Đầu Tư AI Cho Thấy Dấu Hiệu Bong Bóng Kinh Điển Khi Chi Tiêu Trung Tâm Dữ Liệu Vượt Tăng Trưởng Tiêu Dùng
Tail Recursion vs Loops: Cuộc Tranh Luận Lập Trình Vĩ Đại Vẫn Tiếp Tục
8 giờ trước
Tail Recursion vs Loops: Cuộc Tranh Luận Lập Trình Vĩ Đại Vẫn Tiếp Tục
Minecraft và Stardew Valley khơi mào cuộc tranh luận về tính khả thi của công ty tỷ đô chỉ một người
8 giờ trước
Minecraft và Stardew Valley khơi mào cuộc tranh luận về tính khả thi của công ty tỷ đô chỉ một người