0
0
Lập trình
Thaycacac
Thaycacac thaycacac

Tại sao 'mã code hay ho' lại có thể là 'mã code tồi tệ nhất' bạn từng viết?

Đăng vào 3 tuần trước

• 3 phút đọc

Giới thiệu

Khi còn là sinh viên, LeetCode gần như đã làm tôi rối não với những giải pháp ngắn gọn khó hiểu của các coder hàng đầu. Tôi từng tự hỏi: "Tại sao tôi không thể giỏi như họ?"

Điều này được gọi là "code golfing" - một trò chơi thú vị, nhưng cần hiểu rằng nó không phải là ví dụ về mã code tốt. Trong ngành công nghệ thông tin, đó có thể coi là thứ tồi tệ nhất mà một lập trình viên có thể viết.

Cuối cùng, tôi nhận ra rằng viết mã code rõ ràng là khó khăn nhất, và khi nhìn lại, mã của những kỹ sư phần mềm thắng lợi dễ đoán và dễ hiểu hơn rất nhiều so với mã của những người mới vào nghề.

Mã code rõ ràng: Ưu và nhược điểm

Thực tế về sức mạnh của mã rõ ràng, dù tốt hay xấu, đã được thể hiện rõ ràng sau một sự cố tại công ty. Tôi đã viết một module xử lý dữ liệu trong ngôn ngữ C++, một ngôn ngữ có tính rườm rà, không dễ đọc như các ngôn ngữ khác.

Ban đầu, tôi chỉ sử dụng hai file (.h/.cpp) cho toàn bộ code và kết quả là một "mớ mì spaghetti" khổng lồ, khó hiểu. Mặc dù nó hoạt động hoàn hảo, sự thật không thể qua mặt được khâu review code.

Sau đó, tôi đã phân chia mã code thành hơn 30 diff, mỗi diff mang tính tổ chức rõ ràng hơn với cách đóng gói sạch sẽ, và kèm theo coverage unit test cho từng trường hợp. Các hàm được chia tách hợp lý, mang lại nhiệm vụ cho việc refactor và viết mã sạch dễ hơn.

Kết quả thu được là một module xử lý dữ liệu hoàn chỉnh với mã code dễ đọc và rõ ràng. Tuy nhiên, khi thảo luận với sếp, tôi nhận được phản hồi:

"Dù tôi hiểu module này phức tạp, nhưng từ góc độ hiệu suất, mã này trông khá tầm thường. Nó có vẻ quá đơn giản."

Tôi rất sốc. Điều này đã dẫn đến việc tôi cần viết một tài liệu giải thích chi tiết về cách thực hiện module đó để chứng minh rằng nó thực sự phức tạp hơn vẻ ngoài.

Từ đây, tôi nhận ra lý do tại sao Big Tech lại có nhiều tài liệu đến vậy; và cũng hiểu rằng mã code tốt chính là mã code rõ ràng và dễ đọc.

Tương tự với câu nói yêu thích: "debug mã code khó gấp đôi việc viết mã code." Qua đó, nhiều lập trình viên chọn bỏ qua mã xấu và tự viết lại hơn là cố gắng gỡ rối nó.

Các suy nghĩ về mã code rõ ràng

Cách duy nhất để tôi cải thiện kỹ năng viết mã rõ ràng là thường xuyên viết mã, chăm chỉ và tuân theo quy tắc mẫu rõ ràng. Thực tế, các lập trình viên có kinh nghiệm hơn đã chỉ cho tôi những lỗi mã nhỏ mà tôi không chú ý lúc đầu.

Hành trình phát triển của tôi trong ngành công nghệ thông tin đã thay đổi từ việc chỉ nghĩ về mã như một công cụ đến việc nhận ra tầm quan trọng của việc viết mã rõ ràng và dễ đọc.

Nhiều công ty hiện nay đã sử dụng linter và trình định dạng mã, khẳng định rằng coding style thường rất quan trọng. Tôi cũng nhận thấy rằng Google có thể là nơi có hướng dẫn phong cách mã công khai nhất, và mới đây Vercel đã công bố hướng dẫn phong cách của riêng họ.

Kết luận

Nếu bạn quan tâm đến việc phát triển sự nghiệp trong vai trò kỹ sư phần mềm, tôi khuyên bạn nên tham gia khóa học "Từ kỹ sư trình độ trung bình lên kỹ sư cao cấp trong môi trường phát triển mạnh mẽ" của Jordan Cutler để có thêm kiến thức quý giá.
source: viblo

Gợi ý câu hỏi phỏng vấn
Không có dữ liệu

Không có dữ liệu

Bài viết được đề xuất
Bài viết cùng tác giả

Bình luận

Chưa có bình luận nào

Chưa có bình luận nào