pondělí 15. prosince 2014

Poznámky z code review 2

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.

1 komentář:

  1. 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