Viết code cho người khác

NodeJS Dec 31, 2020

Trong lúc viết code, bạn đã từng suy nghĩ cảm nhận của người khác đọc đoạn code của mình như thế nào hay chưa? Hay khi đọc một đoạn code của người khác thì bạn có cảm nhận gì?
Ở các dự án, nhiều người sẽ kết hợp để cùng xây dựng mã nguồn tạo ra các chức năng của hệ thống. Do đó, việc chia sẻ mã nguồn, nhiều người đọc, chỉnh sửa những đoạn code mà bạn từng viết là điều tất yếu. Nếu như bạn viết code chỉ để cho bạn hiểu thì sẽ rất gây khó khăn cho người khác khi mantainance, sử dụng. Bạn thử nghĩ mà xem, để fix một bug mà người khác tạo ra, nếu bạn phải mất một khoảng thời gian rất dài để đọc hiểu code xem người khác đang viết gì, và thời gian ấy còn dài hơn cả thời gian để sửa code thì sao? Do đó, việc suy nghĩ khi viết mỗi dòng code là điều rất quan trọng vì bạn đang làm việc với rất nhiều người khác, hãy thể hiện sự trân trọng với sản phẩm mà mình tạo ra và tôn trọng những đồng đội đang bên cạnh mình.

I. Tiêu chí đánh giá

Tính thẩm mỹ

Hãy thử đặt bạn vào vai trò là một giáo viên khi đọc hai bài kiểm tra văn của hai học sinh. Trong đó, một bài văn viết rõ ràng, sạch sẽ, còn bài văn kia thì viết nguệch ngoạc, gạch xóa be bét. Chưa vội đọc, bàn xét về nội dung của từng bài văn, nhưng khi đầu tiên nhìn lướt qua hai bài văn, chắc hẳn bạn cũng biết mình muốn đọc bài văn nào từ đầu đến cuối.
Như bạn đã thấy, tính thẩm mỹ cũng cực kỳ quan trọng khi bạn viết code cho người khác, nó sẽ giúp người khác dễ đọc hơn. Tính thẩm mỹ liên quan đến việc bạn trình bày mã nguồn của mình, cách bạn viết các dòng code mình.

Dễ hiểu

Khi người khác đọc code của bạn thì đương nhiên mục đích là muốn hiểu được bạn đang xử lý cái gì, như thế nào. Do đó, dễ hiểu là một tiêu chí tối quan trọng khi bạn viết code, giúp cho việc đọc code của người khác dễ dàng hơn, mất ít thời gian hơn.

Khả năng tái sử dụng

Cố gắng viết code để người khác có thể dùng lại được những thành quả mà bạn đã làm.

II. Một số quy tắc tham khảo để có thể viết code tốt hơn

Tôn trọng và tuân thủ coding convention

Giả sử, khi làm việc trong một dự án, có hai người code theo coding style khác nhau, bạn là người thứ ba cần review code cho hai người này. Mỗi dòng code của họ đều khác nhau về chiều dài mỗi indent, hay cách viết block code, cách khai báo function, ... Bạn sẽ phải thay đổi liên tục cách đọc code tương ứng với mỗi block code mà mỗi người viết ra, việc này chắc hẳn sẽ khiến bạn cực kỳ khó chịu và khó khăn khi phải đọc code.
Do đó mà mỗi team đều phải đề ra một coding convention, là một tập hợp các quy tắc được định nghĩa ra để ràng buộc trong quá trình code trong toàn thể một dự án ví dụ như độ dài mỗi indent, cách khai báo một function, cách viết block if, ... Khi tuân thủ coding convention, nó sẽ giúp các thành viên cùng tạo ra một mã nguồn thống nhất, và người khác cũng có thể dễ dàng sử dụng, đọc mã nguồn mà bạn tạo ra, giúp cải thiện khả năng teamwork của các thành viên trong team.

Quy tắc đặt tên

Tên biến, tên function cần có tính gợi nhớ cao, dễ hiểu, hạn chế viết tắt.
Cách đặt tên này giúp người đọc khi nhìn vào cũng sẽ hiểu được biến bạn khai báo cần sử dụng để lưu trữ thông tin gì, hay function của bạn sẽ xử lý gì mà chưa cần phải đọc chi tiết mã nguồn.
Ví dụ : orderQuantity, orderCode, ... thay vì bạn khai báo các biến với tên a, b, c, a1, b1 thì người khác đọc vào cũng không thể hiểu được bạn đang lưu cái gì với các biến này và mục đích của bạn là để làm gì?

Sắp xếp mã nguồn theo trật tự logic rõ ràng

