AcidLog je experiment. Nadesignuj a naprogramuj si ho podľa vlastných predstáv. viac »

Prišiel za mnou kolega programátor. V jednom formulári mal nejaký divný element. Chcel po mne, aby som ho opravil. Letmý pohľad do kódu odhalil, že tam mal jeden zbytočný atribút. Práve ten robil šarapatu. (Pozn.: Pre technicky zdatnejších: Mal tam element SELECT ktorému nastavil size=„2“.)

„Riešenie je jednoduché,“ hovorím mu. „Stačí odstrániť ten atribút.“

„Hmm… a nešlo by to nějak CSSkem?“ on na to.

„Nie.“

„A co JavaScriptem?“

Bol neuveriteľne vytrvalý. Niekoľko minút som mu musel vysvetľovať, prečo je to čo po mne chce blbosť. Prichádzal s čoraz krkolomnejšími a absurdnejšími hackmi, ktorými by sa to nejak dalo ochcať.

„Prečo nemôžeš jednoducho vyhodiť ten atribút?“ opýtal som sa nakoniec.

„No jo. To bych musel přepsat v kódu.“

Od toho momentu som sa s ním o tom odmietal baviť.

Ak si myslíte, že kolega ktorého spomínam je totálne vypatlané hovado… nie je. Verte mi, vôbec nie. Je to šikovný mladý chlapec. Ale je to programátor. A programátori, ako som sa už v praxi veľa krát presvedčil, urobia všetko preto len aby nemuseli niečo zmeniť v kóde.

Kedysi som robil s kamarátom na nejakom PHP projekte. Chcel po mne, aby som napísal JavaScript, ktorý by v copyrighte uviedol aktuálny rok. Dlho mi vysvetľoval, že je to predsa úplne v pohode, že sa tam dá nejaký DIV a že sa mu hodnota nastaví cez innerHTML a že aktuálny rok sa dá zistiť z objektu Date. Keď som sa ho opýtal, prečo tam proste nevloží date(‚Y‘). Dlho sme sa smiali na tom, že bol ochotný venovať niekoľko minút tým aby ma ukecal k nejakému totálnemu nezmyslu než aby to za pár sekúnd urobil najjednoduchším možným spôsobom.

V bývalej práci som napísal skript na automatické checkovanie formulárov pred odoslaním. Na jednej strane ohromná vec. Na druhej strane strašný prúser, pretože sme až po niekoľkých mesiacoch odhalili, že od toho momentu programátori totálne srali na validáciu na strane serveru. Tak som ich začal buzerovať. Vypínal som JavaScripty, posielal som im pri testovaní na server veci ktoré im to zhadzovali a robili nekonzistencie v databáze.

Na bugreport „validácia formulárov nefunguje s vypnutým JavaScript-om, data sa musia validovať na serveri“ mi prišiel zadaný bug: „upraviť validačný JavaScript tak, aby fungoval aj keď je vypnutý JavaScript.“ Opäť zdôrazňujem že nešlo o žiadne lamy, ale o šikovných a chytrých chlapcov.

Ja sám programátor nie som. Čo potrebujem, to si v pohode napíšem. Ale programátor fakt nie som. Na týchto programátorských úletoch sa ohromne bavím, ale nerozumiem im. Vie mi niekto vysvetliť, čo ich vedie k tomu hľadať čo najkomplikovanejšie client-side riešenie, len aby sa vyhli primitívnemu a spoľahlivému server-side riešeniu?

PS: Ako dopadol programátor z úvodného príbehu? Zadal bug ďalšiemu kóderovi, aby nejak upravil ten element tak, aby sa správal akoby nemal atribút size aj keď tam bude mať atribút size. A ešte to zdôvodnil tým, že nechce nič upravovať v kóde. Už sa s ním teda nebavíme dvaja.

Komentáre

Ze života. ;)

 

Strach, ze zmeny v kode je u programatoru uplne normalni. Vypliva to z toho, ze velmi malo programatoru ma velmi dobre povedomi o tom jak jejich kod funguje, ale nemaji absolutne paru o tom jak bude fungovat kdyz se tam neco zmeni.

Problem neni v tom, ze by byl problem neco zmenit ale pri nekvalitnim designu a absenci automatickych testu, muze mit i mala zmena dalekosahle nasledky. Kvalitni design dovoluje na pohled odhalit zavislosti a propojeni. Automaticke testovani rychle odhali dusledky provedenych zmen. Pokud jedno z nich chybi, je programator nejisty a odmitavy k zmenam v necem co „uz prece funguje“.

 

Sorry a jako CSS nebo JS není kód? Podle mě by byl strach hrábnout do tohoto stejně oprávněný jako zmiňovaný strach „hrábnout do kódu“ (ať už si pod tím má člověk představit cokoliv). S člověkem, který by mi něco takovéhleho řekl, bych se nejenom přestal bavit, ale nejspíš bych zařídil, že by se s ním už nikdo nebavil, jelikož bych ho prohodil oknem. Dotyčný (případně i ti ostatní dotyční, co by chtěli zajistit funkčnost javascriptu bez javascriptu a podobně) podle mě není ani tak dalece programátor jako magor.

 

kkl2401: samozrejme mas uplnou pravdu. naprosto s tebou souhlasim

 

Pridaj komentár

Komentáre môžu pridávať iba prihlásení užívatelia.