Při programování, ale vlastně asi při každé činnosti, je dobré se řídit pár zásadami. Jendou z nich je alespoň v případě programování něco, co se anglicky označuje jako DRY. Ne, neznamená to, že je sucho a je nutno zajít do hospody na jedno, ale jsou to první písmena Don't Repeat Yourself.
Je mnoho způsobů jak tento přístup využít a jedním z nich je i nepsat zbytečný kód. Při code review často ovšem narazím na to, že vývojář tento princip nedodrží a v kódu se objeví něco podobného následujícímu zjednodušenému příkladu:
public bool CanCreateNew()
{
if (this.allowedActions == null)
return false;
return this.allowedActions.Any(x => x.ActionCode == ActionCode.CreateNew);
}
public bool CanUpdate()
{
if (this.allowedActions == null)
return false;
return this.allowedActions.Any(x => x.ActionCode == ActionCode.Update);
}
public bool CanCancel()
{
if (this.allowedActions == null)
return false;
return this.allowedActions.Any(x => x.ActionCode == ActionCode.Cancel);
}
Když se podíváte na těla funkcí, tak se neustále opakuje ten samý postup a všechny metody lze vyjádřit pomocí jedné:
public bool CanDoAction(ActionCode actionCode)
{
if (this.allowedActions == null)
return false;
return this.allowedActions.Any(x => x.ActionCode == actionCode);
}
Uvedenému přístupu je vhodné se vyvarovat - výjimkou snad mohou být pouze případy, kdy jste placeni od řádku kódu :-). Je dobré si uvědomit, že čím méně kódu napíšete, tím méně v něm může být chyb a kód se bude snadněji udržovat.
Mohu potvrdit. Spousta lidí tomu nevěří do okamžiku, kdy maj dvě metody, co dělaj to samý a změní jenom jednu z nich. A pak je ještě spousta lidí, co to nepochopí ani potom :-)
OdpovědětVymazat