Common - Question 1 (Quality in development) Flashcards
Co je kvalita ve vyvoji SW
Kombinace metod za ucelem dosazenim vydefinovane urovne kvality. Tyto metody jsou treba testovani, detekce chyb, definice pozadavku atp. Kvalita SW dost zavisi na uhlu pohledu - Uzivatel bude mit jiny pozadavky na kvalitu oprodi vyvojari. Obvykle se hleda nejlepsi kompromis mezi jednotlivymy uhly. Nektere kvality jdou proti sobe - (napr rychlost/bezpecnost). Nejcasteji kvalitu a jeji vlastnosti urci zakaznik.
Co je SOLID
SOLID je seznam doporucenych principu pro kvalitnejsi kod. Principy jsou: Single responsibility principle, Open-Close, Liskov substitution principle, Interface Segregation, Dependency Inversion
Co znaci Single Responsibility Principle
Kazda trida/metoda by mela mit pouze jeden ucel (delat jednu vec).
Co znaci Open-Close principle
Trida ma byt otevrene k rozsirovani, ale uzavrena k modifikaci stavajici funkcionality.
Co znaci Liskov substitution principle
Jakkykoli podtrida muze nahradit sveho rodice - podtrida by nemela rozbit chovani nebo invariant
Co znaci Interface Segregation principle
Znaci mit radsi vice interfacu nez par, ktere pak maji vice funkci - souvisi se single responsibility.
Co znaci Dependency Inversion principle
Trida by mela zaviset na definici interfacu a ne na konkretni implementaci tridy.
Mereni SW
Snazime se merit vlastnosti SW abychom meli prehled, jestli je napr kod citelny, spolehlivy. Muzeme merit, kolik procest radku kodu je otestovano,
Technicky dluh
Podobne jako penezni. Snizime kvalitu SW na ukor rychlejsimu vyvoji
Co si pod kvalitou SW muze predstavit Uzivatel
Kvality, ktere muze pocitit vizualne/ uzivanim. Tedy: uzivatelska pouzitelnost (jak se vyzna v rozhrani), jestli sluzba jede bez vypadku, rychlost sluzby, presnost sluzeb
Co si pod kvalitou SW muze predstavit programator
Kvality, ktere citi pri psani sluzby. Tedy: komplexita kodu, testovatelnost, modularnost, pochopitelnost kodu.
Co si pod kvalitou SW muze predstavit manazer?
Kvality, ktere cili prevazne na dlouhodoby vyvoj sluzby. Tedy: skalovatelnost, znovupouzitelnost, schopnost adaptace na nove okolnosti (novy zakon treba vejde v platnost)
SW metriky
Lines of Code
Number of methods
Number of Classes
Number of packages
Code coverage
Statement coverage
Function coverage
Branch Coverage
Cyclomatic complexity
Metody pro zlepseni performance?
Profiling procesu - zkoumani complexity a bottlenecku vypoctu
paralelni zpracovani - (nutne pohlidat kriticke sekce - muze naopak i ublizit)
kontrolovane vyuziti vice zdroju - vyuzit cachovani, load balancer a repliky
Metody pro zlepseni udrzitelnosti
Psat cisty kod (Solid, DRY, KISS)
Byt pripraven na zmeny (lide se vyvyji a pozadavky s nemi, zakony se meni/vytvari)
vhodny vyber knihoven (vybirat aktivni knihovny, aby se nestalo, ze za pul roku uz ji nikdo nebude spravovat a bude nutny prepis)