[Перевод] Я являюсь причиной появления венгерской нотации в 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, можно избежать вообще необходимости угадывать какие есть поля в классе, обращаясь к нему снаружи, т.к. можно просто прописать работать только через геттеры и сеттеры.

© Habrahabr.ru