wtorek, 6 lutego 2018

MEAN Stack

Od jakiegoś czasu interesuje mnie temat MEAN Stack-a, czyli stosu technologicznego MongoDB + Express.js + Angular + Node.js. Chciałem bliżej zapoznać się z tymi groźnie brzmiącymi terminami. Angulara już co prawda poznałem - napisałem nawet za jego pomocą apkę (Projekt Angular) - ale pozostałe elementy były dla mnie obce.

Zacznijmy od bazy danych. Przez całe życie - no, może przez pół - używałem relacyjnych baz danych, a konkretnie SQL Server, MySQL. Natura tych baz zapewniała mi z jednej strony elastyczność w projektowaniu modelu aplikacji, a z drugiej dawała możliwość tworzenia złożonych zapytań, dzięki którym dostawałem potrzebne dane. Te cechy sprawiały, że nie wyobrażałem sobie stosowania w aplikacji bazy NoSQL. Ale czy na pewno? Może baza nierelacyjna podoła takiemu zadaniu? No i chciałem to sprawdzić w praktyce.

Stworzyłem projekt aplikacji opartej na bazie MongoDB. Potrzebowałem jeszcze hostingu, platformy, na której to wdrożę. Skorzystałem z OpenShift, który oferuje postawienie aplikacji Node.js na darmowym koncie. A dlaczego Node.js? Bo chciałem pobawić się JavaScriptem na backendzie. Chciałem zobaczyć, jak JavaScript sprawdza się nie tylko w przeglądarkach, ale również na serwerach. No i jak dla mnie bomba! Rewelacja! Mam ulubiony język programowania w każdej warstwie aplikacji! A jeśli dodam, że w całej aplikacji używamy genialnego formatu przesyłania danych JSON, zaczynam czuć się jak w domu!

Ogromnym ułatwieniem przy tworzeniu aplikacji są frameworki. Część serwerową bierze na siebie Express.js. Zapewnia routing, obsługę requestów, komunikację z bazą danych, wysyłanie danych i komunikatów do przeglądarki użytkownika. A wszystko w JavaScript i JSON! Część kliencką bierze na siebie Angular. Zapewnia powiązanie danych z elementami interfejsu, manipulację na widokach, zarządzanie szablonami HTML.

Gdy zebrałem to wszystko do kupy, powstała zgrabna aplikacja-demo typu ToDoList, którą możecie obejrzeć pod linkiem MEAN Stack Auth App, i której kod znajdziecie na GitHubie pod linkiem MEAN Stack App.