Я искал форум, но я не мог найти ответы, почему этого следует избегать, только почему это не серебряная пуля. Поэтому я не думаю, что этот вопрос является дубликатом.
Есть ли ДЕЙСТВИТЕЛЬНАЯ причина, почему я должен отучиться от венгерского языка Systems, к которому я привык?
До сих пор я вижу следующие преимущества в его использовании:
- Согласованное именование переменных
- Вы видите тип без поиска (intellisense не работает / индексирует половину времени, поэтому это все еще веская причина)
- Семантика все еще может быть упакована во вторую часть имени
И следующие недостатки:
- Это раздражает некоторых людей (понятия не имею, почему)
- Если тип изменен, тип может не соответствовать названию переменной (я не думаю, что это правильная причина, типы меняются редко, и у вас есть «переименовать все»)
Так почему:
vector<string> vecCityNames;
wstring strCity = L"abc";
//more code here
vecCityNames.push_back(strCity);
хуже чем:
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
быть vectStringCityNames
так много для вашего последовательного аргумента, и этот «вопрос» - скорее разглагольствование, чем что-либо еще, вы должны принять решение, это должно быть закрыто.
cityNames.push_back(city)
довольно понятен. Это список названий городов, и вы добавляете его.