Tô sáng mã nguồn theo mức độ quan tâm: Cách tiếp cận tối giản cho lập trình viên
Bài viết khám phá ý tưởng tô sáng cú pháp mã nguồn dựa trên mức độ quan trọng thay vì sử dụng quá nhiều màu sắc. Tác giả thử nghiệm loại bỏ màu sắc, chỉ dùng tông màu xám để làm nổi bật các phần quan trọng như chú thích, định nghĩa biến và luồng điều khiển, giúp lập trình viên tập trung vào ngữ nghĩa thay vì cú pháp.

Hầu hết các trình soạn thảo mã hiện nay đều sử dụng tô sáng cú pháp với hàng chục màu sắc khác nhau, nhưng liệu cách này có thực sự giúp ích cho lập trình viên? Một bài viết gần đây trên Hacker News đã đặt ra câu hỏi ngược lại: thay vì tô mọi thứ, tại sao không chỉ tô những phần thực sự quan trọng?
Thói quen tô sáng mặc định và vấn đề tiềm ẩn
Tác giả Hank Bond chia sẻ rằng anh đã dùng theme mặc định của VSCode trong nhiều năm và dần trở nên "mù" với màu sắc. Khi đọc bài viết của Nikita Prokopov về việc "mọi người đang tô sáng cú pháp sai cách", anh nhận ra một điều: nếu bạn không thể nhớ màu nào dùng cho class names hay biến, thì theme màu của bạn đang không thực sự hoạt động như một công cụ hỗ trợ.
"Nếu câu trả lời cho cả hai câu hỏi là 'không', thì theme màu của bạn không có chức năng. Nó có thể mang lại cảm giác an toàn, nhưng bạn không thể dùng nó như một công cụ."
Thử nghiệm loại bỏ màu sắc
Bond bắt đầu thử nghiệm với theme sáng (light theme) và nhận ra một vấn đề lớn: màu sắc trên nền trắng cần phải tối hơn để có độ tương phản, nhưng màu tối lại kém rực rỡ và ít tác động thị giác hơn. Điều này dẫn anh đến câu hỏi sâu hơn: Tại sao tô sáng cú pháp lại cần phải dùng màu?
Khi loại bỏ hoàn toàn màu sắc và chỉ để mã nguồn đen trắng, kết quả thật sự tệ. Mã nguồn trở nên quá phẳng, khiến mắt phải đọc từng ký tự một. Khác với văn xuôi thông thường, khi đọc code, lập trình viên thường nhảy cóc giữa các phần có liên quan với nhau.
Giải pháp: Tô sáng dựa trên mức độ quan trọng
Sau nhiều lần thử nghiệm, Bond đưa ra một hệ thống tô sáng chỉ dùng tông màu xám với các mức ưu tiên rõ ràng:
- Chú thích (Comments): được làm nổi bật nhất vì chứa mô tả cấp cao và ngữ cảnh bên ngoài – thứ mà đọc code không thể trả lời
- Định nghĩa biến và hàm: được làm nổi bật để hỗ trợ quét nhanh cấu trúc code
- Luồng điều khiển (
return,throw,yield): là điểm dừng hoặc chuyển hướng, cần dễ nhìn thấy
Ngược lại, một số phần được cố tình làm mờ đi:
- Từ khóa thông dụng như
let,const: gần như không cần nhìn lại sau khi gõ - Dấu câu: ngoặc, dấu chấm phẩy, dấu phẩy – chỉ cần đủ nhìn để tránh lỗi cú pháp
Kết quả đạt được
Với cách tiếp cận này, việc tô sáng giúp mắt "nhảy" giữa những phần quan trọng nhất khi đọc code, tập trung vào ngữ nghĩa và lướt qua các phần thuần cú pháp. Nó đủ khác biệt để mang lại giá trị thực, nhưng đủ tinh tế để không làm phân tâm.
Bond kết luận rằng việc tối ưu hóa tô sáng dựa trên mức độ quan tâm là một bài tập thú vị giúp anh hiểu rõ hơn điều mình thực sự muốn tập trung khi viết và đọc code.
"Nếu mọi thứ đều được tô sáng, thì chẳng có gì được tô sáng cả."
Điều này có ý nghĩa gì với lập trình viên Việt Nam?
Với những lập trình viên Việt Nam đang sử dụng các IDE phổ biến như VSCode, IntelliJ hay các editor trực tuyến, bài viết này gợi ý một hướng tiếp cận mới: thay vì tải các theme màu sặc sỡ, hãy tự xây dựng một theme tối giản dựa trên nhu cầu thực tế. Nhiều theme phổ biến hiện nay có 20-30 màu khác nhau, nhưng bộ não con người chỉ có thể xử lý tốt khoảng 7±2 thông tin cùng lúc. Việc cắt giảm số lượng màu không chỉ giúp code dễ đọc hơn mà còn giảm tải nhận thức khi làm việc lâu dài.
Để bắt đầu, bạn có thể thử tinh chỉnh theme hiện tại bằng cách giảm độ tương phản của các từ khóa không quan trọng và tăng độ nổi bật cho chú thích – phần thường bị bỏ quên nhưng lại là nơi bắt đầu tốt nhất khi cần hiểu một đoạn code phức tạp.