Nếu bạn còn nhớ, trước đây khi làm một bài văn nghị luận thì sẽ có phần mở bài, thân bài, kết luận. Ở phần thân bài sẽ bao gồm các đoạn văn, mỗi đoạn văn sẽ khai điểm một luận điểm. Bố cục bài văn sẽ giúp cho người đọc dễ hiểu, dễ nắm bắt bạn định muốn chứng minh, nêu lên ý kiến gì.
Tương tự, việc viết code của bạn cũng như vậy, để người khác hiểu được bạn đang định làm gì thì nên trình bày một cách logic, có trật tự. Hãy tách biệt phần logic, xử lý của bạn thành các công đoạn riêng biệt, mỗi khối code sẽ chỉ thực hiện một công đoạn riêng và để tách biệt nhau theo một thứ tự hợp lý.

Viết comment

Mục đích của comment là để giúp người đọc hiểu được người viết đã làm gì. Do đó, khi viết một comment, hãy cố gắng viết một comment ngắn gọn, rõ ràng, dễ hiểu. Comment hỗ trợ người đọc hiểu được bạn đã làm gì, nhưng điều này không có nghĩa là bạn được quyền comment theo sở thích của mình. Khi viết ra một comment thì bạn phải cân nhắc các câu hỏi: comment cái gì? tại sao phải comment?
Hãy thử tưởng tượng, bạn viết 5 dòng code nhưng bạn cũng viết kèm theo thêm 5 comment thì sẽ nhìn rất rối mắt, khó chịu, rõ ràng là nó không đảm bảo về tính thẩm mỹ. Vì vậy, tránh comment những thứ mang tính hiển nhiên, hay comment ở những dòng code mà người khác đọc code thì cũng hiểu được luôn bạn đang làm gì rồi.
Các bạn code JS có thể tham khảo quy chuẩn viết comment ở đây.

Viết gọn mã nguồn

Thử tưởng tượng bạn phải đọc một function 1000 dòng, bạn có chắc là bộ não có thể nạp được một cách liên tục ý nghĩa của 1000 dòng code này? Việc này, cũng giống như bạn cần xử lý một tác vụ trên RAM của máy tính vậy, cùng một tác vụ, nếu bạn xử lý cùng một lúc dữ liệu có kích thước rất lớn thì sẽ lâu hơn là chia nhỏ dữ liệu đó để xử lý phân mảnh. Hãy thử đổi 1000 dòng code của bạn thành 50 dòng xem, bằng việc tổng hợp, tách chuỗi xử lý thành các function nhỏ hơn. Việc thể hiện lại 1000 dòng code của bạn thành 50 dòng code bằng các function nhỏ hơn sẽ giúp cho người đọc dễ dàng hiểu được flow xử lý của bạn, nó cũng giống như việc đọc một cuốn sách từ mục lục rồi đến chi tiết các chương.
Hay một ví dụ đơn giản hơn là với một function bạn cần rất nhiều parameter truyền vào, việc khai báo qúa nhiều parameter sẽ có thể gây khó khăn cho người sử dụng khi phải nhớ thứ tự của chúng. Thay vì vậy, hãy đóng gói chúng vào một hoặc một số objects, giúp người sử dụng dễ dàng hơn.

Viết dài không chứng tỏ bạn là người thông minh

Dry (don't repeat yourself)

Không lặp lại code của chính mình: việc viết một function không có tính tổng quát hóa sẽ gây khó khăn cho người khác khi sử dụng hay khi sử dụng người khác buộc phải copy paste mã nguồn của bạn đề chỉnh sửa và sử dụng. Rõ ràng là bạn đang viết một mã nguồn không có khả năng tái sử dụng. Việc này sẽ tạo nên sự cồng kềnh, phức tạp của mã nguồn hệ thống. Hãy cố gắng khái quát hóa các tác vụ của bạn để người khác có thể dễ dàng tái sử dụng, giúp thành quả của mình có thể được sử dụng ở nhiều nơi nhé.

III. Tổng kết

Khi lập trình, hãy cân nhắc khi viết ra mỗi dòng code, và đặc biệt là phải tuân thủ các quy tắc chung mà team ra, hãy tạo ra những dòng code tốt cho cả người khác nữa nhé 👌

Bài viết chỉ mang tính tham khảo, giới thiệu, dựa trên kinh nghiệm cá nhân trong quá trình làm việc của tác giả, nếu mọi người tìm hiểu chi tiết hơn sẽ có những phân tích kỹ hơn về các tips mà mình đã nêu ra cũng như một vài các quy tắc khác.

Tags

Great! You've successfully subscribed.
Great! Next, complete checkout for full access.
Welcome back! You've successfully signed in.
Success! Your account is fully activated, you now have access to all content.