Programmēšana: tu to dari nepareizi

Šis raksts ir kā pārdomas uz php|a izlasītu rakstu “Programming: you’re doing it wrong“. Izlasīju un aizdomājos, ka pamatdoma ir ļoti precīza – lai kā mēs programmētu, mēs to darām nepareizi. T.i. – programmējot mēs izvēlamies kādu konkrētu pieeju, bet vēlāk izrādās, ka tā nav bijusi pareiza. Lai gan brīdī kad darbs tapa, pieejai nebija ne vainas. Reizām mēs paši sakām, ka mūsu iepriekšēji darbi ir uztaisīti nepareizi, bet visbiežāk citi to saka par mūsu darbiem vai mēs par citu darbiem.

Klasika. Programmētājs A pārņem programmētāja B kodus tālākai izstrādei. Ko A teiks pēc 30min, kuru laikā būs pētījis kodus? Tas [email protected]#$% B visu tik nejēdzīgi (nepareizi) uztaisījis, ka neko te nevar glābt – viss jāmet ārā un jātaisa pareizā veidā. Ja C pārņems darbu no A, ir liela iespējamība dzirdēt tieši to pašu, ko teica A.

Bet lieta jau ir tāda, ka pats programmēšanas stils bieži vien ir sekundārs. Galvenais ir lai kods dara to, ko tam ir jādara. Nav OOP sliktāks vai labāks par funkcionālo programmēšanu. Nav viens patterns labāks par citu. Ja izmantotā lieta dara to kas jādara, tad uztaisīts ir pareizi – neskatoties uz to kā tieši tas ir izdarīts.

Protams, ir jau arī galējības. Piemēram, produkts strādā, bet tā, ka kaut ko pielikt klāt ir problēmas. Bet arī šie gadījumi nav (stipri lielākajā daļā gadījumu) tāpēc, ka izmantota viena vai otra pieeja programmēšanai. Gluži vienkārši programmētājs (vai pasūtītājs) nav ņēmuši vērā potenciālo produkta attīstību. Savukārt ja kods nestrādā (ir kļūdas izpildē, drošības problēmas utt.), tad tur jau nav runas par to ir vai nav pareizi izdarīts.

Ar visu šo es gribēju teikt, ka bieži vien aizraujamies ar viena ideālā programmēšanas veida meklēšanu. Lasām jaunākās teorijas koda strukturēšanā utt. Bet ar to nevajag aizrauties. Protams, ir jāmācās un jāiet laikam līdzi. Vienīgi der atcerēties, ka pat pēc jaunākā modes kliedziena programmētā lieta būs nepareiza, ja vien viņa nestrādās tā, kā paredzēts.

8 comments

  1. Man jau liekas, ka to ideālo variantu nemeklē. Te nostrādā cilvēka slinkums, bet šoreiz pozitīvā zīmē. Kāpēc rakstīt trīs koda rindas, ja to var arī ar vienu rindu! :) Programmēšana ir kā mode. Tā mainās. Par modi nestrīdas :)

  2. Arī – pat ja programmētājs D ņems un uztaisīs visu cik vien ideāli tagad var, pēc pāris gadiem tāpat programmētājs E to pašu teiks, jo būs iespējams izdomāts vēl pareizāks veids, kā to visu izdarīt :)

  3. Es to daru nepareizi, tu to dari, visi dara nepareizi, bet viss ir kārtībā, ja vien rezultāts strādā, ja?

    Tā tomēr nav universāla atruna, jo dažreiz kods vienkārši ir acīmredzami draņķīgs. Teiksim, OK, kaut kā strādā, bet ir apjomīgs, slikti noformēts, neuzturams, trausls. Tādās reizēs tomēr šķiet, ka vaina ir nevis, ka programmētājs nav ņēmis vērā potenciālo produkta attīstību, bet gan, ka nav aizrāvies lasot jaunākās teorijas koda strukturēšanā utt.

  4. cuu – protams, ka ir arī tādi gadījumi, kad kods ir vienkārši slikts – tieši tevis pieminēto iemeslu dēļ. Nav jau tā pasaule tikai melna vai balta.

    Bet ar koda ‘pareizību’ ir tik pat traki kā ar testēšanas teoriju. Ja testēšanā mēs nekad nevaram pateikt, ka produkts ir pilnībā brīvs no kļūdām, tāpat arī par kodu nevar apgalvot, ka tas ir pareizs. Būs noteikti scenāriji (valodas attīstība, specifikācijas maiņa utt.), kad pareizais kods pēkšņi kļūst nepareizs. Un tādā pavērsienā vabūt ‘strādāšana’ paliek vienīgais punkts kas norāda uz to cik kods ir pareizs… Vispār baigā filozofijas (filosofijas) stunda sanāk.

  5. loti aktuala teema, gluzi vien saskaros ar so problemu :( Un vel viens – cilvekiem ir tik gruti kommentet savu kodu? =\

  6. Atļaušos precizēt: nevis “tu to dari nepareizi”, bet gan “tu to dari neloģiski”. Pārsvarā sanāk skatīt tādus kodus, kur kaut kas ir pagrābts un vnk “apaudzēts” ar f(x) bez jebkādiem readme’s. Ej un saproti kāda tai lapai vispār ir struktūra! :(

  7. Pašam bieži ir, ka pēc gada paskaties uz savu kodu un liekas, ka varēji tak darīt daudz citādāk. Ar pieredzi mainās domāšana. Un, ja pēc n gadiem paskaties uz savu kodu un viss šķiet ideāli, tad tā ir stagnācija. Cits jautājums, ka būs slinkums ko mainīt un viss tiks atstāts, kā ir :)

Atbildēt

Jūsu e-pasta adrese netiks publicēta.

This site uses Akismet to reduce spam. Learn how your comment data is processed.