9 причини да изградите своето уеб приложение с Jamstack

Изграждането на гъвкаво и годно за употреба приложение за кратко време може да бъде предизвикателство. Добре познатите облаци като AWS, Azure и GCP помагат за доставянето на мащабируеми уеб приложения с ниски разходи в рамките на няколко седмици. Изберете управлявана база данни, преместете кода на приложението в контейнери Docker или back-end функции и внедрете всичко при всяка промяна на кода. Така изглежда съвременната разработка на приложения, нали?

В тази публикация ще опиша най-важните неща, необходими за разработване и доставяне на софтуер с невероятно темпо, с приложение Next.js, написано на TypeScript, внедрено чрез Vercel и подкрепено от безсървърна база данни, наречена FaunaDB. Ще обясня подробно всяко от тези неща, като добавя няколко примера тук и там. Горещо препоръчвам да ги изпробвате всички. Всички те имат щедри безплатни нива и могат да бъдат използвани от малък екип от разработчици с до трима членове.

Използването на платформи за ориентиране към разработчици в комбинация с безсървърни предложения е обобщено като Jamstack. „JAM“ означава JavaScript, API и маркиране. Повече за Jamstack можете да намерите на //jamstack.org/.

Внедряването е подробност за изпълнението

Броят на услугите, които мога да използвам в облак, е огромен. Към този момент AWS разполага с 250 различни услуги. Трябва да дефинирам как да се свържа и да настроя внедряване за новите си функции, за непроизводствената си среда и за производствената си среда

Ако работя по проект с множество разработчици паралелно, бих искал просто да предам URL адрес на моя колега, за да споделя текущия ми клон на функциите.

Освен това трябва да настроя домейни и поддомейни, да мащабирам услугата, да свържа обществени крайни точки, да управлявам връзки с база данни, да настроя управление на тайни и т.н. 

Платформата Vercel се свързва безпроблемно със системи за контрол на версиите като GitHub или GitLab. Просто свързвам хранилището си и адаптирам настройката на името на хоста на сървъра на имена и приключих.

В настоящия си проект съм дефинирал някои удобни npm задачи, които се използват във всяка компилация, за да гарантират, че нашият софтуер едновременно работи и отговаря на софтуерните стандарти и най-добри практики:

{

"скриптове": {

    "tsc": "tsc", // проверяваме типа-безопасност

    "lint": "eslint", // направете статичен анализ на кода

    "lint: ci": "eslint --max-warnings = 0",

    "lint: fix": "eslint --fix",

    "test": "jest --watch", // изпълняваме тестове

    "test: ci": "jest --ci",

    "test: покритие": "jest --coverage",

    "проверки": "npm-run-all lint: ci tsc test: ci",

    "dev": "env-cmd next dev", // стартиране на локална среда за разработчици

    "start": "следващ",

    "start-port": "следващ старт -p $ PORT",

    "build": "следващо изграждане",

    "now-build": "npm-run-all checks build", // CI изграждане

    "serve": "следващо начало",

  }

}

По подразбиране Vercel изпълнява now-buildзадачата при всяка компилация. Това задейства някои други задачи, които статично проверяват нашия код, изпълняват всички тестове и изграждат нашия софтуер.

Поради факта, че всичко просто работи, получавам много функции на платформата за внедряване от кутията. Ползвам се от предстоящи подобрения, без те да ми създават проблеми в бъдеще.