Kirjuta koodi, mis oleks sõnades loogiline!

Kirjuta koodi, mis oleks sõnades loogiline!

Selline mõte tabas mind kui kirjutasin HTMLi kursuse kolmast osa – kirjuta koodi, mis oleks ka sõnadesse pannes loogiline.

Selle idee on üsnagi lihtne. Võta kood ja seleta endale see lahti. Siin mängivad väga suurt rolli just nimetused. Kõige parem viis oleks vist seda teha läbi kas küsimuste. Näiteks HTMLis võiks endalt küsida, et kas ma paneksin <p> (paragrahvi) elemendi <h1> (pealkirja) elemendi sisse? Või (klassipõhilises) objekt-orienteeritud programmeerimises võid endalt küsida, et kas laua klass võiks olla masina lapsklass? Ma arvan, et mitte.

Miks see hea on?

See on hea sellepärast, et

  1. sa kirjutad koodi, mida sa suudad lahti seletada (sest oled seda juba enne teinud)
  2. sa kirjutad koodi, mis ei ole lihtsalt “kapsad ja pudru”, vaid selles on ka seda common sense.
  3. sinu programmeerimissõnavara laieneb
  4. sinu koodi on kergem mõista
  5. sa muutud koodi kirjutamisel enesekindalamaks (sellest räägin allpool)

Loogilised asjad on erinevad!

Nüüd ma kujutan ette, et paljud inimesed lähevad siin kohal päris hulluks selle pealkirja pärast.

Mis mõttes saavad loogilised asjad olla erinevad? Kas sa, Oliver,  väidad mulle, et laud võib olla masina lapsobjekt?

Ei, ma ei väida seda, laud ei tohiks siiski olla masina lapsobjekt. Vaid ma tahan öelda seda, et on teatud kohti, kus loogika on tõesti täiesti erinev ja seisukohta on väga keeruline võtta.

Võtame näiteks selle, et <a> element võib olla <div> elemendi emaelement ehk kas sa paneksid <a> (lingi) elemendi <div> (sektsiooni) emaelemendiks? Mina vastaks, et ei.

Kui me nüüd aga vaatame teist poolt, siis kui palju (segast) koodi suudab see väikene nipp päästa. Ma ei pea nüüd minema CSSi ja kirjutama, et <div> cursor oleks pointer ja siis omakorda javaScripti, et <div> vajutamisel mine uuele veebilehele.

Tekib ju loogika erinevus. Kui me ei paneks <div> elemendi <a> elemendi sisse oleks üldisemalt loogilisem, aga failisiseselt segasem ja keerulisem. Ja täpselt samamoodi on vastupidi.

Aga mis on selle probleemi lahendus?

Väga lihtne. Kirjuta koodi, mis oleks just sinule loogiline. Nõnda muutudki eneskindlamaks koodi kirjutamisel.

Võib-olla mõned ütlevad, et nemad ei tea, mis on loogiline. Siin tuleb teha praegustele teadmistele vastav otsus. See võib aja jooksul muutuda, aga tol hetkel tegid sa hetke otususe, mis oli sinu arust kõige loogilisem ja kõige parem.

Oliver, ametlikus dokumentatsioonis on kirjas teistmoodi, kui ma mõtlen. Mida ma peaksin tegema?

See on tegelikult ka üks probleem, mille otsa ma komistasin, kui kirjutasin HTML kursuse 3. osa<blockquote> element võib sisaldada (XHTMLis peab sisaldama) <p> elemente, sest <blockquote> elemendis võib olla flow contenti.

Mina isiklikult ei ütleks, et <blockquote> elemendi sisse tuleks panna tekstilõike, sest see pole minu arust loogiline. Nii et siin kohal ma eiran reeglit, mis siis et see on lubatud ja isegi karmimas versioonis kohustuslik. Jällegi kirjuta koodi, mis oleks sulle loogiline ja riku reegleid, kui arvad, et see on vajalik.

Sidenote: nimelt kui ma seda postitust kirjutasin, siis ma ei mõelnud üldse selle asja peale, et tekstilõik ei ole inglise keeles päris see sama, mis eesti keeles. Inglise keeles on tekstilõik ehk paragraph defineeritud järgmiselt: a subdivision of a written composition that consists of one or more sentences ehk tekstilõik võib ka olla ühelauseline. Eesti keeles sellist asja pole – tekstilõik eesti keeles on taandreaga algav tekstiosa (kuni järgmise taandreani). Seega on siin jällegi loogika konflikt. Tunnistan, et inglise definitsiooni järgi on <p> elemendi lisamine <blockquote> elementi minu arust täiesti loogiline tegevus. Millist versiooni soovitaksin jälgida? See on juba sinu otsustada! 😉

Ära sellega ka nüüd hulluks mine, et hakkad rikkuma kõiki reegleid, mis sulle ei tundu loogilised, sest dokumentatsiooni reeglid on ikka paika pandud teatud põhjustega, mitte niisama.

 

Kas sa nõustud selle ideega/mõttega? Anna komentaarides teada 🙂 !

 

Senikaua ole tugev ja kohtume juba järgmistes postitustes,

Tähelepanu eest tänades – Oliver Paljak

P.S! Kui oled huvitatud animatsioonilisest veebilehest, siis võta minuga julgelt ühendust AnsiVeebi kodulehel.

Leave a Reply

Your email address will not be published. Required fields are marked *