На практике это не имеет значения.
По моему опыту, когда класс преодолевает определенный порог сложности (который в основном является порогом между "тривиальным" и "нетривиальным"), я больше не перемещаюсь по классу, прокручивая его источник, я перемещаюсь с помощью Перейти к определению и найти использование.
Использование линейной близости для обозначения отношений между учениками кажется хорошей идеей, но я думаю, что на самом деле это не так. Если я увижу это:
private string _Foo;
public string Foo
{
// arbitrarily complex get/set logic
}
Смысл ясен: _Foo
используется только свойством Foo
. Это значение не является надежным, хотя. Единственный способ убедиться, что в классе нет кода, который манипулирует _Foo
, - это проверить его. Что ж, если я не могу полагаться на близость, чтобы сказать мне что-нибудь, зачем мне вообще заботиться о близости?
В наши дни я просто делаю алфавит ученикам с самого начала. Это освобождает меня от необходимости думать о чем-то (куда я должен поместить этого участника и почему я должен выбрать это место для него?), Что на самом деле не имеет значения.