Full-stack JavaScripti arendajatele tuttav lühend “MEAN” on mulle viimasel ajal hakanud huvi pakkuma. Kes veel MEAN stacki ei tea, siis karta pole vaja. MEAN midagi kurja ei tähenda vaid moodustub sõnadest MongoDB, Express, AngularJS ja Node.js. See postitus on sissejuhatuseks ühele seeriale, mille tulemusena oskab lugeja eelnevaid tehnoloogiaid kasutades luua täiesti toimiva täis-JavaScripti veebiäpi. Esimeses postituses tutvustaksin lühidalt kõiki nelja tehnoloogiat.
MongoDB
Tegemist on andmebaasimootoriga, mis ei salvesta andmeid SQL formaati, vaid iga andmekirje on eraldi JSON tüüpi dokument ja seotud dokumendid moodustavad kollektsioone (SQL-s tabelid).
MongoDB on ka vaba andmestruktuuriga. See tähendab, et ühes kollektsioonis olevad dokumendid ei pea olema samade andmeväljade ja struktuuriga.
Node.js
Selles projektis kasutan Node’i veebiserverina. Node ongi iseenesest üks JavaScriptis kirjutatud runtime keskkond, mida saab erinevateks otstarveteks kasutada (mitte alati veebiserver).
Tänu avatud lähtekoodile on Node.js’le arendatud lisaks VÄGA palju lisafunktsioone ja rakendusi. Veebiäpi loomine node serverile ongi laias laastus sobivate pakettide kokku sobitamine. Ratast pole vaja leiutada.
Express
Kui andmebaas (MongoDB) ja server (Node) on olemas, siis liigume edasi rakenduse kirjutamise juurde. Express on Node’i jaoks kirjutatud veebirakenduste raamistik, mis ei sisalda küll palju, kuid on vägagi paindlik ja ühilduv teiste pakettide ja pluginatega.
Express on kogu rakenduse jaoks justkui süda. See seob komponendid omavahel, määrab konfiguratsiooniparameetrid ja käivitab kõik, mis äpi toimimiseks vaja. Kuigi express juba sisaldab mõningast front-end võimekust, on lõppkasutaja jaoks veel üks raamistik…
AngularJS
Angular on Google’i loodud kasutajapoolne raamistik MVC arhitektuuri toetusega. See on mõeldud ühe-lehe veebiäppide tegemiseks ning nagu ka kõik eelnenud tehnoloogiad, on ka Angular avatud lähtekoodiga. Tänu MVC ja MVVM arhitektuuride implementeerimisele on loodava rakenduse ülesehitus ja testimine lihtsam.
Üks Angulari põhifunktsionaalsus on kahesuunaline andmeside. See tähendab, et klient ei pea uute andmete saamiseks pidevalt serverist neid küsima. Server saab ka otse kasutajale andmeid “pushida”.
Mis edasi?
Lisaks nendele tuleb veel päris mitu uut tööriista, millega on vaja arenduse käigus sõbraks saada. Järgmiseses postituses vaatan täpsemalt Node’i ja MongoDB installeerimist ning seadistamist.
Seeria lõpptulemuseks võiks olla MEAN stacki peale loodud tavaline CRUD näide, mida siis igaüks saaks enda ideedega edasi arendada. Täpselt veel ei oska tulemust ennustada. Võibolla loon hoopis uue Skype’i…