poniedziałek, maja 18

gnije ale dlaczego

witam;

no to startujemy, pora opowiedzieć sobie co powoduje gnicie systemu;


Changing Requirements
Główna przyczyna degeneracji systemu jest bardzo dobrze znana. Wymagania które się zmieniają w taki sposób, że nie można ich w prosty sposób zaimplementować do pierwotnego projektu. Bardzo często zmiany muszą być bardzo szybko wykonane, często są wykonywane przez programistów nie będących przy tworzeniu pierwotnej wersji softu. Nie są oni wstanie wykonać poprawnie zmian ponieważ nie znają architektury. Zmiany do systemu nie są wprowadzane w czysty sposób dlatego też powodują akumulowania się kodu nie psującego do pierwotnej formy systemu.

Jednakże nie można obwiniać zmieniających się wymagać, o taki obrót sprawy. Każdy programista powinien być świadomy zmienności wymagań względem systemu.


Dependency Management
Jakie zmiany w projekcie powodują gnicie się systemu? Często zmiany wymuszają wprowadzanie nowych niezaplanowanych zależności pomiędzy klasami. Cztery symptomy wymienione w poście wcześniej wpływają bezpośrednio lub pośrednio, na to w jaki sposób są wprowadzane zależności pomiędzy klasami. Największym problemem w programowaniu obiektowym jest odpowiednie wprowadzanie zależności pomiędzy klasami, oraz odpowiednie zarządzanie tymi zależnościami. Programowanie obiektowe samo w sobie nie wspomaga tego mechanizmu, lecz istnieje kilka praktyk które pozwalają na dalszym etapie projektu wprowadzać zmian bez szkody dla niego.


… w kolejny postach przedstawię te mechanizmy, oraz na koniec pokażę zależność pomiędzy tymi praktykami.


ps. miłego czytania.

1 komentarz:

  1. Wg mnie źródłem zła na świecie (koklusz, gradobicie, itti) jest zgoda przez niedoświadczonego dewelopera na dopisanie drobnej rzeczy w komponencie X :) A potem jeszcze jednej ...

    1) robi to niedoświadczony deweloper
    2) więc pewnie doda to tam gdzie mu akurat się uda a nie tam gdzie było by w miarę OK
    3) nikt nie będzie sprawdzał bo to drobna zmiana
    4) więc nie trzeba wprowadzać zmieniającego w design
    5) a skoro jest młody to pewnie jest też ambitny i szybko się z tym uwinie
    6) a skoro mu się to udało to poradzi sobie z kolejną zmianą w komponencie X

    Wiem bo sam byłem tym młodym deweloperem :)

    OdpowiedzUsuń