Tiếp tục từ Mã sạch phần một
2.1.4 Member Prefixes
Tránh ba cái kí tự trước rồi gạch dưới để đắt tên cho các biến nhé. Nhìn rối rắm code lắm. Giải quyết vấn đề này chúng ta nên chọn một cái code convention rồi follow theo. Trên mạng cũng có nhiều convention hay được đút kết cho mỗi ngôn ngữ (search nhen 🙂 )
//BAD public class Account { private string m_username; void setUserName(string name){ m_username = name; } } //GOOD public class Account { private string userName; void setUserName(string name){ userName = name; } }
2.1.5 Hungarian Notation
Cũng thấy nhiều người code cũng thêm cái kiểu dữ liệu vào sau tên biến. Nói chung cũng nên tránh, nó khá dư thừa 🙂
//BAD String connectionString = "/...."; //GOOD String connection = "/....";
2.1.6 Class Names
Tên class không nên là động từ, nó là danh từ nhen :D. Trước cũng hay kiểu thêm er vào cho nó thành danh từ. Nói chung ko hight priority lắm 🙂
//BAD Manager, Processor, Converter //GOOD Customer, WikiPage, Account, Address
Thêm cái nữa là giả sử từ Address
. Thấy hay có cái như AccountAddress ClientAddress MACAddress
. Nó khá dư thừa.
Tốt hơn nên sử dụng luôn MAC
thay cho MACAdress
. Còn ClientAddress
hay AccountAddress
thì nên là Client.Address
thay cho Client.ClientAddress
. Tên class nó thể hiện rồi mà.
Trong trường hợp cùng một class mà có 2 property liên quan đến address như Client.HouseAddress
và Client.CompanyAddress
thì nên dùng 😀
2.1.7 Method Names
Tên của method nên bắt đầu bằng một động từ. 1 method thì có nghĩa là làm một cái gì đó. Làm thì phải động từ 😀
//GOOD getName, doSomething, saveMoney,... var name = person.getName(); person.setAdress("123 Nam, E.CoDanhRoi..."); if(person.isChecked)
2.1.8 Functions
Một hàm thì nên trong khoảng tầm 20 dòng tầm 150 kí tự là đẹp (quan điểm cá nhân, cũng như trong sách, còn nó tùy thuộc vào cảm nhận của mỗi cá nhân).
Và quan trọng nhất là do one thing (1 method nên làm đúng 1 việc mà cái tên hàm đưa ra, sau này đọc tên hàm là hiểu không cần đọc code làm beep gì).
Thanks so much author Dinh Duong!
Nguồn: https://jinhduong.github.io/coding/2016/10/28/ma-sach-2.html