- Odo.lv
- Training materials
- Ceļveži
- Katedrāle un tirgus
- Katedrāle un tirgus: Vēl dažas mācības no fetchmail
Prev | Next |
Vēl dažas mācības no fetchmail
Pirms es atgriežos pie programmatūras izstrādes lietām, vajadzētu ņemt vērā vēl dažas mācības no manas fetchmail pieredzes. Netehniskie lasītāji var izlaist šo nodaļu.
rc kontroles faila sintakse iekļauj dažus neobligātus "trokšņa" atslēgvārdus, kurus parsētājs pilnībā ignorē. Ja jums nākas iedziļināties, angļu valodai tuva sintakse ir daudz lasāmāka kā tradicionālie atslēgvārda — vērtības pāri.
Tas sākās kā vēla vakara eksperiments, kad es ievēroju, cik ļoti rc failu saturs sāk atgādināt deklaratīvu minivalodu. (Tāpēc es arī nomainīju oriģinālo popclient "server" atslēgvārdu uz "poll").
Man likās, ja padarīšu šo deklarējošo valodu līdzīgu angļu valodai, to būs vieglāk lietot. Tagad, lai arī es esmu pārliecināts "padari to par valodu" dizaina skolas piekritējs (kā tas ir, piemēram, Emacs, HTML un daudzu datu bāzu dzinējiem), es parasti neesmu liels "English-like" sintakses piekritējs.
Tradicionāli programmētāji sliecas izveidot vadības sintaksi ļoti precīzu, kompaktu un pilnīgi bez jebkādas pārpalicības. Tas ir to laiku mantojums, kad skaitļošanas resursi bija dārgi, un parsēšanai vajadzēja būt pēc iespējas vienkāršai un lētai. Angļu valoda ar apmēram 50% pārpalicību tad likās ļoti nepiemērota.
Bet parasti es neizvēlos angļu valodai līdzīgu sintaksi cita iemesla dēļ. Angļu valodu es minēju tikai kā sliktu piemēru. Lai arī aparatūra un darbības cikli ir lēti, kodolīgums nav vienīgais iemesls. Mūsdienās daudz svarīgāk par lētu valodu datoram, ir tas, lai tā būtu saprotama cilvēkam.
Te nu ir jāuzmanās. Viena lieta ir sarežģītības izmaksas parsēšanas laikā — jūs nevēlēsities paaugstināt kļūdu skaitu un lietotāju apjukumu parsēšanas laikā. Cita lieta ir tā, ka mēģinājumi izveidot angļu valodai līdzīgu sintaksi parasti noved pie stipri izkropļotas "angļu valodas", un tās vienkāršs skaidrojums uz dabīgo valodu ir daudz nesaprotamāks, kā tradicionālas sintakses apraksts. (Jūs varat redzēt šo efektu daudzās t.s. "ceturtās paaudzes" un komerciālo datu bāzu pieprasījumu valodās.)
Šķiet, ka fetchmail pārvaldības sintaksei tas nepiemīt, jo tā valoda ir pamatīgi ierobežota. Tā ir gandrīz vispārīga pielietojuma valoda; lietas tajā nav sarežģītas, līdz ar to ir maza iespēja neskaidrībām, lai domās pārietu no angļu valodas mazumiņa uz aktuālo vadības valodu. Domāju, ka šeit ir vietā vispārīgāka mācība:
16. Kad tava valoda ir praktiski Tjūringa pilna, sintakses cukurs par ļaunu nenāk.
Un vēl viena mācība ir par drošību no neziņas. Daži fetchmail lietotāji lūdza mani pārveidot fetchmail, lai tas glabātu paroles šifrētā rc failā, lai glūniķi tās nevarētu nejauši apskatīt.
Es to nedarīju, jo patiesībā tas aizsardzību nepalielina. Katrs, kas ir ieguvis tiesības izlasīt jūsu rc failu, tik un tā varēs palaist fetchmail tāpat kā jūs — un jūsu paroli pēc tam tik un tā var atšifrēt, izmantojot kodu no fetchmail.
Visu .fetchmailrc paroļu šifrēšana dotu mānīgu drošības sajūtu tiem, kas kārtīgi neaizdomājas. Tāpēc galvenais likums ir:
17. Drošības sistēma ir tikai tik droša, cik drošs ir tās noslēpums. Izvairieties no pseidonoslēpumiem.
Prev | Next |