The Dispensables – zawierają coś, co powinno być usunięte z kodu źródłowego: leniwa klasa, klasa danych, powtórzony kod, martwy kod, spekulatywna ogólność. ang. The Couplers – zapachy związane z powiązaniem kodu: zazdrość o kod, niewłaściwy poziom intymności, pośrednik, łańcuchy wywołań.

Inny podział proponuje Jeff Atwood w jednym z postów na blogu Coding Horror podaje następujący podział: zapachy wewnątrz klas (ang. Code Smells Within Classes): komentarze, długa metoda, długa lista parametrów, powielony kod, skomplikowane warunki, duża klasa, zagnieżdżanie typu w nazwie, niewiele mówiąca nazwa, niespójne nazwy, nieużywany kod, spekulatywną ogólność, pole tymczasowe zapachy kodu między klasami (ang. Code Smells Between Classes): podobne klasy o różnych interfejsach, obsesja typów podstawowych, klasy danych, zbitki danych, odrzucony spadek, zbytnia intymność, zazdrość o kod, leniwa klasa, łańcuchy wywołań, pośrednik, poszatkowanie, równoległe hierarchie dziedziczenia, niekompletna klasa bazowa

Automatyczne wykrywanie Narzędzia do statycznej analizy kodu dostarczają możliwości automatycznego wykrywania brzydkich zapachów w kodzie. W przypadku języka Java są to np. SonarQube, PMD (oprogramowanie), Checkstyle, FindBugs.

Zobacz też antywzorzec projektowy DRY KISS (reguła) spójność oprogramowania zależność oprogramowania gnicie oprogramowania

Przypisy

Kategoria:Kod źródłowy