Back to site
Since 2004, our University project has become the Internet's most widespread web hosting directory. Here we like to talk a lot about web development, networking and server security. It is, after all, our expertise. To make things better we've launched this science section with the free access to educational resources and important scientific material translated to different languages.

Dekonstrukcija XP- a




Scrum, XP, TDD, FDD, DSDM, PSP, RUP i toliko drugih akronima koji opisuju razne razvojne procese biber literature softverskog inženjerstva. Ponekad se čini kao da smo kao predmet trendova uzeli modnu industriju. Većina spada pod zajednički nadimak za "agile development ", deceniju star pokret koji gura protiv tradicionalnih velikih frontova dizajna (BUFD).

Umetnuti najveći stanovnici su inženjeri, mi smo u glavnom konzervativni, nisu skloni radikalnim restrukturiranjima političke institucije, naših ličnih života, i većini svih naših razvojnih procesa. BUFD je još prihvaćena praksa u firmver razvoju. Na početku projekta smo brzo isukali iz Microsoft Project- a i počeli smo da varamo trouglove protiv datuma, boreci se sa planom razvoja, mapa koja navodno vodi ceo projekat. Rezultat je vodopad model, niz aktivnosti počinju sa pronalaženjem zahteva koji napreduju kroz specifikacije, dizajn, kodiranje, testiranje i isporuku.

Šef zatim uzasava u hororu od 8. meseci vodeci tim koji "Predstavljanje je za dva meseca - to mora da se uradi do tada. Ili ste svi istorija”.

Mi smo zapalili projekat ponovo, i gurnuli smo donji vaaai trougao sa leve strane. Greške su bile svuda po stranici kao sredstvo upozoravanja sukoba. Mi smo žonglirali pod zadacima trouglova, krotili alatku, stvorili smo ono za sta se nadamo da je uverljiv raspored. Nije da niko nije (osim šefa - "mi obećao.!"), ali ako možemo odbiti neizbežan neuspeh za čak nekoliko meseci , onda će nas samo možda čudo spasiti.

Čudnovato, aktuelno razmišljanje je da je disfunkcionlno i nikada ne vodi do uspeha.

