вторник, ноября 01, 2005

Об именах

Сколько раз уже говорили людям: "используйте правильные имена для переменных, свойств и методов". Кивают головой, соглашаются и делают наоборот. А вот очень просто. Получаю от тестировщика: "Smoke test failed". Ну и причины там... Суть такая, что в процессе работы происходит обращение к неразмещённому объекту. Что-то вроде:

si.Subject.LastName = someName;

при этом свойство Subject получается следующим образом:


public Subject Subject
{
get
{
if (m_Subject == null)
{
if (!IsNew && SubjectId > 0)
{
SubjectsEngine eng = new SubjectsEngine();
m_Subject = eng.GetSelected(SubjectId)[0];
}
else if (ShouldCreateStub)
m_Subject = new Subject();
}

return m_Subject;
}

set
{
SubjectId = value.Id;
m_Subject = value;
}
}
Ничего особенного? Так и есть. Но представьте себе, что
ShouldCreateStub
называется не так, как оно тут называется, а, положим,
MustIgnoreEmptiness
и определено так:

private bool m_OldBehavior = true;

public bool MustIgnoreEmptiness
{
get {return m_OldBehavior;}
set {m_OldBehavior = value;}
}
? Как тут можно вообще понять, что имел в виду автор? Для чего он эдак накрутил? Я не знаю, а вот время потратил. И ведь styleguide есть...

Комментариев нет: