First, solve the problem. Then, write the code.
Mēs izvēlamies mūsdienīgas, pazīstamas un labi dokumentētas tehnoloģijas, kas atvieglo projekta izstrādi un uzturēšanu. Dodam priekšroku atvērtā koda (open source) rīkiem un to piedāvātajai elastībai.
Šīs sadaļas mērķis ir ne tikai uzskaitīt mūsu lietotās tehnoloģijas, bet arī sniegt lasītājam nelielu priekšstatu par tām. Kaut gan profesionāļi tās lieto, par daudzām no šīm tehnoloģijām aprakstu latviešu valodā ir diezgan grūti atrast. Cerams, šis pārskats palīdzēs jums saprast, kas slēpjas aiz šiem jēdzieniem un neuzskatīt to par nesaprotamu cipargalvu valodu.
Klienta puse ir tas, kas notiek apmeklētāja pārlūkā. Tas ietver gan informācijas attēlošanu un noformējumu, gan arī dažādas izmaiņas tajā, dinamisku un interaktīvu uzvedību. Pamatu pamats, protams, ir HTML+CSS+JavaScript, taču veiksmīgākam un efektīvākam darbam reizēm ir noderīgi izmantot arī dažādus satvarus un bibliotēkas.
Ikkatras tīmekļa lapas saturs tiek pasniegts ar HTML birku (tagu) palīdzību, kas norāda pārlūkprogrammai, kurš elements ir virsraksts, kur ir teksts, kādu attēlu iekļaut un pasniedz visu pārējo redzamo un neredzamo informāciju pārlūkam saprotamā veidā.
Mēs radām modernu kodu un izmantojam HTML dzīvo versiju — HTML5.
<figure class=section__figure> <HtmlSample /> <figcaption class=section__figcaption> Šīs ilustrācijas HTML </figcaption> </figure>
CSS ir valoda, kurā apraksta lappuses noformējumu. Tajā aprakstā visu no izmantojamā burtveidola un simbolu izmēriem, līdz lapas izkārtojumam.
Ar šiem stila likumiem var ne tikai definēt statisku izskatu, bet arī tā izmainīšanos mijiedarbības gadījumā (piemēram, lietotājam uzvirzot peles kursoru uz elementa). Noteiktos ietvaros CSS ļauj arī veidot animācijas un ar CSS veidotās animācijas parasti izmanto klienta datora resursus efektīvāk nekā, piemēram, ar JavaScript iekustinātie un pārveidotie elementi.
Mūsdienās CSS standartam nav vienas versijas, tas sadalīts moduļos. Piemēram, CSS teksta un krāsu moduļiem ir jau ceturtā versija, izkārtojuma režģim otrā, bet animācijām — pirmā.
Koda kvalitātes nodrošināšanai mēs parasti pieturamies pie BEM metodoloģijas un 7-1 arhitektūras.
Efektīvākai CSS koda izstrādei un vienkāršākai uzturēšanai ļoti noder CSS priekšprocesori, kuri no sistemātiskākas un īsākas valodas sagatavo CSS kodu. Mēs savā darbā izmantojam SASS un LESS.
Vēl ātrākai izstrādei var izmantot arī CSS satvarus, kas dod gan atspēriena punktu CSS kodam, gan veselu lērumu jau gatavo elementu: paneļus, pogas, formas, kartiņas utt. Parasti šos satvarus izmantojam iekšējām sistēmām, kur dizaina oriģinalitātei nav nozīmes, bet reizēm tie ir izdevīgi arī kā pamats publiskam projektam, ja tas nav pārāk liels. Visbiežāk izmantojam Bootstrap vai Bulma.
JavaScript ir valoda, kurā var rakstīt klienta pusē (t.i. pārlūkprogrammā) izpildāmas instrukcijas. Tieši JavaScript ir tas, kas padara elementus interaktīvus un ļauj lietotnē veikt dažādas darbības, nepārlādējot visu lapu. Sava interaktivitāte ir arī HTML (piem. formas) un CSS (piem. reaģēšana uz kursora pozīciju), taču JavaScript atšķiras ar to, ka spēj reaģēt uz praktiski jebkādu lietotāja darbību lapā, labot lapas saturu un tā kodā iespējams paredzēt tieši vajadzīgo loģiku darbību veikšanai.
Arī bieži piesauktais AJAX ir viena no JS tehnikām—informācijas apmaiņa ar serveri, nepārlādējot lapu. Tas ļauj, piemēram, dinamiski pielāgot saskarnes elementus un sniegt lietotājiem rezultātus jau meklējamā vārda rakstīšanas laikā. Līdzīgā pJAX tehnika ir visa lapas satura nomaiņa, nepārlādējot pašu lapu un nemainīgos elementus (piem. izvēlni).
Mūsdienās JS tiek izmantots arī servera pusē, ir arī sistēmas, kur visa programmēšana notiek tikai JS.
jQuery — nu jau klasiskais rīks ar kuru ērti un ātri padarīt vietni dinamisku nav sveša arī mums. jQuery ir JavaScript bibliotēka, kas atvieglo manipulācijas ar lapas saturu. To izmantojam vidējas sarežģītības saskarnēs, kur nepieciešamā interaktivitāte nav tik ērti realizējama ar pliku JavaScript, bet projekts neprasa vesela JS satvara ieviešanu.
Projektos, kur nepieciešama sarežģītāka lietotāja saskarne, izmantojam satvarus Vue.js un Svelte/Sapper. Tie ļauj no komponentēm veidot interaktīvas saskarnes un spēcīgās lietotnes, tai skaitā progresīvās tīmekļa lietotnes (PWA—progressive web applications), ko var instalēt lietotāja ierīcēs un vienas lapas lietotnes (SPA—single page applications), kurās saturs tiek parādīts atkārtoti izmantojot to pašu ietvaru.
Arī šī vietne ir izstrādāta Sapper satvarā uz Svelte bāzes un ir gan SPA, gan PWA.
Pārlūks ir vietnes apmeklētāja datorā esoša prgramma, kas attēlo vietni atbilstoši kodam. Pārlūkus mēs neizstrādājam un neuzturam, taču tie ir neatņemama mūsu darba sastāvdaļa. Diemžēl, apmeklētājs, kas izmanto Internet Explorer 7, nespēs izmantot daudzas no mūsdienu tīmekļa iespējām.
Taču arī mūsdienu pārlūki vienu un to pašu kodu interpretē dažādi. Pārlūkiem, kas izmanto atšķirīgus dzinējus(Gecko, Blink, WebKit, Trident/EdgeHTML), pat mēdz atšķirties valoda, lai veiktu to pašu darbību.
Mēs parasti garantējam korektu vietnes darbu un attēlošanu Firefox, Chrome, Edge, Safari pārlūku aktuālajās versijās un to mobilajos analogos. Taču paši izmantojam un projektus pārbaudām arī tādos pārlūkos kā Vivaldi, Brave, Tor, Opera.
Jebkurai vietnei nepieciešams to pasniedzošs serveris, lai klientiem tā būtu pieejama. Vairums mūsu izstrādāto projektu ir dinamiski, tāpēc papildus HTTP serverim izmantojam arī datubāzes, skriptu valodas un citus rīkus, kas klientam nav tieši pieejami, bet aiz priekškara sagatavo atrādāmo saturu.
Mitināšanai parasti iesakām Linux serverus (paši lietojam Ubuntu Server) ar Apache vai Nginx programmatūru. Parasti izvēlamies un arī klientiem iesakām MariaDB vai MySQL datubāzes. Atbilstoši projektu vajadzībām esam strādājuši arī ar daudzām citām sistēmām, piemēram, Node.js serveriem, Oracle un Postgres datu bāžu pārvaldības sistēmām.
PHP ir programmēšanas valoda, kurā rakstītos skriptus izpilda tīmekļa serveris. Tā joprojām ir vispopulārākā valoda šai nozarē un tiek lēsts, ka tā darbina veselus 79% tīmekļa vietņu.
PHP mēs izmantojam, lai no datiem un šabloniem sagatavotu apmeklētājam rādāmo saturu. Tāpat to izmantojam arī, lai atbildētu uz dinamiskiem pieprasījumiem (piemēram, lietotājs veic labojumu kādā tekstā, pievieno komentāru), kur informācija tiek nosūtīta un/vai saņemta bez lapas pārlādes, kā arī automatizētiem uzdevumiem un starpsistēmu saziņai.
Tieši ar PHP parasti veicam vislielāko darba daļu, jo informācijas sistēmās lielākā darba daļa ir loģika un automatizācija, ko veic serveris.
Laravel ir PHP satvars — programmatūras platforma, kas veicina strukturētu koda organizāciju un pieprasījumu apstrādi, kā arī sniedz daudzas jau gatavas komponentes, kas paātrina projektu izstrādi. Mūsdienās tas ir pārliecinoši populārākais PHP satvars un, izmantojot to korekti, lietotnes var ātri izstrādāt, viegli uzturēt un droši paplašināt.
Neatņemama informācijas sistēmu sastāvdaļa ir datu bāze. Parasti izmantojam relāciju datubāzes, kurās atsevišķās tabulās esošie dati ir savstarpēji saistīti (piemēram, darbiniekiem ir piesaistīti amati no amatu saraksta).
Parasti izmantojam atvērtā koda relāciju datubāžu vadības sistēmas MariaDB un MySQL.
Nebaidāmies izmantot arī nestrukturētus datus, ko JSON formātā saglabājam vai nu atsevišķā NoSQL (ne-relāciju) datubāzē, vai tur pat relāciju datubāzē pie atbilstošā ieraksta. Šādos gadījumos izmantojam arī PostgreSQL un redis datubāzes.
Arī serveris, kas sagatavo resursus, izsauc PHP koda izpildi un nosūta atbildi klientam ir būtiska sistēmas sastāvdaļa.
Paši populārākie tīmekļa serveri ir Nginx un Apache. Arī mēs parasti izmantojam tieši kādu no tiem.
Papildus mēdzam atsevišķos projektos (piemēram, šajā vietnē) eksperimentēt ar Node.js, kas servera pusē strādā ar JavaScript kodu.
Vienkāršu projektu mitināšanai iesakām statisku vietņu mitinātājus kā GitHub Pages un dalīto hostingu, kur izmantojam Area IT (sadarbības saite). Lielākiem projektiem iesakām individuālu mitināšanu klienta infrastruktūrā vai īrētos privātajos serveros, kurus paši parasti ņemam pie Vultr un DigitalOcean.
Gandrīz vienmēr izmantojam virtuālus serverus, kas atvieglo tehnisko izmaiņu veikšanu, mainoties biznesa prasībām. No operētājsistēmām izvēlamies Linux, visbiežāk — Ubuntu Server, kas nodrošina līdzsvaru starp Linux iespējām un labāku pazīstamību arī neregulāriem lietotājiem.
Darba gaitā izmantojam arī daudzus citus industrijā pazīstamus rīkus, kas tieši neietekmē produktu, taču ir būtiski kvalitatīvai darba gaitai, uzturamībai un iespējām projektus pārņemt.
Lietojam pakotņu (koda fragmentu/bibliotēku) pārvaldniekus Composer un npm. JavaScript un CSS datņu sagatavošanai tieši un pastarpināti lietojam pakotāju webpack.
Stabilitātei izmaiņu gadījumā ir nepieciešams, lai kods būtu iztestēts, kam izmantojam testēšanas ietvaru phpunit, savukārt iespēju atgriezties pie iepriekšējās koda versijas mums nodrošina versiju kontroles sistēma git un mitināšanas platforma GitHub.
Esam iecienījuši šo ikonu ģeneratoru.
Iepriekš uzskaitītas tehnoloģijas, kuras ir mūsu pirmā izvēle, taču reālos projektos nākas strādāt arī ar citiem rīkiem. Nevaram apgalvot, ka visas šīs tehnoloģijas pārvaldām augstā līmenī, taču mūsu komandai ir lielāka vai mazāka pieredze arī ar šīm tehnoloģijām un nebaidāmies no projektiem, kuros jāsaskaras arī ar tām.
Esam strādājuši uz Windows serveriem un dažādām Linux distribūcijām (Debian, openSUSE). Lielos projektos, kas nesākas no baltas lapas, nākas sastrādāties ar MSSQL un Oracle datubāzēm. Versiju kontrolei esam lietojuši Subversion/SVN.
Mēdzam izstrādāt papildinājumus un izmaiņas arī projektiem, kas izstrādāti forumu sistēmā phpBB vai satura vadības sistēmā WordPress.