Busqué en el foro, pero no pude encontrar las respuestas por qué debería evitarse, solo por qué no es una bala de plata. Entonces no creo que esta pregunta sea un duplicado.
¿Hay un VÁLIDO razón por la que debería olvidar Sistemas de Hungría Estoy acostumbrado a?
Hasta ahora veo los siguientes beneficios al usarlo:
- Nomenclatura variable constante
- Verá el tipo sin buscar (intellisense está muerto / indexando la mitad del tiempo, por lo que sigue siendo un motivo válido)
- La semántica todavía se puede empaquetar en la segunda parte del nombre
Y siguientes inconvenientes:
- Molesta a algunas personas (no tengo idea de por qué)
- Si se cambia el tipo, es posible que el tipo no coincida con el nombre de la variable (no creo que sea una razón válida, los tipos se cambian raramente y usted tiene "cambiar el nombre de todo")
Entonces por qué:
vector<string> vecCityNames;
wstring strCity = L"abc";
//more code here
vecCityNames.push_back(strCity);
es peor que:
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
ser vectStringCityNames
tanto para su argumento constante, y esta "pregunta" es más una queja que otra cosa, tiene una decisión decidida, esto debería cerrarse.
cityNames.push_back(city)
es bastante claro. Es una lista de nombres de ciudades y está agregando uno.