Raznolike svetiljke stvorio je The Agile Manifesto (http://agilemanifesto.org) kao odgovor na nedostatke BUFD-ovih mana. Njihovi zavodljivi argumenti sadrže mnogo mudrosti, prikupljene iz previše propalih projekata. Posmatrajući da se uslovi menjaju tokom projekta, Agilers prihvata promenu, one su dobrodosle izmene na svakoj fazi projektatima..

Oni veruju da najbolje programe prave najbolje članovi tima. Pa, jeste. Ali, pitam se šta se dešava na manje dobrim programerima. To je statistički nemoguće da svi budu iznad proseka. Menadžeri ne mogu da ignorišu činjenicu da neki članovi tima jednostavno neće biti tako agilnim zahtevima grupe.

Agilan tim traži raspored. Velikim softverima je potrebno vreme, kada bude gotovo bice. Iako tu nema mnogo istine, vrlo realni poslovni planovi pritiskaju zahtevima da se pridržavaju rasporeda. Ponekad geometrija koja reguliše isporuke - postoji samo veoma uzak prozor koji se dešava svakih nekoliko godina da pokrene letielicu na Marsu. Promaši ga, i fizički ne može da isporuči misija za dolazeću godinu. Manje dramatično, ali podjednako važno osiguranje adekvatnog novčanog toka: izbaciti proizvod tako da kompanija moze da plati troskove.

Najvidljiviji agilni metod danasnjice je ekstremno programiranje (XP). Softverska literatura obiluje pričama o XP- u; nekih 20 knjiga promoviše ideju. Stvorio ih je Kent Beck, pojačan desetinama drugih, Windows XP ponekad se čini da se softverski svet u oluji.

XP filozofija je da se sve menja sve na vreme. Ljudi, alati, zahtevi, karakteristike i kod su svi u stalnom stanju promene. Umesto pokusavanja da se imobiliše svet, da pokrene zastoj dok smo generisali projekat koji zadovoljava danas specifikacije, XP-e prihvata i čak pokušavaju da isprovociraju promene. Bek smatra da softverski projekti najbolje funkcionišu kada ih vodi više, mnogo malih korekcija kursa pre nego par velikih. Kako on kaže "Nije problem promeniti, samo po sebi, jer promena će se dogoditi; problem, radije, je nemogućnost da se nose sa promenama kada se pojave."

To je pohvalan koncept. Međutim, primena ostavlja, po mom mišljenju, daleko od željenog.

Tradicionalno softversko inženjerstvo pokušava da odloži kodiranja dok su svi uslovi spusteni dole. U Windows- u XP kod je sve. I počnite kodiranje danas. Da citiram zastupaju Ron Jeffries "Uzmi nekoliko ljudi zajedno i provode nekoliko minuta skiciranja od dizajna. Deset minuta je idealna - pola sata bi trebalo da bude najviše vremena koje provodite da to uradite.". Onda počnete kodiranje.

Suvišno je reći da je to radikalna ideja, onaj koji me iskreno plaši. Ugrađeni sistemi obično nemaju Vindows Update funkciju. On mora da bude u pravu, u nekim slučajevima greške mogu dovesti do smrti. 10 minuta dizajna nije put ka pažljivoj analizi softvera.

XP uzima nekoliko ideja inžinjera softvera koji rade, i kako kažu, okreće dial up do 10. Ako su inspekcije koda dobre (a jesu), u XP- u sve kodove pregledaju sve vreme. U stvari, programeri rade u parovima, svaki par deli jednu mašinu. Oni se smenjuju u kucanju dok je druga revizija.

Ako su testovi dobri (a jesu), onda testovi definišu funkcionalnost. Programeri prave testove paralelno sa kodiranjem; nijedna funkcija nije završena dok se prolazi kroz testove.

Ukoliko je korisnikova interakcija dobra (a jeste), onda u XP-u ne možete kodirati bilo koji kod osim kupca uzivo sa vama, provodeći sate nedeljno sa timom. Kupac na licu mesta nadoknađuje bez specifikacije;. Programeri stalno lobiraju pitanja za ovog (verovatno naučnik poput) člana tima.

Ukoliko je kod loš, treba ga ukloniti (a treba), onda su svi kodovi "refactored" (napisani) kad god može biti poboljšan. Bilo koji član ekipe, od kad je svako odgovoran za sve kodve.

Tu je puno nalik XP-u. To je fascinantan i veoma različit pristup problemu razvoja softvera. Ja sam zainteresovan njihovom prvim testom, konstantnim testom, i ne idemo dalje dok testovi ne prođu filozofiju. Ako samo većina nas praktikuje takvo agresivnu proveru! Refaktorisanje je takođe odlična ideja, mada ja bih tvrdio da bi trebalo da pokuša da napiše sjajan kod iz početka, što smanjuje broj refaktorisanih potreba.

Nažalost XP je prerastao u biblija- govorenje religije (Biblija, iako je u ovom slučaju ekstremno preogramiranje objasnio, Kent Beck, 2000 Addison- Veslei). Nekolicina pitanje je uverenje, svi pevaju himne "pravljenja i par programiranja". Bilo je mali broj kontra- reformacije idejama. Do sada.

Kao Martina Lutera 95. teza, Met Stivens i Dag Rosenberg nova knjiga "Extreme Programming Refactored", Springer Verlag, NI NI 2003, ISBN 1-59059-096-1).podiže kapuljaču na entuzijazmu i otkriva probleme koji dolaze sa XP-om..

Kao što bi obrazovani hrišćani trebalo da čitaju ono šta je dostupno iz Talmuda (bar ono malo što je prevedeno na engleski) da bismo bolje razumeli važan i interesantan deo našeg sveta, svi obrazovani razvijači bi trebalo da kopaju kroz nekoliko XP tomova. A zatim pročitajte ovu knjigu, koju ću u duhu Agile koristiti akronim XPR.

