Smell of Code - problems

Get Started. It's Free
or sign up with your email address
Smell of Code - problems by Mind Map: Smell of Code - problems

1. Duplicate Code

1.1. solutions

1.1.1. Introduce Null Object

1.1.2. Unify Interfaces with Adapter

1.1.3. Extract Composite

1.1.4. Replace One/Many Distinctions with Composite

1.1.5. Chain Constructors

1.1.6. Introduce Polymorphic Creation with Factory Method

1.1.7. Form Template Method

1.2. rodzaje

1.2.1. ukryte

1.2.2. jawne

2. Long Method (długa metoda)

2.1. solutions

2.1.1. Replace Conditional Logic with Strategy

2.1.2. Move Accumulation to Visitor

2.1.3. Replace Conditional Dispatcher with Command

2.1.4. Move Accumulation to Collecting Parameter

2.1.5. Compose Method

2.1.6. Extract Method

2.2. metoda powina być max 10 lini...

2.2.1. a w większości przypadków 5

2.3. nie warto pisać dużych metod na początku

2.3.1. faktoryzacja jest na końcu

3. Speculative Generality (ogólność spekulatywna)

4. Solution Sprawl ( rozrzucanie rozwiązania )

4.1. solutions

4.1.1. Move Creation Knowledge to Factory

4.2. Shotgun surgery

4.2.1. brat biźniak

4.2.2. pokazuje się w trakcie pracy z kodem, w odróżnieniu od Solution Sprawl (które wyczuwa się przy analizie)

5. Switch Statment ( instrukcje switch )

5.1. solutions

5.1.1. Replace Conditional Dispatcher with Command

5.1.2. Move Accumulation to Visitor

6. Oddball Solution (osobliwe rozwiązanie)

6.1. solutions

6.1.1. Unify Interfaces with Adapter

7. Combinational Explosion (eksplozja kombinatoryczna)

7.1. solutions

7.1.1. Replace Implicit Language with Interpreter

8. Conditional Complexity ( złożoność warunków )

8.1. solutions

8.1.1. Introduce Null Object

8.1.2. Replace State-Altering Conditionals with State

8.1.3. Move Embellishment to Decorator

8.1.4. Replace Conditional Logic with Strategy

8.2. za bardzo rozbudowane i nieczytelne instrukcje warunkowe

9. Primitive Obsession (pierwotna obsesja)

9.1. solutions

9.1.1. Replace Conditional Logic with Strategy

9.1.2. Replace State-Altering Conditionals with State

9.1.3. Replace Type Code with Class

9.1.4. Replace Implicit Tree with Composite

9.1.5. Replace Implicit Language with Interpreter

9.1.6. Move Embellishment to Decorator

9.1.7. Encapsulate Composite with Builder

9.2. występuje gdy jeszcze nie zdecydowaliśmy się na użycie jakichś większych abstrakcji

10. Indecent Exposure (nieprzyzwoite obnażanie się)

10.1. Encapsulate Classes with Factory

11. Alternative Class With Different Interfaces ( podobne klasy o innych interfejsach )

11.1. solutions

11.1.1. Unify Interfaces with Adapter

12. Large class (dużą klasa)

12.1. solutions

12.1.1. Replace Conditional Dispatcher with Command

12.1.2. Replace State-Altering Conditionals with State

12.1.3. Replace Implicit Language with Interpreter

12.1.4. extract class

12.1.5. extract sub-class

12.2. gdy zbyt wiele zmiennych egzemplarzy

13. Lazy class (leniwa klasa)

13.1. solutions

13.1.1. Inline Singleton