Porównanie najważniejszych zagadnień dla baz danych typowych i wysoko jakościowych.


Jakość w procesie tworzenia oprogramowania ma niebagatelny wpływ na koszty wytworzenia i utrzymania aplikacji. Wysoko-jakościowe systemy mają niższe koszty wytworzenia, lepsze i mniej kosztowne testy oraz niższe koszty eksploatacji (poprawki, modyfikacji). 

Zagadnienie Baza typowa Baza wysoko-jakościowa Sugerowane techniki i standardy
wydajność Niska, częste awarie wydajnościowe, trudna do zoptymalizowania. Często optymalizacja w jednym miejscu powoduje spadek wydajności w innym. Naprawa wymaga zmian sprzętowych, dodawania indexow/hintów lub przebudowy kodu. wysoka, brak awarii standardy projektowe struktur

standardy programistyczne

programowanie pod wydajność
błędy Duża ilość błędów, najczęściej znajdowane już na produkcji, trudne do zdiagnozowania, trudne do naprawy. Często naprawa jednego błędu powoduje powstanie kolejnych błędów. Niewielka ilość błędów, największa ilość błędów znajdywana i naprawiana jeszcze na etap developmentu. Produkcja praktycznie wolna od błędów, ewentualnie pojedyncze i rzadko, łatwe do naprawy. standardy nazewnicze
standardy programistyczne
testy automatyczne (unit testy)
inspekcje kodu
standardy projektowe
wdrożenia Kosztowne i długotrwale. Zaangażowanych jest wiele osób. Podczas wdrożenia występują błędy, częste wycofania wdrożeń, kilka podejść. Szybkie i praktyczne bezbłędne. Niewiele zaangażowanych osób we wdrożenie. Wersjonowanie

skrypty instalacyjne

testy skryptów instalacyjnych
eksploatacja Dużo czasu poświęcane na debugowanie i naprawdę błędów
modyfikacje kosztowne, długotrwale
modyfikacje często powodują błędy w innych rejonach aplikacji
Mało błędów albo wcale, modyfikacje łatwe i proste do wykonania. standardy programistyczne

standardy nazewnicze

wersjonowanie
testy Bardzo trudne i kosztowne testy więc często szczątkowe lub mało, głównie funkcjonalne. Brak testów jednostkowych, instalacyjnych, regresyjnych. System łatwy do przetestowania-> duża ilość testów na każdym etapie. Testy jednostkowe, integracyjne, wydajnościowe, regresyjne, automatyczne. standardy projektowe

standardy programistyczne

inspekcje kodu
rozwój trudny, większość sił poświęcona na naprawę błędów, awarii, wydajności. wiedza ekspercka trzymana z reguły w jednych rekach co prowadzi do braku czasu, przy braku eksperta z reguły wszystkie prace ustają lub mocno zwalniają łatwa, brak błędów i awarii daje dużo czasu na rozwój, wiedza rozproszona, każdy zna w miarę dobrze system i jest w stanie rozwijać przy niewielkiej pomocy eksperta standardy projektowe
standardy programistyczne
standardy nazewnicze
wejście w system nowej osoby Wysoki koszt wejścia w system, cała wiedza skupiona w rękach jednego lub kilku ekspertów. Niski koszt wejścia w system. Prosty system jest łatwy do analizy, przyswojenia. standardy projektowe

standardy programistyczne

standardy nazewnicze
czytelność kodu Niska, analiza kodu wymaga wiele czasu i wsparcia eksperta. Wysoka, możliwa samodzielna analiza standardy projektowe

standardy programistyczne

standardy nazewnicze

Komentarze