Antywzorce w projektowaniu oprogramowania

To czego należy unikać podczas projektowania oprogramowania.


Antywzorce w projektowaniu oprogramowania:

  • Inwersja abstrakcji (ang. Abstraction Inversion) - ukrywanie zaimplementowanej funkcjonalności przed użytkownikami, którzy tej funkcjonalności potrzebują. Użytkownicy zmuszeni są do samodzielnej implementacji funkcji używając funkcji wyższego poziomu,
  • Niejednoznaczny punkt odniesienia (ang. Ambiguous viewpoint) - obiektowe modele systemu są prezentowane, bez wskazania, do czego się odnoszą,
  • Błotna bryła (ang. Big ball of mud) - system o trudnej do zrozumienia strukturze. Ryzykowne zmiany w kodzie, nie sposób przewidzieć skutków zmian,
  • Petrochemia (ang. Gas factory) - zbyt dokładny i skomplikowany projekt programu lub funkcjonalności,
  • Wadliwe wejście (ang. Input kludge) - system nie radzi sobie z danymi na wejściu. Błędnie lub niewystarczająco zaimplementowana obsługa niepoprawnych danych wprowadzonych przez użytkownika. Bardzo często błędy tego typu wykrywane są dopiero przez użytkowników,
  • Interfejs gigant (ang. Interface bloat) - tworzenie zbytnio rozbudowanych interfejsów,
  • Magiczny przycisk (ang. Magic pushbutton) - implementowanie zbyt ubogiego w możliwości interfejsu użytkownika. Przenoszenie zbyt dużej części funkcjonalności do konkretnych komponentów np. obsługi przycisku. Brak możliwości ponownego wykorzystania kodu z przycisku, przycisk powinien zawierać tylko niezbędne funkcjonalności, pozostała uniwersalna część powinna być dołączona do interfejsu,
  • Silnie zależne komponenty (ang. Re-Coupling) - zbyt silnie powiązania i zależności pomiędzy komponentami i klasami w systemie,
  • System, który gra i tańczy (ang Stovepipe system) - system zawierający zbyt dużą ilość elementów niepowiązanych pomiędzy sobą, ciężki do analizy i aktualizacji,
  • System z wyścigami (Race hazard) - system, w którym poprawne działanie i obsługa zdarzeń jest zależne od kolejności wywołania zdarzeń.
Komentarze facebook (polub nasz profil na FB aby je zobaczyć):