To je najrazbesnujuća progamerska knjiga koju sam pročitao. Poruka je primetna, ali je rečeno na tako užasan način da je ponekad teško čuti razumne misli od buke. Kao tekst do 40 (Izbrojao sam) dosadnih XP borbenih pesama rasturene slučajno u svakom poglavlju.

Ponekad duhovit, često zabavlja u stilu Narodnog ispitivača ili auto olupina. Iako autori stalno izražavaju žaljenje kako XP revnitelji napadaju svoje sumnjive “Thomase”, XPR blizu- ratne plate protiv XP ličnosti. Čitavo poglavlje omalovažava ličnosti opozicije. Posebna prekomerna upotreba ikona upozorava čitaoca na još jedan zamorni nastup sarkazma.

XPR pažljivo i korektno pokazuje kako su svih 12 od XP praksi u medjusobnoj korelaciji. Baci jednu i cela igra se raspadne kao kula od karata. Testiranje je jedina odbrana od loših specifikacija; par programiranja predstavlja napor da sačuvate kod baze od loše promišljenih, mahnito hakovanih kreacija. Knjiga je korisna samo za ovu analizu. XP ne stresiraju se koliko vitalnog od svih 12 koraka su uspešni u projektu.

Ipak autori, u nekoliko demonstracija propalih XP projekata, predstavljaju (uspesi nisu zabeleženi) priznaju da nijedan od ovih programa nije izgrađena korišćenjem nepromenjenim oblikom XP- a. Sve korišćeni podskupovi! pristup XPR pokazuje da ne može uspeti. Dakle kredibilitet ovih primera trpi.

Traka pametno pod nazivom "Glas iskustva" citira nezadovoljne programere koji koriste (podskupove) XP. Zapravo, mislim da postoje dva citirana programera, oni isti iznova i iznova. Jedan pontifikuje: "Moj osećaj je da XP ne bi otišao visoko uopšte u odnosu na druge raspoložive principe". To može biti istina! Ali nije veoma ubedljiva demonstracija dokaza.

Autorima nedostaje nekoliko drugih argumenata da optuže XP strategiju. Razvojna Agilni zajednica poziva na test strategiju XP "sigurnosnu mrežu", kažu da loš kod koji osigurava nikad ne čini na terenu. Ipak studija za studijom pokazuje da testovi ne ostvaruju sve softvere - u nekim slučajevima manje od polovine! Ja bih tvrdio da testovi bezbednosti na netu hvataju probleme koji procure kroz inspekcione kodove, provere dizajna i pažljiv dizajn. U ugrađenom svetu, automatizovani testovi koji zahtevaju XP, predstavljaju djavolski teško sprovodjenje, jer su naši programi interakuju sa korisnicima i realnim svetom.

XPR potpuno ignoriše ugrađene sisteme, više vole, dobro, a kao i svaki drugi više voli softversku knjigu . Jedan anti- XP argument za ugradjen projekt, je da bez nekog nivoa prednje strane dizajna ne možete ni da odaberete hardver. Da li mi treba 8051 ili Power PC? Da li su podaci stizali ili šiklja na 100k uzoraka u sekundi?

XPR zaključuje sa modifikovanom verzijom XP- a koji je manje ekstreman, logičniji i bolje odgovara firmver razvoju. To poglavlje je najbolji deo knjige XP.

Nemoj pogrešno da me shvatiš, ja verujem da postoje neki programi koji mogu dobro raditi sa XP- om. Primeri uključuju ne- sigurnosne i kritične aplikacije sa rapidnim menjanjem uslova koji jednostavno ne mogu da budu prikovani dole. Veb usluge mi padaju na pamet. Znam jednu grupu koja je bila uspešna sa XP- om u ugrađenom prostoru, kao i brojne druge grupe koje nisu uspele.

