Сделают ли соглашения об именах более эффективным обслуживаемым кодом?

StackOverflow https://stackoverflow.com/questions/3930388

Вопрос

Мне нравится давать мои переменные, методы и объекты описательные имена. Очевидно, что не переходит за борт, но позвольте мне привести вам пару примеров.

public class Account
{
    public decimal Balance { get; set; }
}

Account account = new Account();
account.Balance = 1000;

Некоторые люди решили бы пойти на следующее, что на самом деле не имеет смысла для меня, если только вы не ленивый машинист.

Account acc = new Account();
acc.Balance = 1000;

Проблема в том, когда у вас есть логика с этими сокращениями. Вы чрезвычайно смущены тем, что происходит.

Представьте себе следующие объекты.

public class Account { public DebitOrder DebitOrder { get; set; } }
public class DebitOrder { BankDetail BankDetail { get; set; } }
public class BankDetail {}

Account acc = new Account();
DebitOrder do = new DebitOrder();
BankDetail bd = new BankDetail();

if(acc.DebitOrder.SomeProperty == do.SomeProperty)
{

}

Читаемость проходит в канализацию. Всегда есть аргумент в пользу Intellisense и просто завис к вашим переменным, чтобы увидеть, какой они тип или что они. Читаемый код, создает легко понятный код.

Сделают ли соглашения об именах более эффективным обслуживаемым кодом?

Это было полезно?

Решение

Да, конечно же, соглашения об именах делают более высокий обслуживающий код.

Вот почему в первый день в классе программирования лектор ударит вас, если вы позвоните переменной x, или я ...

Вы должны помнить, что имена переменных/методов/класса и т. Д. И т. Д. Для программиста, так как при составлении они будут только адресами памяти.

Вы должны попытаться использовать хороший баланс читаемого, самостоятельного объяснения соглашений об именах, хороших комментариев и хорошо структурированного кода, чтобы сделать более высокий обслуживающий код.

Другие советы

Да, для любой переменной, которая не имеет очень ограниченной области.

Когда сфера действия переменной очень ограничена, и когда код вращается вокруг этой переменной, вы можете сойти с рук с именем переменной.

Например, счетчик в петле может иметь простое имя, если корпус петли маленький, а счетчик не повторно имеет какое -либо другое значение:

for (int i = 0; i < 10; i++) arr[i] = 0;

Lambda выражения могут быть более читаемыми, используя короткое имя:

var items = source.Select(n => n.ToString() + ".");

Однако при использовании коротких имен не пытаются что -то сокращать. Если одна буква или хорошо известная аббревиатура этого не делает, вы можете с таким же успехом пойти на более длинное имя.

Например, используя n Для числового значения, как и в изгнании Lambda выше, будет работать. Использование чего -то дольше, что все еще является аббревиатурой, как itnum или itmid Заставляет имя носить больше информации, но недостаточно, чтобы быть полезным, поэтому itemNumber или itemId было бы лучше.

Когда я программирую на языках, таких как C#, я часто даю свои переменные короткие имена только потому, что их легче вводить, и я могу установить больше кода на экране. Это хорошо работает, когда вы находитесь в зоне, и точно знаете, что все, но именно по тем причинам, которые вы упомянули, это было бы очень запутанно для постороннего или даже для себя через несколько часов. Nice IDE облегчает переименование переменных, которые я определенно предложил бы сделать, прежде чем уйти от вашего проекта на ночь, или, конечно, перед тем, как поделиться им.

Guffa поднимает несколько хороших моментов о том, когда подходят имена коротких переменных.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top