- Vẻ đẹp là gì?
- Vẻ đẹp là một giá trị mà con người cảm nhận
- Là thứ mang lại sự ngạc nhiên, mới mẻ, ổn định, thoải mái, đơn giản, v.v.
- Có thể chia thành cái gây ngạc nhiên và cái tự nhiên
- Để cảm nhận vẻ đẹp (sự khai sáng), cần có một mức kiến thức nền tảng nhất định
- Vẻ đẹp là thứ phục vụ cho sự sinh tồn. Khi nhìn thấy điều không thể hiểu được, con người cảm thấy khó chịu
- Định nghĩa về mã nguồn đẹp
- Vì mã nguồn không hoạt động một mình nên càng đẹp càng tốt
- Lý tưởng nhất là mã mà khi đọc không bị vướng ở bất kỳ chỗ nào
- Mã tự nhiên là tốt
- Bốn yếu tố tạo nên mã nguồn đẹp
- Tính xã hội, tính đáng tin cậy, tính tuyến tính và tính khai báo
- Phần mang tính xã hội và đáng tin cậy theo đuổi sự ổn định
- Phần mang tính tuyến tính và khai báo theo đuổi tính thẩm mỹ
- Mã mang tính xã hội
- Là mã cân nhắc mọi bối cảnh xung quanh
- Tuân theo tập quán, quy tắc và sứ mệnh
- Tương tự tính xã hội của ngôn ngữ
- Mã đáng tin cậy
- Là mã có thể tin tưởng và sử dụng
- Nếu không thể tin tưởng thì nó trở thành loại mã phải tự mình kiểm chứng
- Cần cân nhắc pure function, tính idempotent, side effect, v.v.
- Vì không thể hoàn toàn không có side effect, có thể thông báo qua tài liệu hoặc ngoại lệ rằng chúng tồn tại
- Mã tuyến tính
- Là mã mà khi đọc chỉ cần đọc từ trên xuống dưới một lần
- Nếu có tính tuyến tính thì về mặt khoa học thần kinh, bộ nhớ làm việc sẽ xử lý dễ hơn
- Mã khai báo
- Là mã cho biết chính xác nó làm gì
- Nên đặt tên phù hợp
- Về mặt khoa học thần kinh, bộ nhớ ngắn hạn sẽ xử lý dễ hơn
- Trong thực tế
- Mã nguồn đẹp không phải là thứ xuất hiện hoàn hảo ngay trong một lần
- Mã đẹp hoàn hảo là điều không phổ biến
- Vì vậy cần có khái niệm cải tiến dần và trau chuốt mã nguồn
- Cải tiến dần
- Là thực hiện refactoring
- Lặp lại việc kiểm tra và cải thiện để liên tục duy trì chất lượng ở mức 70~80%
- Khi nào nên kiểm tra và cải thiện?
- Khi quyền sở hữu mã nguồn trở nên mờ nhạt
- Khi tri thức về đoạn mã đã viết trở nên mơ hồ
- Khi cảm thấy có mùi hôi
- Khi cảm thấy khó chịu lúc nhìn vào mã nguồn
- Trau chuốt mã nguồn
- Là việc trang trí để mã trông đẹp hơn
- Điển hình là sử dụng test, code review, tài liệu hóa và chú thích
- Test
- Giúp mã trở nên đáng tin cậy hơn
- Bảo đảm hoạt động đúng và bản thân test cũng có thể trở thành tài liệu
- Code review
- Giúp mã trở nên đáng tin cậy hơn thông qua việc kiểm chứng
- Vì lan truyền quyền sở hữu mã nguồn nên cũng có thể tăng tính xã hội của mã
- Code review một cách vô điều kiện đôi khi có thể trở thành nút thắt cổ chai
- Tài liệu hóa
- Giúp hiểu mã tốt hơn
- Thời điểm cần tài liệu hóa là khi các nhà phát triển khác cần biết bối cảnh, thiết kế và quy tắc của đoạn mã đó
- Sẽ tốt hơn nếu dùng các công cụ như UML
- Chú thích
- Với những vùng mã phức tạp phát sinh không thể tránh khỏi, giải thích bằng chú thích sẽ tốt hơn là bằng tài liệu
- Chất lượng mã nguồn rất quan trọng, nhưng mã đẹp không nhất thiết bảo đảm thành công
- Ngược lại, đôi khi cần cân nhắc nhiều hơn đến thiết kế hoặc quy trình công việc
- Chất lượng mã nguồn không nhất thiết bảo đảm chất lượng sản phẩm
9 bình luận
kkkkkkkk
Có lẽ mã nguồn mang tính xã hội cũng sẽ quan trọng nhỉ haha
Tôi nghĩ đây là một bài viết hay, được sắp xếp rất chỉn chu. Nếu trong nhóm thường xuyên phát sinh vấn đề về chất lượng code, thì có vẻ đây sẽ là một nội dung rất phù hợp để cùng đọc rồi tập hợp lại thảo luận.
Đây là một chủ đề có thể hơi khó nhằn, nhưng đọc lại rất trôi chảy. Cảm ơn bạn!
Đúng là cải tiến dần từng bước vẫn rất quan trọng. Dù sao thì đâu thể mong no bụng ngay từ miếng đầu tiên được.
Sở thích cảm nhận vẻ đẹp thẩm mỹ trong chính đoạn code mình viết thì cứ nên dừng lại ở góc nhìn cá nhân thôi. Người làm chuyên nghiệp nhận lương mà lại tiếp cận code của công ty bằng góc nhìn nghệ thuật, rồi còn nhồi nhét tư duy kỳ quặc đó cho junior, xin đừng trở thành kiểu senior như vậy. Không thì nghỉ làm dev đi mà vẽ tranh hay gì đó, suốt ngày nghệ với chả thuật...
Bạn đã bị mắc kẹt vào từ "vẻ đẹp" rồi.
Chàng trai chỉ đọc tiêu đề
Ha, đúng là hơi làm quá thật.