HB's Thoughts

I try to think really hard.

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 и т.н. но повечето са за малки или лични проекти.


Ако имате мнение или въпроси за статията, не се колебайте да ги споделите.

Влезте в отворената дискусия в GitHub.


Компетентност: Няма
Тагове: Мисли