Čovek se uči dok je živ…..

Friday, 09.11.2007 – Zidar

Kada mi je Dejan ponudio da se pridružim “blogovanju”, bio sam veoma uzbuđen i počašćen. Međutim,  kad je trebalo sesti i nešto napisati, mozak mi je potpuno stao. Sve mi se činilo nekako nedovoljno dobro, već viđeno i slično. Ličio sam sâm sebi na pisce iz crno-belih filmova. Pisac sedi za pisaćom mašinom, cigareta u ruci (ja ne pušim, ali takva je slika), gomila izgužvanih papira okolo, pisac frustrirano umeće novi list u mašinu da bi ga odmah izvadio zgužvao i bacio na pod. Onda ustaje i nervozno šeta po sobi, povlači dim, trgne iz boce, oznojeno mu čelo, hladan znoj. Već je ponoć, ideja nikako da naiđe, a rok za predaju rukopisa je sutra u 8 … 

Kad se ideja napokon pojavila, shvatio sam da imam još jedan problem. Nije veliki, ali je neprijatan, “embarassing”, rekli bi englezi. Nisam umeo da koristim naša slova. To je OK možda na forumima, tamo je cilj da se što brže napiše odgovor. Blog je po meni nešto drugo, na malo višem nivou. Blog je dnevnik, a od mnogih dnevnika su nastale knjige, memoari i slične stvari. Ne kažem da će od ovog bloga postati knjiga, ali postovi zaslužuju da barem lepo izgledaju.  Dejan i Srđan ulažu mnogo truda da ovaj sajt izgleda lepo i profesionalno. Pa ko velim, ja mogu bar toliko da se potrudim, da na našem sajtu pišem našim pismom. Uz Srđanovu nesebičnu pomoć, evo naučio sam kako da dobijem naša slova. U privatnom životu naravno koristim i ćirilicu, ali ovo je tehnička materija, pa je nekako prirodno da bude na latinici. Ako ikad budem pisao poeziju u nekom blogu, biće na ćirilici, da se ne zaborave koreni…

Ja po profesiji nisam informatičar, niti programer. Ovo o čemu pričam po forumima, naučio sam silom prilika, trebalo mi je da rešim neke tadašnje profesionalne probleme u svom polju – građevinarstvu. Valjda su inženjeri takva sorta, da uvek moraju da znaju ne samo šta treba da se radi, nego i zašto je to tako i može li to bolje i efikasnije. Za prve pokušaje bio je dovoljan i FORTRAN, pa onda BASIC u raznim varijantama, pa Dbase i Clipper. Onda je došao Windows, pa Access i na kraju SQL, generalno, a konkretno MS SQL. Jedno kratko vreme život je bio lep. Dok se nije pojavila Objektno orijentisana priča i sve što uz to ide, UML, četiri amigosa, ćuse case, klase i Bog te pita šta još. I programeri su prestali da uče relacionu teoriju i SQL. Barem na ovoj strani Atlantika. Ne potpuno, ali se sve svelo na nekoliko stranica u knjizi o recimo C#, onako usput. I tako su ljudi svašta i naučili, onako usput. Naravno, slika na terenu počinje da se menja, na gore. Ono što je veoma jednostavno uraditi u SQL-u, radi se proceduralno, pišu se funkcije, klase i metodi. Ne želimo naravno špageti kod, sve je lepo i strukturno i objektno 🙂 I uglavnom užasno nefleksibilno. Pratimo specifikaciju doslovno, nema prostora za mrdanje levo ili desno. Posledica – za svaku, pa i najmanju izmenu, mora da se menja kod.

Iz ovoga je proizišla nova kategorija – nikada završeni programi, to jest završeni ali sa veoma kratkim vekom trajanja – do prve izmene. Ili po naški, “drži bure vodu dok majstori odu”. Što je najtužnije u celoj priči, razlog nije premalo znanja. Naprotiv, razlog za ovakvo stanje je previše znanja. Programeri su postali veoma dobri u onome što rade – pišu kod.

Onaj ko brzo piše kod, ne može da shvati zašto bi koristio SELECT … GROUP BY kad je njemu očas posla da otvori ADO rekordset, definiše konekcije, ODBC source i sve ostalo, deklariše nekoliko varijabli, protrči par puta kroz rekordset. DO WHILE je čarobna struktura, uživanje je pisati kod koji koristi petlje 🙂

 Pošto rezultat treba mom šefu, onda je mali problem kako to predstaviti. Ništa lakše, napisaćemo .NET aplikacijicu, koja će to da prikaže. Ali nama to treba samo jednom, to je više ad-hoc. O, pa upotrebimo SQL Report Services, napravimo report, postavimo link, damo šefu userid i password i eto mu reporta. Da, ali zašto onda ADO? Nema problema, napisaćemo stored proceduru, sa temp tabelom unutra, pa ćemo odatle da pošaljemo podatke u Report Services. Dobro, ali smo sad sve podigli na nivo interneta, Reporting Services traži bar intranet. Zašto nam sve to treba? O, pa zbog skalabilnosti. Ali meni treba ad-hoc izveštaj, za tačno jednog korisnika. O, pa mi uvek mislimo na budućnost i moguća proširenja sistema (kao da će biti dvesta šefova širom kontinenta koliko iduće nedelje :-).

Dobro, a šta ako šef zatraži neke nove kolone u izveštaju? Ništa zato, samo nam javite par dana ranije šta vam treba, mislim dajte nam specifikaciju i mi ćemo to odraditi, tačno po specifikaciji, ako imamo raspoložive programere u tom mometu. Pa šta vam rade programeri ako nisu raspoloživi? Pa prepravljaju kod pošto vi svaki čas menjate specifikacije.

Verovali ili ne ovo je bila priča iz stvarnog života. A sve što nam je trebalo je bio najprostiji SELECT.. GROUP BY sa možda Cut-Paste u Excel. Znanje i mudrost su očigledno dve različite kategorije.

Kao što rekoh, inženjeri su takva sorta da uvek moraju da znaju ne samo šta treba da se radi, nego i zašto je to tako i može li to bolje i efikasnije. Pitam se, pitam, mora li sve ovako ili može efikasnije  🙂

Post a Comment