اگر از توسعه دهندگان دنیای وب باشید و هر از گاهی سری به منابع خارجی نیز بزنید، احتمالا نام JAMstack را شنیده اید. بسیاری از توسعه دهندگان در حال برنامه نویسی با معماری JAMstack هستند اما خودشان نمی دانند! در واقع JAMstack نوعی معماری جدید برای برنامه های تحت وب است، بنابراین نه زبان برنامه نویسی است و نه ابزار خاصی برای توسعه ی وب، بلکه روشی برای توسعه ی وب است که سعی می کند وب سایت شما را امن تر کرده، عملکرد و سرعتش را بهبود بخشیده، هزینه ی مقیاس پذیری (بزرگ تر کردن وب سایت از نظر ارتقاء سرور و توسعه کلی در صورت محبوب شدن سرویس شما) را پایین آورده و در نهایت تجربه ی توسعه را برای همه شیرین تر کند.
بر اساس documentation معماری JAMstack در سایت رسمی شان:
JAMstack is a Modern web development architecture based on client-side JavaScript, reusable APIs, and prebuilt Markup.
The JAMstack is not about specific technologies. It’s a new way of building websites and apps that delivers better performance, higher security, lower cost of scaling, and a better developer experience.
ترجمه ی مضمون این گفته این می شود که JAMstack نوعی معماری مدرن برای توسعه وب است که بر این پایه ها بنا شده است: جاوا اسکریپت (سمت کاربر) API های قابل بازیابی و استفاده ی چند باره و Markup (الگوی کلی کدنویسی) از قبل آماده شده.
JAMstack محدود به تکنولوژی خاصی نیست بلکه روشی برای ساختن وب سایت های سریعتر، با امنیت بیشتر، هزینه ی کمتر برای مقیاس دهی و تجربه ی توسعه ی بهتر است.
اگر دقت کرده باشید اگر در دنیای توسعه ی وب از چند تکنولوژی در یک موقعیت استفاده شود، از اسم آن تکنولوژی ها برای ساخت یک کلمه ی جدید استفاده می شود! به طور مثال AJAX مخفف asynchronous JavaScript and XML (به معنی «جاوا اسکریپت و XML نامتقارن) است. JAMstack نیز از این قاعده مستثنی نیست و در واقع مخفف موارد زیر است:
توضیحی در مورد Stack: کلمه ی Stack در دنیای توسعه ی وب معمولا اشاره به ترکیب چندین تکنولوژی مختلف دارد که برای ساخت یک وب سایت یا برنامه ی موبایلی مورد استفاده قرار می گیرند. بنابراین JAMstack یعنی ترکیبی از تکنولوژی های JavaScript و API و Markup که نام گذاری بسیار جالبی است!
برنامه های JAMstack معمولا وابسته به یک سرور نیستند بلکه معمولا بین چندین سرور پخش می شوند بنابراین به خاطر استفاده از CDN ها و معماری خاص JAMstack این نوع برنامه ها سرعت و کارایی بسیار بالایی دارند.
ممکن است با برخی از مفاهیمی که بالاتر ذکر شد آشنا نباشید. بنابراین می خواهم یک بار آن ها را توضیح دهم تا در ادامه ی مقاله دچار مشکل نشوید:
وب سایت های سنتی تر از جمله CMS هایی مانند WordPress و Drupal و... به شدت به سرورهایشان، پلاگین ها و پایگاه های داده وابسته هستند اما JAMstack حجم پایینی از جاوا اسکریپت را بارگذاری می کند که از طریق یک API، داده هایی را دریافت کرده و آن ها را از طریق یک CDN و تولید کننده ی markup به کاربر تحویل می دهد.
JAMstack سریع است
زمانی که موضوع بحث ما سرعت بارگذاری (time of load) باشد، چیزی توان مقابله با فایل های از قبل آماده و توزیع شده از طریق CDN را ندارد. سایت هایی که بر اساس معماری JAMstack طراحی شده اند، بسیار سریع هستند، چرا که HTML در زمان تست های نهایی سایت و فعال کردنش روی سرور (از طریق CDN) ساخته شده است، بنابراین هیچ دخالتی از سمت back-end در این زمینه وجود نخواهد داشت.
JAMstack کاملا امن است
از آن جا که همه چیز از طریق API کار می کند، هیچ رخنه ی امنیتی یا سوء استفاده از پایگاه داده ای وجود نخواهد داشت. تمامی پردازش های سمت سرور به خدمات خُرد API تبدیل می شوند. بنابراین فضای مانور دادن برای هکرها و انواع حملات کاهش می یابد. این موضوع باعث امنیت بالای این نوع از وب سایت ها می شود.
توسعه ی کسب و کار با JAMstack بسیار ساده تر و ارزان تر است
مقیاس دهی وب سایت های JAMstack نکته ی قابل توجهی است، چرا که تنها متشکل از فایل های کوچکی هستند که می توانند از هر جایی توزیع شوند. بنابراین مقیاس دهی (آوردن سایت روی سرور های قوی تر و توسعه کلی) سایت های JAMstack بسیار ارزان و آسان خواهد بود.
هنگامی که تصمیم به کار با JAMstack گرفتید، بهتر است از نکات زیر پیروی کنید تا بیشترین نتیجه را از JAMstack بگیرید:
در حال حاضر فناوری های مختلفی به صورت پیش فرض در JAMstack قرار دارند که می توانید از آن ها استفاده کنید. از این فناوری ها می توان به Gatsby و NuxtJS و Hugo و Netlify CMS و ... اشاره کرد.
در این قسمت، به پرسشهای تخصصی شما دربارهی محتوای مقاله پاسخ داده نمیشود. سوالات خود را اینجا بپرسید.