Da li bi trebalo da pročitate knjigu? Ako vam sirena pesma XP- a zvoni u ušima, ukoliko par programiranje zvuči kao okruženje u kojem žudite da radite, pročitajte XPR danas. Drugi žele ravnotežu bujice pro- XP reči, koje se nalaze u većini softverskih časopisa, i oni, naći će ovu knjigu takođe interesantnom. Ako bi bio treći, bez revizionističkih tekstova Bitlsa, pa, više ljubaznih, zaslužio bi 5 zvezdica.

XP motivacioni guru, Kent Beck, takođe ima novu knjigu. Test Driven Development (Addison Vesle, 2003, ISBN 0-321-14653-0) fokusira se na testiranje praksi XP- a.

Kupio sam knjigu jer sam bio fasciniran testiranjem. Obično je uradjena kao naknadna misao, a retko pogađa teške uslove. Jedinični testovi su notorno siromašni. Programer vodi svoju novu funkciju kroz najjednostavnije situacije, potpuno ignorišući vremenska pitanja ili granične uslove. Pa naravno funkcija prolazi, samo da nanese tim sa agonijom kada je integrisan u čitav sistem. XP ideja pisanja testova paralelno sa kodom je sasvim briljantana, tek tada ćemo videti sve moguće uslove koji se mogu javiti. Bek tvrdi da se prvo izgrade testovi i onda izvede kod iz testova. To je vrsta izgradnje sveobuhvatnog završnog ispita, a zatim projektovanje klase od toga. Intrigantna ideja.

Ali - šta ako je test pogrešan? Test vođen razvoj (TDD), onda garantuje da će kod biti pogrešan.

Još gore, TDD poziva na zgradnju i najmanje projekte do implementacije u minimalnu funkcionalnost potrebnu da uradi bilo šta. Potrebna funkcija za izračunavanje Fibonacci serije? Prvo, kreiranje najjednostavnijih mogućih testova - u ovom slučaju, proverite da li fibonnaci (0) je 0. Zatim napisati funkciju koja prolazi taj test. Probajte "Courier New""> fibonnaci (1); koji razbija test, zatim dekodirajte i test i funkciju. Ponavljajte dok ne ispravite.

Knjiga pokazuje kako da napravite faktorijel program, koji dovodi do 91. linije koda i 89. ispita! Nakon 125 kompilacija! Zvuk električne sirene, zdravo razumski alarm putovanja.

Agilni zagovornici vole interaktivnu i brzu akciju na ovakav metod. Ali, programiranje nije o igranju Doom- a i Quake- a. Ako ste u potrazi za navalom adrenalina probajte bandži skakanje.

125 kompilacija za trivijalno malo koda nije brzo. Dinamično? Možete se kladiti. Ali, ne brzo.

Čudno, jer ja sumnjam da je Kent Beck superprogrammer, primeri testova dati u knjizi su baš kao oni koje smo videli kod disfunkcionalnih progamera koje su napravili za svoje jedinice testova. Nijedan pregled graničnih stanja, kao priliv faktorijel rutine koja je vezana za proizvodnju još skromnijih i manjih ulaganja.

Kada se pojavi problem on kaže: "Umesto primenjivanja minuta sumnjičavog rasuđivanja, možemo samo da pitamo računar tako što ćemo praviti promene i raditi testove". Jao! Šta ako promena izgleda da radi, ali u stvarnosti maskira neke dublje probleme? Problem je izgleda što zagovara uklanjanje razmišljanja iz programiranja, veoma opasan predlog.

Ovo je brz svet: brza hrana ,vožnja kroz prodavnice alkohola, bankomati na svakom uglu, trenutni email. Ali softveru je potrebna misao. Usporite kada pronađete neki problem. Razmislite duboko.

Razumite implikacije predloženih izmena. Alternativa pravi gotovo nasumične promene.

Slavljeno bilo hakovanje.




Published (Last edited): 19-08-2012 , source: http://www.ganssle.com/articles/deconstructing%20xp.htm