Tôi đã tìm kiếm trên diễn đàn, nhưng tôi không thể tìm thấy câu trả lời tại sao nên tránh, chỉ tại sao nó không phải là viên đạn bạc. Vì vậy, tôi không nghĩ rằng câu hỏi này là một bản sao.
Có lý do GIÁ TRỊ tại sao tôi nên học hỏi Hệ thống Hungary mà tôi đã sử dụng không?
Cho đến nay tôi thấy những lợi ích sau khi sử dụng nó:
- Đặt tên biến nhất quán
- Bạn thấy loại mà không cần tìm kiếm (intellisense đã chết / lập chỉ mục một nửa thời gian, vì vậy đây vẫn là một lý do hợp lệ)
- Ngữ nghĩa vẫn có thể được đóng gói vào phần thứ hai của tên
Và những nhược điểm sau:
- Nó làm phiền một số người (không biết tại sao)
- Nếu loại được thay đổi, loại có thể không khớp với cách đặt tên của biến (Tôi không nghĩ đó là lý do hợp lệ, các loại hiếm khi được thay đổi và bạn đã "đổi tên tất cả")
Vậy tại sao:
vector<string> vecCityNames;
wstring strCity = L"abc";
//more code here
vecCityNames.push_back(strCity);
tệ hơn:
vector<string> cityNames;
wstring city = L"abc";
//more code here
cityNames.push_back(city);//Are we pushing back int on a queue? Float on a stack? Something else?
vectCityNames
có vectStringCityNames
quá nhiều tranh luận nhất quán của bạn, và điều này "câu hỏi" là chi tiết của một rant hơn bất cứ điều gì, bạn có tâm trí của bạn tạo thành, điều này sẽ được đóng lại.
cityNames.push_back(city)
khá rõ ràng. Đây là một danh sách các tên thành phố và bạn đang thêm một.