Logo David Burdelak
Słownik · Programowanie i wzorce projektowe

Co to jest spaghetti code?

Ostatnia aktualizacja:

Kod spaghetti to potoczne określenie programu o splątanej, nieuporządkowanej strukturze, w którym przepływ sterowania skacze między odległymi fragmentami, a zależności są niejasne. Taki kod jest trudny do czytania, testowania i modyfikacji, bo zmiana w jednym miejscu psuje inne.

Jak powstaje?

Zwykle w wyniku pośpiechu, braku planu i stopniowego dopisywania poprawek. Historycznie wiązano go z nadużywaniem instrukcji skoku goto. Dziś objawia się długimi funkcjami, zagnieżdżonymi warunkami, zmiennymi globalnymi i mieszaniem logiki z prezentacją, np. zapytań SQL w szablonach HTML.

Jak go rozpoznać?

Trudno wskazać, gdzie dzieje się dana operacja, nazwy nic nie mówią, a każdą zmianę poprzedza lęk, że coś się zepsuje. Brak testów automatycznych dodatkowo utrudnia bezpieczne poprawki.

Jak go leczyć?

Zacząć od testów opisujących obecne zachowanie, a następnie refaktoryzować małymi krokami: wydzielać funkcje, nazywać elementy, oddzielać warstwy. Dobrym kierunkiem jest podział według wzorca MVC i zasady pojedynczej odpowiedzialności.

Powiązane pojęcia

Wszystkie hasła z kategorii Programowanie i wzorce projektowe