[Перевод] Я являюсь причиной появления венгерской нотации в Android
Комментарии (2)
18 июля 2017 в 14:35 (комментарий был изменён)
+2↑
↓
где вы видите имена, такие как lpsz_name
Я пойму, что это «Long Pointer to String with a Zero terminator», но еще это и отхождение от гайдлайна. По гайдлайну должно быть lpszName. Знак подчеркивания есть только у «m (ember)» и «g (lobal)».
ПруфЭто всё что нам надо знать о проблеме написания и чтении гайдлайнов. :)
18 июля 2017 в 16:28
+1↑
↓
Ооо, теперь я знаю имя того, кто притащил эту хрень в Java на Андроид!
Лично я HN в Java не переношу. Чтобы найти переменную с такой нотацией, надо сначала вспомнить ее тип, угадать какие еще дикие бредни пришли в голову разработчику, когда он решил поставить lpsz или еще что-то, и только потом можно поискать по имени. Вместо того чтобы набрать ».» и начать вводить очевидное имя, приходится угадать m, g, lpsz, wtf и пр., и только потом искать по имени.
Конечно, всегда можно заглянуть в начало класса и посмотреть там, но тогда вообще нет разницы, есть мета или нет.
А при правильно составленном Coding Conventions, можно избежать вообще необходимости угадывать какие есть поля в классе, обращаясь к нему снаружи, т.к. можно просто прописать работать только через геттеры и сеттеры.