čtvrtek 24. září 2015

CodeReview - není k ničemu

Když dělají dva totéž, nikdy to není totéž.
Překvapivě i když jste to vy sami jen o nějaký den, týde či měsíc starší.

Tím se ukazuje důležitost toho, aby po Vás váš kód někdo prošel, zaťukal si na čelo a řek "Můžeš mi prosím tě vysvětlit rozdíl mezi těmito dvěma propertama?" Pokud nemáte kolegu, který by to pro Vás udělal, tak hold před každým commitem musíte otevřít každý upravený soubor a podívat se co jste změnili a jestli o řádek vedle není metoda, kterou by jste mohli refaktorovat.


public bool IsPossibleToLogin
{
 get
 {
  return this.BaseAddress != null
  && !string.IsNullOrEmpty(this.BaseAddress.ToString())
  && !string.IsNullOrEmpty(this.UserName) 
  && !string.IsNullOrEmpty(this.Password);
 }
}

public bool IsSetLogin
{
 get
 {
  return !string.IsNullOrEmpty(this.UserName)
  && !string.IsNullOrEmpty(this.Password)
  && !string.IsNullOrEmpty(this.BaseAddress.ToString());
 }
}


První krok refaktoringu
Nahradit výpočet v druhé proprty výpočtem v první, protože je robustnější a kontroluje i jestli je vyplněna adresa. Označení property jako Obsolet dáte kolegů nebo partnerům kteří vaši knihovnu používají najevo, že plánujete tuto property odstranit, čím ji mají nahradit a kdy ji odstaníte.

public bool IsPossibleToLogin
{
 get
 {
  return this.BaseAddress != null
  && !string.IsNullOrEmpty(this.BaseAddress.ToString())
  && !string.IsNullOrEmpty(this.UserName) 
  && !string.IsNullOrEmpty(this.Password);
 }
}

[Obsolete("Duplicitní property. Použíjte property IsPossibleToLogin. Ve verzi 1.4.5 bude odstraněna.")]
public bool IsSetLogin
{
 get
 {
  return this.IsPossibleToLogin;
 }
}

Druhý krok refaktoringu
Odstraníme reference na obsolet propertu, které se nám po buildu zobrazí v [Error listu].

Třetí krok refaktoringu
Odstraníme obsoleteproperty.

Žádné komentáře:

Okomentovat