Đây chính là self-documenting code. Khi b n đ c l i các đo n code cũ, b n ạ ọ ạ ạ ạ
không c n ph i xem k t ng comment hay ph i ch y th đ bi t ý nghĩa ầ ả ỹ ừ ả ạ ử ể ế
c a đo n code đó là gì.ủ ạ
Hãy đ code có th đ c đ c nh 1 đo n văn ti ng Anh đ n thu n. Đi u ể ể ọ ượ ư ạ ế ơ ầ ề
này áp d ng cho c tên bi n, class hay function. Chúng c n đ c đ t tên ụ ả ế ầ ượ ặ
sao cho không c n gi i thích v n hi u đ c. Thay vì l i bi ng đ là “x”, ầ ả ẫ ể ượ ườ ế ể
“y”, “z”, hãy l a ch n “width” hay “distance” – nh ng t ng đ i di n cho ự ọ ữ ừ ữ ạ ệ
th gi i th c.ế ớ ự
Class và function nên chia nh và tuân theo SRP (Single Responsibility ỏ
Principle)
Các class và function nh th c s có ích l i. Tr c h t, chúng cho phép ỏ ự ự ợ ướ ế
vi c unit test đ c di n ra đ c l p. N u đo n code b n đang ph i test nh ,ệ ượ ễ ộ ậ ế ạ ạ ả ỏ
vi c tìm ngu n và s a l i b t c v n đ nào xu t hi n trong khi test ho c ệ ồ ử ỗ ấ ứ ấ ề ấ ệ ặ
khi tri n khai tr nên d dàng h n.ể ở ễ ơ
Các class và function nh cũng giúp cho vi c đ c tr nên d dàng h n. ỏ ệ ọ ở ễ ơ
Thay vì có m t kh i code kh ng l v i nhi u vòng l p và vô s các bi n, ộ ố ổ ồ ớ ề ặ ố ế
b n có th gi m kh i code đó thành m t function có th ch y nhi u ạ ể ả ố ộ ể ạ ề
function khác nh h n. Sau đó b n có th đ t tên cho các function d a trên ỏ ơ ạ ể ặ ự
ch c năng c a chúng và đó, b n đã có m t đo n code mà con ng i có th ứ ủ ạ ộ ạ ườ ể
đ c hi u đ c !ọ ể ượ
SRP mang l i cho b n nh ng l i ích t ng t . Trách nhi m đ n có nghĩa làạ ạ ữ ợ ươ ự ệ ơ
b n ch c n test m t s ít các edge case và các tr ng h p đó t ng đ i dạ ỉ ầ ộ ố ườ ợ ươ ố ễ
dàng đ debug. Thêm vào đó, vi c đ t tên cho các function sao cho sát v i ể ệ ặ ớ
th c t cũng tr nên t ng đ i d dàng. Do m i function ch có m t m c ự ế ở ươ ố ễ ỗ ỉ ộ ụ
đích s d ng duy nh t nên các function này đ c đ t tên t ng ng v i ử ụ ấ ượ ặ ươ ứ ớ
m c đích c a nó, tránh đ c vi c ph i đ t tên cho m t function mà c n ụ ủ ượ ệ ả ặ ộ ầ
gi i quy t r t nhi u v n đ khác nhau.ả ế ấ ề ấ ề
B t và x lý các exceptions, ngay c khi b n nghĩ b n không c n ph i ắ ử ả ạ ạ ầ ả
làm đi u đóề