6.02.2024 г.
Здравей Свят
Преди много време спрях да поддържам блог. В момента пиша разни статии към репозиторитата в GitHub, но те не целят да достигнат крайния потребител. Повече са за хора, които преминават на бързо за информация и не се старая много, защото са насочени към разбиращите технологиите, за които пиша.
Започвам този блог, за да споделя опита ми с един прекрасен стек от технологии, с които може да се постигне всичко, е... почти всичко. Vue, Nuxt, TailwindCSS и TypeScript. Това ще бъдат основните теми на в размислите ми. Силно насочени към front-end и допълнени с beck-end. Струва ми се, че общността около тези технологии в България е малка и се надявам с времето да подпомогна нейното развитие.
Vue
Ако изключим jQuery - Някъде около 2012 година започнах да използвам "реактивни" JavaScript библиотеки. Една от първите беше Knockout. Велика. Всеки стартиращ с Observable модела, и изобщо, всеки стартиращ със "реактивните" JavaScript библиотеки трябва да мине през нея. След това се наредиха още много - в това число и Angular и React. Дори за кратко пишех и моя собствена, базирана на jQuery и Mustache. Накрая попаднах на Vue.
По онова време пишех много CSS и използвах ASP.NET и Razor за създаване на front-end. Използвах и доста CSS библиотеки, като 960.gs, Bootstrap, Foundation и др. и Vue някак си естествено навлезе в ежедневието ми със сепарираното писане в компонентите наподобяващо до някъде модела на организация на файловете с който бях свикнал.
Когато добави и Vue Router и Pinia (Vuex преди нея) и картинката става още по-добра. Vue + Vue Router + Pinia = MVC in front-end. Ще напиша допълнително как изграждам MVC (Model View Controller) с тях.
Nuxt
Nuxt е базиран на Vue. Освен множеството улеснения, които дава, като автоматични импорти, автоматичен рутинг, плъгини, модули и т.н. - добавя и back-end сървър (Nitro) и работите като с една система, без да е необходимо да създавате второ приложение за сървър, без да са необходими супер познания по работата на Node & Express. Това е инструмента, който махна .NET & C# от полезрението ми. С Nitro можете да изградите сървърен middleware, API endpoints, връзка към бази с данни - всичко, което Ви е необходимо от back-end.
TailwindCSS
След Just-in-Time Mode - TailwindCSS замени изцяло Bootstrap и не само. Вече не ползвам масивни CSS библиотеки с включени UI компоненти. Сепарирам двете отделно. Дори компонентните библиотеки също са изградени с TailwindCSS. Може би в последно време залагам повече на Nuxt UI и то, предимно, за да поддържам екосистемата.
TypeScript
JavaScript дава огромна свобода на писане, деклариране, извикване, навързване, паралелност, асинхронност и т.н. Има изградени патърни за всякакви аспекти от програмните модели. Ползваш го за beck & front едновременно. Има доста масивни организации и огромна общност, които го развиват.
Но тази свобода има и своите недостатъци. Няма компилатор, който да те пази. Няма единен модел за дебъгване. Няма правилен начин за генериране на крайния/проекционния код. TypeScript подпомага премахването на някои от проблемите на JavaScript. Не е панацея и понякога не е лесен за конфигуриране, особено когато работите със споделени модели от данни между front & back end, но дава една много по-правилна представа за пътя на разработка, поддръжка и доставяне на кода.
The others
Vite, Node, Express, MongoDB, NPM, Firebase допълват сегашния ми стек от технологии.
Vite e личния ми избор за разработка. И не само за Vue проекти. Понякога използвам Parcel, но за специфични решения.
Работя и с другите от "metro" технологиите, като Nest, ElectonJS & React Native, Bun и т.н. но повечето са за малки или лични проекти.
Ако имате мнение или въпроси за статията, не се колебайте да ги споделите.