Когда вбиваешь "_" и выдаёт приватные переменные - это ок. Но что если ты используешь и не приватные в классе, получается чтобы обратиться к ним, нужно знать локальна она или нет, чтобы начинать с "_" или без.
По мне так удобнее, и встретил кучу Open Source проектов, использующих очень близкий к этому стилю:
Сообщение от Dream
раз уж пошла такая пьянка
тоже использую подчёркивания для приватных филдов. неприватные филды стараюсь не делать вообще - мешает реюзабельности.
|
А это вообще ни в какие ворота. Бьёт по производительности ужасно. Речь идёт о C#. И тут лучше использовать Acessor'ы, для обращения к данным класса. Это реюзабельней, и более масштабируемо, т.к. можно заменить лишь тело аксессора, и везде будут применены изменения. В случае с переменными, так не пройдёт. Плюс внедрение например эвентов при изменении переменной и т.п. - это снова, чтобы это сделать, если использовал прямой доступ, придётся везде менять, во всех проектах где юзается это. А если юзался аксессор, то лишь в нём добавиться одна / две строки кода, и всё. Нигде менять не нужно.
Читаю не внимательно.
Сообщение от Dream
В команде изначально был принят стандарт по именованию переменных. что избавляет от лишней траты времени на пролистывания истинга чтобы узнать кому принадлежит переменная. также приняты "Is..." и "Has..." как узкатаели на булевский функции и члены.
|
Это хорошо имхо, только это нужно делать не для переменных (Is.. и Has..) а для аксессоров снова.
Сообщение от Dream
Не понимаю как может упасть читабельность от "_".
|
Лишний проступ, вызывает впечатление дополнительного пробела, при этом хаотично. При взгляде на строку, сразу разбиваешь её на компоненты, тут важны пробелы, и использование "_" это сильно сбивают.
Сообщение от Dream
это наоборот позволяет избегать конфликтов зон видимостей, так как можно принимать одноимённые имена переменных в качестве аргументов функций "_position" -"position" - что делает код читабельней.
|
Читабельность и конфликты видимостей переменных - две разные темы.
Использование "this." позволяет чётко даже не знающему класса понять что обращение идёт к мемберу класса. Некоторые программисты использовали _ в начале переменных совсем иначе, и это не "становленное" правило языком. Поэтому если полагаться на то что ВСЕ переменные с "_" вначале - мемберы экземпляра, то тут можно конкретно наломаться, когда будешь бегать по чужому коду, кто например помечает также "_" локальные переменные.
Сообщение от Dream
использование "this" считаю излишним и признаком плохого проектирования.
|
В чём минусы? В том что есть совпадения имён переменных в мемберах и параметрах методов? Дык - это нормально. Но использование абстрактных "правил" для избежания конфликтов - это не стабильно, и тем более в языке уже есть для этого все функции. Это подобно венгерской нотации..
Не знающих абстрактных правил разраб, будет опираться на языковые "правила" и возможности. Именно использования стандартных средств, позволяет писать полностью дружелюбный код для всех кто знаком с языком.