"I was recently assigned to work on a team that maintains a fairly large product," writes Aaron, "at first, I was a bit overwhelmed by the complexity of the architecture. There were countless layers of abstraction, thousands and thousands of classes, and design patterns galore. Since it was such a large project – and my first large project – I figured that the architectural complexity was simply par for the course."
“Then I started looking at the code a little more closely. If I had two words to describe it, they’d be ‘unnecessary complexity.’ And if I had one snippet to describe it, it would be this.”
private void SetAccount(RequisitionData.RequisitionItem requisitionItem,
AccountData.Account account, bool automation)
{
bool allowSetAccount = false;
if(account != null)
{
// if the account entry is being set by automation, ensure that
// the user hasn't already set a value
if (automation)
{
if (!requisitionItem.IsAccountCodeNull())
{
if (requisitionItem.AccountCode == string.Empty)
allowSetAccount = true;
else
allowSetAccount = true;
}
else
allowSetAccount = true;
}
else
allowSetAccount = true;
if (allowSetAccount)
{
requisitionItem.AccountID = account.ID;
requisitionItem.AccountCode = account.Code;
}
}
}
Aaron continued, "the beauty of it is that the method is private within the class, and has an 'automation' boolean parameter. This parameter is always passed as true."