Saya mencari di forum, tetapi saya tidak dapat menemukan jawaban mengapa itu harus dihindari, hanya mengapa itu bukan peluru perak. Jadi saya tidak berpikir pertanyaan ini adalah duplikat.
Apakah ada alasan VALID mengapa saya harus menghapus Sistem Hungaria yang saya gunakan?
Sejauh ini saya melihat manfaat berikut dalam menggunakannya:
- Penamaan variabel yang konsisten
- Anda melihat jenis tanpa mencari (Intellisense sudah mati / mengindeks separuh waktu, jadi itu masih alasan yang sah)
- Semantik masih bisa dimasukkan ke bagian kedua dari nama
Dan berikut kerugiannya:
- Itu mengganggu beberapa orang (tidak tahu kenapa)
- Jika tipe diubah, tipe tersebut mungkin tidak cocok dengan penamaan variabel (Saya rasa itu bukan alasan yang valid, tipe jarang diubah, dan Anda memiliki "ganti nama semua")
Jadi kenapa:
vector<string> vecCityNames;
wstring strCity = L"abc";
//more code here
vecCityNames.push_back(strCity);
lebih buruk dari:
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
menjadi vectStringCityNames
begitu banyak untuk argumen yang konsisten Anda, dan ini "pertanyaan" lebih dari kata-kata kasar dari apa pun, Anda memiliki pikiran Anda dibuat, ini harus ditutup.
cityNames.push_back(city)
cukup jelas. Ini adalah daftar nama kota dan Anda menambahkannya.