Мне нравятся имена переменных, чтобы придать смысл значениям, которые они содержат, и оставить то, как они объявлены / реализованы, вне имени. Я хочу знать, что означает значение, точка. Может быть, я выполнил не просто средний объем рефакторинга, но обнаружил, что встраивание того, как что-то реализовано в названии, делает рефакторинг более утомительным, чем нужно. Префиксы, указывающие, где или как объявляются члены объекта, зависят от реализации.
color = Red;
В большинстве случаев мне все равно, является ли Red перечислением, структурой или чем-то еще, и если функция настолько велика, что я не могу вспомнить, был ли цвет объявлен локально или является членом, это, вероятно, время разбить функцию на более мелкие логические единицы.
Если ваша цикломатическая сложность настолько велика, что вы не можете отследить, что происходит в коде, без специфических для реализации ключей, встроенных в названия вещей, скорее всего, вам нужно уменьшить сложность вашей функции / метода .
В основном, я использую 'this' только в конструкторах и инициализаторах.