Arhitektura i složenost
Kako nastaju složeni sistemi, zašto se apstrakcije raspadaju pod pritiskom stvarnosti i zašto arhitektura nikada nije samo dijagram.
Autor: Dr Milan Milanović
Broj strana: 300
ISBN broj: 9788673106182
Izdavač:
Kompjuter biblioteka
Godina izdanja: 2026.
Kataloški broj: 594.
|
|
||||
Količinski popust (osim pretplate i akcije)
1 knjiga, 20%
2 knjige, 25%
3 knjige, 30%
4 i više, 30%
• Isporuka za 24 časa (osim za knjige u pretplati)
• Plaćanje kuriru
Laws of Software Engineering
Konvejev zakon. Bruksov zakon. Gudhartov zakon. Hajramov zakon. Ako dovoljno dugo radite u razvoju softvera, verovatno ste se već susreli sa ovim pravilima, čak i pre nego što ste znali kako se zovu. Videli ste neuspešno ponovno pisanje sistema. Radili ste u timu koji postaje sve veći, ali sve sporiji.
Ovi obrasci se u softverskim projektima pojavljuju više od pedeset godina. Iskusni inženjeri ih poznaju, ali su ih naučili na teži način – kroz neuspešne projekte, probijene rokove i noćna debagovanja. Te lekcije nikada nisu bile na jednom mestu. Živele su u akademskim radovima iz šezdesetih, u blog postovima koji se jednom podele i zaborave, u diskusijama i pregledima koda.
Ova knjiga ih sve stavlja na jedno mesto.
Jasna definicija svakog principa sa objašnjenjem suštine i mehanizma delovanja.
Istorijski kontekst i poreklo – ko je prvi formulisao zakon i u kojim okolnostima.
Praktična relevantnost u savremenom softverskom inženjerstvu.
Kako zakon izgleda u stvarnim softverskim projektima, sa konkretnim scenarijima.
Kako se principi međusobno dopunjuju, ali i kako ponekad dolaze u direktan sukob. Inženjerstvo je pitanje kompromisa, ne pravila.
Kako nastaju složeni sistemi, zašto se apstrakcije raspadaju pod pritiskom stvarnosti i zašto arhitektura nikada nije samo dijagram.
Zašto arhitektura sistema često liči na organizaciju koja ga pravi, zašto dodavanje ljudi u zakasneli projekat može dodatno da ga uspori i zašto se problemi u komunikaciji brzo pretvaraju u probleme u kodu.
Procene greše zato što ne zavise samo od vremena za pisanje koda. Zavise od neizvesnosti, komunikacije, promena zahteva, skrivenog rada i ljudske sklonosti ka potcenjivanju složenosti.
Softver nije završen kada počne da radi. Tada počinje njegov pravi život – greške, održavanje, testiranje, tehnički dug i postepeno propadanje sistema koji se ne neguje.
Rast sistema ne donosi samo veći broj korisnika. Donosi nova ograničenja, uska grla i probleme koji nisu bili vidljivi dok je sistem bio mali.
Svakodnevni inženjerski principi koji pomažu da kod ostane razumljiv, održiv i dovoljno jednostavan.
Mentalni modeli i pristrasnosti koje utiču na procene, rasprave, arhitektonske izbore i menadžerske odluke.
Mnoga poglavlja pokrivaju i prateće zakone i modele koji se pojavljuju unutar glavnih tema. U knjizi ima više nego što sadržaj na prvi pogled sugeriše.
„Divno kompaktna knjiga prožeta teško stečenim lekcijama mudrosti. Možete provesti decenije otkrivajući ove zakone kroz ožiljke iskustva, ili možete dozvoliti Milanu da vam otključa njihove tajne za jedan vikend."
„Ova knjiga pruža katalog delotvornih modela razmišljanja za dizajn sistema, organizacionu dinamiku, upravljanje projektima i druge aspekte softverskog inženjerstva. Ona neće donositi odluke umesto vas, ali će vam pružiti jasnoću da ih donosite promišljeno."
Programerima koji žele da bolje razumeju zašto projekti uspevaju ili propadaju
Softverskim arhitektama koji donose dugoročne tehničke odluke
Tehničkim liderima koji vode timove
Menadžerima koji planiraju rokove, kapacitete i prioritete
Iskusnim inženjerima koji žele da imenuju obrasce koje već poznaju
Mlađim programerima koji žele da brže steknu rečnik i način razmišljanja seniora
Polovina knjige pokriva ljude, organizacije i način na koji donosimo odluke – ne samo tehnologiju. Ovo nije tutorijal za kodiranje i neće vas naučiti programski jezik ili radni okvir.
Softverski projekti retko propadaju zbog jednog pogrešnog reda koda. Mnogo češće propadaju zbog pogrešnih pretpostavki, loše komunikacije, potcenjene složenosti, nejasnih prioriteta, loših procena i odluka koje su delovale razumno samo dok posledice nisu postale vidljive.
Zakoni softverskog inženjerstva pomažu da te obrasce prepoznamo ranije. Ova knjiga ne obećava jednostavne recepte. Ona daje jezik, okvir i mentalne modele pomoću kojih možemo bolje da razumemo projekte, timove, sisteme i odluke koje svakodnevno donosimo.
Tehnologije se menjaju. Obrasci ostaju iznenađujuće postojani.
© Sva prava pridržana, Kompjuter biblioteka, Beograd, Obalskih radnika 4a, Telefon: +381 11 252 0 272 |
||