Programuotojų žargonas

Šitas straipsnis buvo publikuotas NK. Susilaukė vieno kito komentaro, tad čia jau kiek pataisyta 😉

Aš nesu programuotojas. Ir man toli iki jų sugebėjimų (na ir gal truuuuputėlį atvirkščiai).

Taip gavosi, kad mano brolis yra programuotojas ir mokėmės (aš telekomunikacijas mokiausi) mes su juo tame pačiame universitete (2 metų skirtumas). O nesangi brolis gyveno programerių bendrabutyje (II KTU barakas), tai ir aš ten gyvenau. Doom’ą Quake’ą pliekiau, heroes nesupratau, IRC pliurpiau…

Gali būti, kad dar man studentaujant atsirado ir terminas „lameris“. Žinoma, šis terminas buvo dažnai naudojamas apibūdinti mane.

Kaip vartotojai mato programuotojus ir atvirkščiai
Kaip vartotojai mato programuotojus ir atvirkščiai

Nežiūrint tokių baisių įžeidimų – man pasisekė. Aš gyvenau dviejuose pasauliuose: programuotojų ir kitų žmonių. Todėl aš truputį suprantu ir vieną ir kitą. Arba, jeigu tiksliau: prisitaikyti galiu ir viename ir kitame pasaulyje. Ar bent jau trumpam apsimesti, jog esu savas ir būti prie chebros.

Manau, jog dėl to esu visai neprastas HelpDesk’as[1] ir šią savybę sėkmingai išnaudoju darbe.

Aš čia įsivaizduoju, kad mane taip įsivaizduoja. Nei prie tos nei prie anos chebros, bet susišnekėti įmanoma. Čia tą mane galima sukeisti vietomis - gausis tas pats.
Aš čia įsivaizduoju, kad mane taip įsivaizduoja. Nei prie tos nei prie anos chebros, bet susišnekėti įmanoma. Čia tą mane galima sukeisti vietomis - gausis tas pats.

Žodžiu sekasi neblogai. O kadangi turiu šią savybę, tai noriu su jumis pasidalinti savo know-how paaiškindamas jums kaip aš suprantu programuotojų žargoną[2].

***********************************************

 

Programuotojų žargonas

Man neseniai į kompiuterio ekraną papuolė vieno puikaus esto paplatintas puikus programerių blogas, kur viename iš straipsnių yra nagrinėjamas ir paaiškinamas programuotojų žargonas. Šiame puikiame paaiškinime autorius Jeff Atwood atrinko 30 populiariausių ir naudojamų ta pačia prasme sąvokų ir jas paaiškino.

Tačiau paaiškinimai, mano supratimu, vis dar nėra pritaikyti paprastiems pasaulio gyventojams. Todėl aš dar pridėsiu nuo savęs papildomų, mano nuomone reikalingų paaiškinimų.

Taigi, pradedame (jų bus trisdešimt).

1. Joda sąlygos (Yoda Conditions)

Yoda code
Yoda code

 

Būti šitas ir gali nesuprantamas lietuviams, žodžius maišyti kalboje nes sakinyje galima,  vistiek lieka o prasmė reikalinga.

O Joda, tai toks „Žvaigždių karų“ (toks filmas fantastinis senas) personažas, kuris kalbėdamas kaitaliojo žodžius sakinyje, nes buvo ypatingas.

Programuodami programuotojai tiesiog gali sukeisti vietomis tam tikras sąlygas. Tai jie daro dažnai specialiai ir matyt tam, kad galėtų kažką išskirti ir vėliau rasti lengviau arba tiesiog šiaip dėl smagumo.

Pavyzdžiui, kintamasis k turi reikšmę 2, tai vietoje to, jie pasako, kad reikšmė 2 turi kintamąjį k.  Cha-cha!

2. Pokemonų išimčių valdymas (Pokémon Exception Handling)

Pokemonai
Pokemonai

 

Čia be programuotojų pagalbos man jau sunkiau. Čia, matyt, yra kažkokios išimtys, kaip pavyzdžiui koks nors šąla, bąla, sąla, mąžta, glęžta, tręšta ir panašiai. Tik programuotojai rašydami kodą privelia, matyt, kokių nors išimčių ir paskui staiga paaiškėja, kad reikia jas visas sugaudyti, nes išsilakstė kaip kokie pokemonai.

Čia gal kai su vaikais eini į parduotuvę ir jie išsilaksto, o tada, kol vieną gaudai, kitas jau saldainius šlamščia saldainių skyriuje…

O iš tiesų tai:

Pasirodo tie „exceptions“ tai tan visai ne išimtys, kaip išimtys, o tokie ekscepšinai, kur specifiniai. Tai yra programos veikimo sudėtinė dalis, kai įvyksta kažkokie neplanuoti, iki šiol neaprašyti programoje procesai. Ir juos visus reikia sugaudyti

O Pokemonai tai tokie keisti padarai, kurie gyvena savo pasaulyje, o pokemonų treneris turi visus juos surinkti, nes tik tada galės vadintis Pokemonų šeimininku.

Na, o realaus gyvenimo pavyzdys galėtų būti kokio nors renginio organizavimas, kur reikia numatyti vegetarišką meniu, nes gali atvažiuoti vegetarų, kad lauko kavinėje skėtis kiauras, o lija, kad multimedinis projektorius auditorijoje omega neturi applo sąsajos, o auditorijoje sigma per daug karšta…

 

3. Egipto skliausteliai arba papai (Egyptian Brackets)

Egipto dėdė šoka skliaustelius
Egipto dėdė šoka skliaustelius

 

Tai toks specifinis būdas rašyti skliaustelius. Kai mes rašome skliaustelius tekste, tai atidarome (skliaustelius ir uždarome) skliaustelius. O programavimo kalbų sintaksėje kiekvienas skliaustelio tipas turi savo reikšmę. Antai figūriniai skliaustai kartais nurodo kokia turi būti vykdoma komanda, jeigu kokio nors kintamojo reikšmė atitinka tam tikrą sąlygą.

Pavyzdžiui:

Tai dėl to, kad tų sąlygų gali būti visa daugybė ir tam, kad nepasimestų pats programuotojas tarp tų sąlygų, jis skliaustus dėlioja taip, kad būtų labai aišku, kur baigiasi sąlyga, o kur vykdoma funkcija.

Pavadinimas tai kilo iš to kaip atrodo rankos aukščiau esančiame paveikslėlyje.

Antai, neseniai sužinojau, kad kiti programuotojai dar ir pačius figūrinius skliautus vadina papais. Čia štai jums pavyzdys to, kad žmonės dirbdami su savo įrankiais su jais ilgainiui taip susidraugauja, kad net ima vadinti įvairiais vardais.

4. Pasipūtėliška ataskaita (Smug Report)

Pasipūtėliška ataskaita
Pasipūtėliška ataskaita

 

Tokių esu ir pats pateikęs programuotojams.

Čia taip nutinka, kai jau atrodo pačiam, jog viską apie programą ir jos veikimo principą jau žinai ir pastebi kažkokią nu tiesiog sveiku protu nepaaiškinamą nesąmonę ir tada, naudodamas įvairius epitetus, bei vaizduotėje sukurtus vaizdinius, paaiškini programuotojams ką apie juos ir jų programą, bei jų direktorių galvoji.

Dažniausiai po visų tų pasipūtėliškų ataskaitų tenka kiek paraudonuoti ir net pažagsėti. Todėl stengiuosi tokių neberašyti.

Dar būna tokių: narkomaniškoji ataskaita (tokia nesuprantama ir neaiški, kad tas, kuris ją rašė – tikrai vartojo narkotikus), bespringstanti ataskaita (kai ataskaitos rašytojui ši ataskaita buvo paskutinis lašas jo kantrybės taurėje) ir gūžčiojančioji ataskaita (kai parašo, jog kažkas neveikia, bet nesivargina paaiškinti nei kur nei ką darė, nei kas neveikia).

O iš tiesų tai:

Bespringstančia“ pavadinau ataskaitą, kuri yra šiaip jau yra „pergėrusi ataskaita“. Čia tokia ataskaita, kur rašė žmogus išgėręs vienu bokalu ar taurele per daug.

5. Antis (A Duck)

Antis
Antis

 

Tai metodas, kurį taikyti galima visur, kur yra visokių niekadėjų, kurie nieko neveikia, bet stengiasi sudaryti įspūdį, jog pašėlusiai daug ir svarbiai dirba. Tokie tipai sugeba sugadinti ir sužlugdyti bet kokį gerą dalyką.

Antis tai specialiai padaryta pusiau paslėpta klaida, kuri pusiau akivaizdžiai matosi. Tad, kai duodamas dokumentas ar programos kodas kokio nors lygio kokiam nors vadovui, kuris nieko neveikia, bet jaučiasi labai svarbus, tai jis būtinai tą klaidą pastebi ir paliepia pašalinti. Jei tos klaidos nebūtų, tai pašalinti ar pataisyti reiktų ką nors kitką, ko šalinti ar taisyti visai nereikia.

Šis terminas puikiai siejasi su lietuviškąja antimi spaudoje ar kitose žiniasklaidos priemonėse. Bet programeriai šitą fenomeną aiškina taip, kad vienas kūrėjas kurdamas savo žaidimą, vienam iš pagrindinių herojų visur įkišdavo antį, kuri tai ten tai šen pasirodydavo per daug netrukdydama, kad neatrodytų akivaizdžiai. Tai štai, kažkoks prodiuseris gavęs peržiūrėti tą produktą pasakė, kad viskas yra gerai, bet va reikia atsikratyti tos anties.

Kažkadais dar žiūrėjau filmą apie krokodilo odos batus. Tiksliau apie šios dainos (“Crokodile skin shoes”) kūrėją, kuris sukūrė kažkokią dainą ir garso įrašų studijoje pasakė, kad labai nepatrukdytų saksofonas. Tai jo prodiuseris pasakė, kad ne, nereikia. O tada nuėjo pas kažkokią leidybinę firmą, kur irgi kažkoks ten dalyvis pareiškė, jog reikia saksofono partijos ir tada tą veikėją tas gudrus prodiuseris pagyrė ir tas kūrėjas staiga viską suprato…

6. Nutobulinimas arba Supirdolinimas (Refuctoring)

Nutobulinimas, supirdolinimas
Nutobulinimas, supirdolinimas

 

Tai kai yra parašyta gera programa su geru kodu, bet jai pritaikoma daug visokių pataisymų. O tuos pataisymus darant viskas taip supirdolinama, kad niekas nebesupranta kas kur darosi apart paties pirdolintojo ir tada tą kodą tenka perrašyti.

Čia panašiai būna, kai iš kokios nors įmonės išeina kokia nors Irutė, kuri ten viską tvarkė, o daugiau niekas nė neįsivaizduoja kaip ten ką padaryti ir kas daroma, nes tai kas yra dokumentuse – jau seniai ne tiesa.

7. Stipriai prispausdinta (Stringly Typed)

Žodžiai kaip šniūrai
Žodžiai kaip šniūrai

 

Su šiuo man taip pat sunkiau. Galbūt atsiras komentarų, kurie sugebės išversti tai į žmonių kalbą.

Kiek pavyko susiprast, tai būna programuotojų, kurie, vietoje labiau parankaus ir situacijai priimto kintamojo tipo naudoja string. Kas reiškia, jog tai tiesiog žodžiai.

Programavimo kalbose yra naudojama tam tikra sintaksė, pagal kurią kompiuteris arba mašina nusprendžia ką jam reiks daryti. Pavyzdžiui, žodis print galėtų reikšti, jog duotą rezultatą reikia pateikti ekrane. O string tipo duomenys mašinos yra suprantami kaip nulių/vienetų, t.y. duomenų seka, kuri neturi jokios kitos reikšmės – t.y. tiesiog duomenų paketas, kurį kitos vėliau esančios komandos gali liepti mašinai padėti į vieną ar kitą vietą.

Tai va, jeigu koks programuotojas nutartų suprogramuoti kokią nors programą, kuri tikrintų tam tikrą sąlygą, pavyzdžiui, “ar šiandien šviečia saulė?”, tai atsakymai būtų “šaldytuvas” arba “radiatorius” vietoje “taip” arba “ne”.

Nors šis gif’as ir kitu kontekstu, bet tinka ir čia:

Our operations team when a customer is visiting the place (http://devopsreactions.tumblr.com)
Our operations team when a customer is visiting the place (http://devopsreactions.tumblr.com)

8. Heisenbugas (Heisenbug)

Heisenbergo fenomenas - kuo labiau aiškiniesi vieną, tuo neaiškesnis kitas.
Heisenbergo fenomenas - kuo labiau aiškiniesi vieną, tuo neaiškesnis kitas.

 

Werner Heisenberg tai žmogus kartu su kitais žymiais fizikais aprašė vieną iš kvantinių dalelių/bangų savybių. T.y. kuo tiksliau yra žinoma dalelės vieta, tai tuo labiau neaiški kvantinės dalelės masė ar greitis, o kuo tiksliau žinomas greitis ar masė, tai tuo labiau nežinoma kur ji yra. Ši kvantinių dalelių savybė dar vadinama Heisenbergo principu.

Bug arba vabalas tai programos klaida ar tiksliau savybė ar jų rinkinys, kuri (ar kurios) trukdo programai vienaip ar kitaip atlikti jos pradinę paskirtį.

Gaunasi heisenklaida. Tai tokia klaida, kuri išsiduoda, kad yra, nes programai neleidžia atlikti tai, kam ji parašyta, bet kuo labiau bandoma aiškintis kur ta klaida, tuo labiau neaišku kur ji yra.

Taip nutinka, kai viskas būna neteisinga – net išeitinės sąlygos.  Taip neteisinga ir aplinkybės taip sutampa, kad kad tam tikras prielaidas patvirtina, o kitų ne.

Būna taip ir gyvenime – tokios heisen-diskusijos, kai oponuojančios pusės pasakoja viena kitai savo tiesas, jos oponuoja viena kitai, bet oponuoja taip chytrai, kad joms atrodo, jog ne oponuoja o pritaria.  Pavyzdžiui:

– Nu tu šiandien ir atrodai!

– O tu irgi graži…

9. Doktipo dekoracija (Doktype Deocoration)

Papuošimas
Papuošimas

 

Šis žargonas išskiria vieną iš dažnai pasitaikančių konfliktų tarp dizainerių ir programuotojų, kurie turi tą dizainą suprogramuot.

Matyt dizaineriai pateikdami savo darbo rezultatus programuotojams turi jiems papasakoti kur ką jie įsivaizduoja ir pateikia tai dokumentuose.  Tai jie ten parašo kur koks dokumentas ką reiškia, bet pačiame dokumente nesivargina aprašyti jo detalių, kurios labai svarbios programuotojams.

Gyvenimiškas pavyzdys galėtų būti kokia nors dokumentų ir protokolų šūsnis, kurią numeta naujam darbuotojui, su palydėjimu: „skaityk, čia viskas parašyta“.

Pataisykite, jei klystu.

O iš tiesų tai:

Čia šiaip jau yra žodžių žaismas: deklaracija ir dekoracija. Ir čia, kiek supratau iš Aistės paaiškinimo, tai naudojama Interneto svetainėms programuoti: dokumento tipo deklaracija labai svarbi naršyklei, kuri tada „žino“ kaip tą dokumentą vaizduoti. O jei kas nors ten parašo „Now on sale!“, tai virsta tik dekoracija:

 

Doktipo dekoracija
Doktipo dekoracija

10. Džimis (Jimmy)

Vardenis Pavardenis. Arba Džimis.
Vardenis Pavardenis. Arba Džimis.

 

Čia galima būtų vietoje Džimio užrašyti Petrą Petraitį arba Joną jonaitį, arba Vardenį Pavardenį. Nu arba asilą. Palikau Džimį.

O tai toks žmogus, kuris perėmė pareigas iš prieš tai dirbusio darbuotojo. Tai toks žmogus, kuris nežino proceso vystymosi istorijos, bet turi minimalias žinias apie tai ką jam daryti dabar arba rytoj. Džimis nežino, kad istoriškai taip susiklostė, jog norint paspausti va tą mygtuką prieš tai reikia paskambinti duomenų bazių administratoriui, kad šis uždisaiblintų vieną trigerį, kuris, paspaudus tą mygtuką laužia (t.y. ateina piktos kolegės ir verkia, kad dabar nežino ką daryt, nes rytoj sąskaitos klientams turi išeiti) visą sistemą.

Tai geri programuotojai savo programą padaro Jimmy-proof, t.y. atsparią Džimiui. Džimis atėjęs gali spausti bet kurį mygtuką ir trigeris užsidisaiblina automatiškai ir neateina piktos kolegės su rytojaus sąskaitų išėjimo klientams problema.

Kaip padaryti, kad sistema būtų atspari Džimiui? Programuojant reikia paklausti: “O ką jeigu Džimis ateis ir …”.

11. Higso bugsonas (Higgs-Bugson)

Higso bozonas
Higso bozonas

 

Peter Higgs, tai fizikas teoretikas, kuris sugalvojo Higso bozoną. Tai tokia fig… dalelė, kurios ieško mokslininkai pačiame didžiausiame pasaulyje dalelių greitintuve, dar vadiname LHC. Čia šito daikto žmonės bijo, nes jis padarys juodąją skylę, kuri prarys visą Žemę su viskuo kas joje yra.

Tai štai tas Higso bozonas tai dalelė, kurios egzistavimą nuspėjo tas pats fizikas teoretikas Peteris. Ta dalelė, kiek aš suprantu, yra masės ir gravitacijos paaiškinimas, kurio ieško intensyviai mokslininkai. Jūs sakysite, kad jums ir taip aišku kas ta masė ir kad žemė traukia prie savęs daiktus, bet, štai mokslininkams ne visai vis dar aišku…

O apie bug jau paaiškinau.

Tai štai, tai tokia klaida ar programos savybė, trukdanti normaliai programos veiklai, bet ji tokia neaiški ir nesuprantama, kad niekas specialiai jos atkurti nesugeba. Nutinka tai retkarčiais, kai vartotojai, kurie savo pasipūtėliškom ataskaitom nieko aiškaus neparašo, pati programa veikdama lyg ir duoda kažkokius neaiškius simptomus, bet visiškai neaišku ar ta klaida yra ir kas jos buvimą sąlygoja.

Gyvenime tai kaip paslėptas automobilio gedimas: kol vienas važiuoji tai lyg ir girdi kažkokį pašalinį triukšmą variklyje, o servise, žinoma, niekas nieko negirdi ir viskas būna gerai.

12. Nopingas (Nopping)

Medinukas nopina
Medinukas nopina

 

Ta sulietuvinimo galūnė -as šiam žodžiui suteikia savotiško nešvarumo. Negaliu paaiškinti kodėl… Bet pats žodis tai iš asemblerio[3] operacijos NOP (No-operation). T.y. operacijos, kuri nedaro jokios operacijos[4] ir kito žodžio naping – snaudžia (angliškai).

Lietuviškai dar mes tai vadiname snaudimą atviromis akimis: kai regis matai kažką, bet ir nematai, o pažadintas iš tokios būsenos negali pasakyti ką čia ką tik galvojai.

Nieko šmaikštesnio ar aiškesnio, kaip šitas paaiškinimas nesugalvoju: “Stanislav sat watching the screensaver and nopped for a while.” (Stanislovas sėdėdamas ir žiūrėdamas į ekrano užsklandą panopino mažumėlę).

O iš tiesų tai:

NOP‘ai reikalingi, pasirodo, tam, kad tiesiog užtempti šiek tiek laiko, kad susitvarkytų atmintis ir panašiai.

 

13. Vienaragiškai (Unicorny)

Vienaragiukas su vienu ragiuku.
Vienaragiukas su vienu ragiuku.

 

Vienaragis tai mitinė būtybė, kuri virtualioje erdvėje įgavo dar vieną mitiškumo atspalvį. Panašiai kaip Chuck Norris.

Šiuo būdvardžiu apibūdinamos būsimos programos ar projekto savybės. Bet tai daroma taip anksti, tai yra taip per anksti, kai dar visiškai neaišku nei koks bus projektas, nei kokie jo rezultatai, nei ar apskritai tas projektas bus įgyvendintas.

Pavyzdžiui, Vilniaus gondolos bus pailgos agurko formos ir spindės Vilniaus padangėje ryškiomis spalvomis su Vilniaus taksi numerių reklama. Tai va tos visos spalvos, formos ir numeriai yra labai vienaragiški.

14. Bakchlavos kodas (Baklava Code)

Bakchlava
Bakchlava

 

Bakchlava, tai toks turkiškas desertas iš daugybės plonyčių tešlos sluoksnių suteptų medumi.

Gi programos kode taip pat gali būti daug sluoksnių. Štai deserte tų sluoksnių plonumas yra labai skanus, bet programoje tai daug naudos neduoda.

Neduoda, nes norint analizuoti jį – kiekvieną sluoksnį reikia dėtis galvon ir atsiminti analizuojant sekantį, o kai tų sluoksnių prisidaro daug, tai medus tarp tų sluoksnių persisunkia. Tai yra tie sluoksniai ima lietis ir tada sugriūva galvoje visa struktūra ir viską reikia pradėti iš naujo arba spjauti į tą purviną reikalą.

Tai gali iliustruoti ir šis paveiksliukas:

Debugging recursing code (iš http://devopsreactions.tumblr.com/)
Debugging recursing code (iš http://devopsreactions.tumblr.com/)

15. Hindenbugas (Hindenbug)

Hindenburgo ruoniastrofa
Hindenburgo ruoniastrofa

 

Tai toks bug‘as, kuris sunaikina visus duomenis ir neįmanoma to atstatyti.

Hindenburgo katastrofa, tai tokia katastrofa, kurios metu susprogo didžiulis vokiečių dirižablis, kuris buvo pilnas vandenilio dujų ir, žinoma, sprogo taip, kad maža nepasirodė niekam.

Prisimenant pastarųjų savaičių įvykius blogosferoje ir tų įvykių poveikį kai kuriems žmonėms, tai šį bug’ą galima būtų pavadinti ir vėsastrofa, vėsavabalas.

O jei pabandytumėm sutapatinti su kuo nors, kas baisaus įvyko Lietuvoje tai galėtumėm tai pavadinti ribentromolotostrofa, t.y. ribentromolotovabugas.

16. Baimės motyvacija (Fear Driven Development)

Baisusis Trumpas
Baisusis Trumpas

 

Tai tokia motyvacija, kai dirbama dėl to, kad bijoma jog atleis.  To pasekmės yra vaizdo sudarymas, jog dirbama, o iš tiesų nieko nedaroma – kas dažnai taikoma valdiškose įstaigose.  Tokios motyvacijos pasekmių yra ir daugiau, bet tai jau atskiro posto tema.

Šitas būdas taikomas gan dažnai Lietuvoje ir programavimas ar programeriai čia bendroje krūvoje. Ypač išpopuliarėjo ekonominės recesijos metu.

17. Hidros kodas (Hydra Code)

Hidra
Hidra

 

Hidra, tai mitinė būtybė, kuriai nukirtus galvą, jos vietoje išauga dvi. Tai kai programoje matoma aiški klaida, ji pataisoma, bet pasekmėje gaunamos dar dvi problemos. Tokį kodą taisyti neapsimoka – tenka perrašyti.

O gyvenime čia, matyt, taip bus su mūsų švietimo sistema. Vieną vietą bando taisyti – atsiranda dar daugiau problemų.

18. Precedento teisės fenomenas (Common Law Feature)

Precedentinė teisė, tai kai kokiame nors teisme įvyksta precedentas, tai tas teismo precedentas taikomas ir kitose bylose, t.y. sprendimas priimamas panašus į prieš tai buvusį.

Tai programos bug‘as, kuris programoje taip seniai ir vartotojai prie jo taip pripratę, kad tas kreivas veikimas yra jau reikalaujamas vartotojų ir jo egzistavimas turi būti palaikomas (prižiūrimas, kad veiktų).

Čia labiau gal juokais[5] galima būtų palyginti su mokamų programų valdiškose įstaigose naudojimu: visi priprato prie jų ir keisti į pigesnes, bet atliekančias tas pačias funkcijas, deja, niekas nenori ir tenka atnaujinti tuos pačius brangius programų paketus, o pinigus atiduoti užsieniečiams.

O iš tiesų tai:

Čia, pasirodo, neteisingai interpretavau „common law“ reiškinį. Čia jis, pasirodo, visai tiesiogiai susijęs su savo reikšme: žmonės pakankamai ilgai gyvenantys kartu įgauna vedusiųjų statusą. Save paaiškinantis pavadinimas.

 

19. Lochneso bugas (Loch Ness Monster Bug)

Loch Ness'o pabaisa
Loch Ness'o pabaisa

 

Lochneso pabaisa, tai kažkokiame dideliame ežere gyvenanti pabaisa, kuri yra daugiau mitologinė nei reali. O jeigu ją kas ir matė tai koks vienas ar du lunatikai.

Tai Lochneso bugo atkurti niekaip neįmanoma, o jį pastebėjo ir jo pasekmes aprašė tik vienas asmuo, kuris to įrodyti vėl nebegali.

Na, galbūt tai būtų įmanoma sulyginti su Merkinės piramidės apsireiškimais jos statytojui.

20. Ninzių komentarai (Ninja Comments)

Ninzių komentarai
Ninzių komentarai

 

Tai tokie komentarai kurių nesimato. Tai tokia ironija. Komentarų nėra – reiškia tai yra ninzių komentarai. Jie yra tik jų nesimato.

Aš kiek suprantu tai programuojant kodą komentarai yra ypatingai svarbūs ne tik kitam programuotojui, kuris galbūt sumanys analizuoti ką pridirbo pirmasis, bet ir tam pačiam programuotojui turi padėti nepasimesti kas kur.

Tvarkinga dokumentacija, ar tiksliau meta-duomenys yra būtini, jei norime pasiekti bent jau šiokio tokio suderinamumo arba ilgesnio išlikimo.

Realiame gyvenime, manau, aiškinti nebūtina kaip svarbūs yra dokumentai. Retkarčiais žmogaus dokumentai būna svarbesni už patį žmogų.

Reviewing undocumented code (iš http://devopsreactions.tumblr.com)
Reviewing undocumented code (iš http://devopsreactions.tumblr.com)

21. Smurfinių pavadinimų konvencija (Smurf Naming Convension)

Smurfas
Smurfas

 

Nežinau kaip jūs, bet aš smurfus mačiau. Per TVP1. Tai animacinis filmas kurio pagalba išmokau lenkų kalbą. Dar man padėjo “Dinasty” ir, žinoma “Liolikas ir Bolekas“.

Bet čia ne šiaip apie multikus. O apie tuos žalius nykštukus. Nesu tikras, nes nepamenu, bet jų pasaulyje viskas buvo smurfiška: smurfalopšys, smurfauogos, smurfakūdikis ir panašiai.

Panašu, jog Smurfai turi pavadinimų kūrimo konvensiją pagal kurią visur prideda žodį “-smurf-“. Tai štai programuotojai retkarčiais irgi savo funkcijas, kurios gali būti sudedamosiomis programos dalimis pavadina taip, kad pirmas žodis visada tas pats, o skiriasi tik pabaiga:

  • SmurfOperatoriausApžvalga, SmurfOperacijųKontroleris, SmurfIstoriniaiDuomenys ir pan.

Realiame gyvenime tokio smurfiško pavadinimų galvojimo matau valdiškose įstaigose, kur prie pavadinimo prideda “Lietuvos”, “Valstybinė” ir dar ten kažko. Ir kur reikia ir kur nereikia.

22. Protodukcija (Protoduction)

Prototipas produkcijoj
Prototipas produkcijoj

 

Kai prototipas pereina į produkciją.

23. Pasitarimas su protingu žmogumi (Rubber Ducking)

Lėlės tariasi su gumine antimi
Lėlės tariasi su gumine antimi

 

Tai nutinka tada, kai žmogus (na, kad ir aš pats) įsiveržia pas kolegas ir garsiai paklausia ko nors, tada kiek luktelėjęs į ją pats ir atsako. Padėkoja ir išeina.

Mes tai vadiname pasitarimu su protingu žmogumi (savimi pačiu).  Na, o guminė antis irgi gali būti ta būtybė, kuri padės jums išspręsti problemą. Jums tereikia jai garsiai pasakyti kas negerai ir pačiam problemą išspręsti.

Gyvenime su šiuo fenomenu pats susiduriu gan dažnai, tikiuosi kad ir jūs. Tikiuosi, jog taip pat suprantate, jog tai yra ne vien tam kad pasijuokti. Vieną iš šio fenomeno aspektų gan gerai išnaudoja ir pasaulyje stipriai plintanti TB metodologija.

24. Bananas bananas bananas (Banana Banana Banana)

Skaitmeninis bananas
Skaitmeninis bananas

 

Dėl šito irgi abejoju. Bet tiek kiek pavyko suprasti, tai bananas bananas bananas apibrėžia tiesiog žodžių seką (t.y. string’ą), kuris naudojamas tada, kai programuotojas nenori komentuoti savo aprašytos funkcijos, o visokie klaidų tikrinimo įrankiai reikalauja, kad ten būtų komentarai.

Čia, matyt, pasekmė yra tų pačių ninzių komentarų, kurių labai nemėgsta programuotojų darbo rezultato gavėjai. Tai tie gavėjai paprašė kitų programuotojų suprogramuoti įrankį, kuris tam tikrose vietose tiesiog reikalautų komentarų. Tad, tie pirmieji, kurie mėgsta ninzių komentarus (arba ten tų komentarų visai nereikia) rašo: bananas bananas bananas.

Pamenu studijų laikais turėjome tokias filosofijos (o gal ir kito dalyko) paskaitas, tai ten reikėjo kursinius rašyti. Dėstytoja  buvo labai gudri ir buvo susigalvojusi sau haką[6] – tikrindavo tik įžangą ir išvadas, t.y. pradžią ir pabaigą. Keletas studentų tą sužinojo ir padarė kontr-haką: parašė įžangą ir išvadas, o į vidurį nukopijavo ir įklijavo pasaką apie Raudonkepuraitę. Gandai sklido, kad gavo gerus pažymius.

Tai štai, ta Raudonkepuraitė ir yra bananas bananas bananas.

O iš tiesų tai:

Čia programuotoja Aistė sako, jog yra paprasčiau: tiesiog yra vietų, kur komentarai būtini, bet dar nesuspėjo (neturėjo laiko/noro atsitraukti nuo kito galvojimo) programuotojas sugalvoti tinkamų, tai įrašo, kad bus komentarai vėliau. 

 

25. Bikrementas (Bicrement)

Plius du
Plius du

 

Dar vienas mistinis dalykas, kurį suprasti, o ir paaiškinti sunku. Čia gali būti taip, kad programuotojai programuodami savo programas labai dažnai naudoja visokius pagalbinius ar nepagalbinius kintamuosius, prie kurių dažnai prideda reikšmę 2.

Gyvenime, prisimenu, tai liepdavo dar mokykloje išsiskaičiuoti kas antrais. O tada kas antras eidavo į vieną komandą, o kas pirmas – į kitą. Tai tie, kur vienoje komandoje yra bikrementai, o kur kitoje solkrementai gal kokie…

26. Šlamštdarbis (Reality 101 Failure)

Gerai veikiantis niekam nereikalingas
Gerai veikiantis niekam nereikalingas

 

Tai puikiai veikianti programa. Veikianti taip kaip numatyta, bet kai jau įdiegta į procesą, paaiškėja, kad problema buvo suprasta neteisingai ir tas geras programos veikimas yra visiškai nereikalingas.

Gyvenime taip būna, kad kai imi taupyti energiją šilumos gamybai kur nors Vilniaus daugiabutyje, paaiškėja, kad taupyti energiją Vilniaus daugiabutyje yra šlamštarbis, nes VE tada tiesiog padidina sąskaitas už bendrųjų patalpų šildymą. Tai nors energija šilumos palaikymui bute yra sutaupoma, bet naudos taupytojui iš to jokios, nes problema kitur.

27. Piktos merginos bugas (Mad Girlfriend Bug)

Supykusi mergina
Supykusi mergina

 

Tai gali būti ir piktos žmonos, ir piktos meilužės, o ir šiaip piktos moters bugas. Tai toks bugas, kai matosi, jog kažkas negerai, bet programa sako, kad viskas gerai.

28. Megamotas (Megamoth)

Megamotas
Megamotas

 

Kiekviena programa susideda iš smulkesnių dalių, kurios vykdo smulkesnes funkcijas. Tai yra problema išskaidoma į daug mažesnių, tos mažesnės išsprendžiamos ir šitaip išsprendžiama didžioji problema:

Tai yra pasaka apie voverę, kuri vieną po kito nešė riešutus į savo drevę ir šitaip rūpinosi savimi žiemą. T.y. didžiulė problema – žiema ir maisto ieškojimas žiemą buvo išspręsta į drevę nešant po vieną riešutėlį.

Tai štai, megamotas yra panašiai, bet atvirkščiai. Tai yra programos kodo dalis, kuri sprendžia visas keliamas problemas, todėl labai sudėtingas ir sunkiai analizuojamas[7].

Na, o gyvenime dažnai susiduriame su regis neišsprendžiamomis problemomis, nes susijaudiname ir atrodo, jog nieko gero mūsų gyvenime daugiau nutikti nebegali, nes yra visiška katastrofa. Bet kai problemą imi analizuoti, skaidyti į sudedamąsias dalis – ji neatrodo tokia baisi. Kiek esu girdėjęs ir matęs, tai pats geriausias metodas įvairių problemų sprendimui yra TOC.

29. Stervos kodas (Hooker Code)

Viena iš tų lėlių sterva
Viena iš tų lėlių sterva

 

Būna programa, kuri veikia taip specifiškai, kad kartais nulūžta kompiuteris (na, arba sistema). Sakoma, kad toje programoje, matyt, yra užsilikęs stervos kodas, kuris priverčia tą programą taip bjauriai elgtis.

Čia prisiminiau vieną filmą, kuris galėtų paaiškinti daugiau apie tai ką blogo gali padaryti stervos kodas:

30. Jenga kodas (Jenga Code)

Jenga - puikus žaidimas
Jenga - puikus žaidimas

 

Jenga tai toks žaidimas, kai sudėliojamos kaladėlės ir reikia paeiliui traukti kaladėlę iš žemiau negu pirmi sluoksniai. Tam, kuriam sugriūna bokštas, reikia atlikti kokią nors užduotį. Geras žaidimas – geri prisiminimai…

Na, o Jengos kodas, tai kai bandoma pataisyti kokią nors smulkmeną, bet tada staiga viskas griūna.

***********************************************

 

Nesu tikras ar perskaitėte viską iki galo, bet man ši pramoga (skaitant angliškąjį variantą) labai patiko.

Tikiuosi, kad čia visko nesupirdolinau ir per stipriai neprispausdinau.

Tikiuosi, jog programuotojai jums dabar atrodys kiek žmoniškesni, nors ir keistuoliai, kuriems nerūpi paprasto žmogaus dalykai.

O jeigu dar kuriam pasakysite, kad sugaudytų savo kode pokemonus, nes jo antys jums nedaro įspūdžio – netgi atvirkščiai, priverčia noopinti, kai tiek daug vienaragiškų metodų. Lai dabar gaudo stervas pats, kol nenutiko hindenbugas, nes jo bananais paslėpti ninzių komentarai tik jam pačiam suprantami, o į smurfinių pavadinimų konvenciją irgi tegul daugiau nebe važiuoja. Kitaip tariant pritaikykite baimės motyvaciją dar pridurdami, jog jo megamotiškas šlamštas niekada netaps protodukcija. Kavos jūs atsigerti nueisite o, jis su kol tarsis žmogumi protingu.

Tai jis jūsų greičiausiai nesupras vistiek.

_______________

[1]– Tai pagalbos stalas. Pagalbos stalas tai ta vieta, kur žmonės ateina su problemomis ir jas sprendžia. Pavyzdžiui: jums neveikia internetas ir jūs skambinate savo tiekėjui į jo HelpDesk’ą, kuris tuo pačiu dar yra Calling Center’is ir ten esančios merginos bei vyrukai jūsų problemos nesupranta, o jūs nesuprantate jų problemos, o tada niekas nesupranta kame problema ir jūsų problemos išsisprendžia, kai pakeičiate interneto tiekėją ir jei kam reikia pagalbos keičiant interneto ar televizijos tiekėją, tai kreipkitės į mane 😉

[2]– Visi turėtumėte žinoti tą anekdotą apie tai kaip programuotojas troleibuse pardavinėjo savo mamą. Tai buvo juokinga kokias 1998 metais.

[3]– Asembleris tai toks dalykas, kuris gavęs iš programos instrukcijas paverčia jas mašininėmis instrukcijomis. T.y. reikalingus žodžius programoje paverčia elektroninių signalų seka, kurios yra “suprantamos” įrenginiui (pavyzdžiui monitoriui), kuris gavęs tuos signalus (galimai per įvairius moduliatorius/tarpininkus) pakeičia savo savybes (pavyzdžiui, monitorius pakeičia tam tikroje vietoje esančių skystųjų kristalų poliarizaciją ir priklausomai nuo komandos monitoriuje sužimba ryškiau arba blankiau taškas).

[4]– Kam reikia operacijos kuri nedaro jokios operacijos? Aš nežinau. Bet matyt reikia. Gal, pavyzdžiui, vien tam, kad žinoti, jog įrenginys veikia ir laukia komandos.

[5]– Juokais, nes bandančius kalbėti apie tai rimtai išvadina fanatikais ir jų bijo.

[6]– tai nuo žodžio „hack“ arba „nulaužti“, arba apeiti standartinį procesą ir gauti rezultatą trumpesniu būdu negu įprasta.

[7]– megamotui tikriausiai yra naudojamas bahkchlavos kodas, o bandymai megamote ištaisyti kokią nors klaidą gali virsti ribentromolotostrofa.