Problem jojo - Yo-yo problem

W rozwoju oprogramowania , yo-yo problemem jest anty-wzorzec , który występuje, gdy programista musi przeczytać i zrozumieć program, którego dziedziczenie wykres jest tak długa i skomplikowana, że programista musi zachować skakaniu pomiędzy wiele różnych definicji klas w celu odbycia przepływ sterowania programem. Najczęściej widziany jest w kontekście programowania obiektowego . Termin pochodzi z porównania odbijającej się uwagi programisty do ruchu w górę w dół zabawki jo-jo . Taenzer, Ganti i Podar opisali problem po imieniu, wyjaśniając: „Często mamy wrażenie jazdy na jojo, kiedy próbujemy zrozumieć jedno z tych drzew wiadomości”.

Większość praktyk programowania obiektowego zaleca utrzymywanie grafu dziedziczenia tak płytkie, jak to możliwe, po części w celu uniknięcia tego problemu. Użycie kompozycji zamiast dziedziczenia jest również bardzo preferowane, chociaż nadal wymaga to od programisty pamiętania o wielu definicjach klas jednocześnie.

Głębokie hierarchie to zapach kodu i symptom podklasyfikacji do ponownego użycia kodu .

Mówiąc bardziej ogólnie, problem jo-jo może również odnosić się do każdej sytuacji, w której dana osoba musi ciągle przełączać się między różnymi źródłami informacji, aby zrozumieć pojęcie.

Istnieje kilka technik refaktoryzacji kodu , które spłaszczają te hierarchie bez narażania ogólnego zachowania.

Techniki projektowania zorientowanego obiektowo, takie jak warstwy dokumentujące hierarchię dziedziczenia, mogą zmniejszyć efekt tego problemu, ponieważ gromadzą w jednym miejscu informacje, które programista musi zrozumieć.

Zobacz też

Bibliografia