جم استک چیست ؟

جم استک دقیقا چیه ؟

در این مقاله قراره به صورت کلی ببینیم دقیقا جم استک چیه و به چه دردی میخوره ! پس جرونیمووو

در توسعه وب از ابزار های مختلفی میشه استفاده کرد و معمولا هم بعیده وارد توسعه وب بشید و html/css/js/php رو نشنیده باشید یا حتی html/css/js/asp و بعد هم قطعا اسم های معروف هاست و سرور و لینوکس رو هم شنیدید

به این ترکیب های مختلف که برای توسعه وب استفاده میشه استک میگن و در واقع هر وب استک شامل : سیستم عامل، وب سرور یک نرم افزار برای دیتابیس و زبان برنامه نویسی هست (حالا خود این زبان برنامه نویسی میتونه در فرانت اند و بک اند متفاوت باشه)

در زیر براتون دو تا از وب استک های معروف رو قرار میدم :

LAMP Stack: Linux – Apache – MySQL – PHP (Pearl , Phython)

MEAN Stack: Mongo – Angular – Express – Node

خب اما من اینجا نمیخوام براتون از چیز هایی بگم که همه جا میتونید در موردش بخونید اسم این پست هست جم استک و ما هم قراره در مورد جم استک توضیح بدیم 🙂

JAMSTACK دقیقا و به شکل واضح چیه ؟

جم استک هم یک ترکیب ابزار هست و هم یک معماری جدید (اره دقیقا مثل MVC و بقیه) در گذشته وقتی با HTML/CSS/JS سایت درست میکردیم حتما باید به وسیله یک زبان بک اندی هم بک اندشو مینوشتیم تا تبدیل میشدند به یک وب سایت تعاملی واقعی، وگرنه فقط ازشون میشد برای ساختن سایت رزومه و اینجور چیزای ساده استفاده کرد و حتی برای بخش تماس با ما هم نیاز به کد نویسی بک اند داشتید .

در واقع کلمه‌ی JAM ، از حروف اول سه کلمه‌ی JavaScript , API , Markup ساخته شده، خب پس جرونیمو (برو که رفتیم)

دکتر فلفل (سایت جم استک اینو میگه من خوشگل تر گفتم )

جاوا اسکریپت: برنامه جاوا اسکریپتی در واقع برنامه اصلی ما هست که قراره کار ها رو انجام بده

یک API: خب چون بک اند نداریم باید از یک API برای ذخیره سازی، فعالیت های پرداخت، ورود و عضویت کاربر و هر چیزی استفاده بشه مثلا برای بخش نظرات در توسعه یک وبلاگ میشه به سرویس معروف disqus اشاره کرد

این api ها میتونند شخصی هم نوشته باشند و یا هر saas دیگری باشند میتونید برای اشنایی بیشتر مقاله رای کانکت چیست رو مطالعه کنید

فایل Markup: فایل های مارکاپ فایل هایی هستند که در زمان اجرای برنامه تولید یا به اصطلاح پری رندر میشند مثل تبدیل فایل های md به html در سیستم هایی مثل hugo

خب پس جم استک در واقع چیزی نیست جز همون html/css/js خودمون که بهش api هم اضافه شده 🙂

یعنی شما به جای اینکه خودتون بک اند بنویسید میتونید از بک اند های اماده که توسط شرکت های مختلف ارائه میشه استفاده کنید

در جم استک شما نیاز نیست هاست و .. بخرید بلکه پروژتون رو در cdn های مختلف بارگزاری میکنید و پروژتون به سادگی و با سرعت بالا در دسترس خواهد بود

در جم استک ما دیگه در مورد سیستم عامل و وب سرور ها و زبان های برنامه نویسی بک اند صحبت نمیکنیم بلکه در مورد برنامه هایی استفاده میکنیم که بیشتر به سمت کاربر متمایل شدند و به جای استفاده از قدرت بک اند بیشتر از قدرت فرانت اند استفاده میکنند

این یک روش جدید هست که میشه باهاش برنامه های سبک، کاربر محور و تعاملی ساخت و بدون سرو کله زدن با cms های بزرگ و سنگینی مثل وردپرس بهترین نتیجه ممکن رو با کمترین مصرف منابع دریافت کرد

یکی از چیز های خیلی مهمی که باید در مورد jamstack توضیح بدیم قابلیت markup بودن هست

فرض کنید شما قراره یک cms توسعه بدید و وقتی cms اتون رو توسعه دادید کاربر هر محتوایی از سایت شما رو که قراره بخونه باید یک درخواست به دیتابیس بره و اون مطلب پیدا بشه و بعد به html تبدیل بشه و به کاربر فرستاده بشه :)‌

چه فرایند پیچیده و پر مصرفی چی میشد اگه شما در پنل مدیریت cms اتون هر مطلبی که نوشته میشد رو همون لحظه html اشو تولید میکردید و فایلش رو در cdn های مختلف بارگزاری میکردید که با سرعت بالا و بدون نیاز به دیتابیس به سرعت قابل دسترسی باشه ؟

اگه هم قرار بود ویرایشی روش صورت بگیره میشد فایل رو پاک کرد و فایل جدید رو جایگزاری کرد

این کاری هست که JAMSTACK براتون انجام میده

چرا JAMSTACK ؟‌

چون مرباست : چون خیلی خوشمزس و درد سر ها رو کم میکنه

چون ارزون تره : نیاز نیست که هاست و … بخرید و دیتابیس های پیچیده ران کنید یک CDN میتونه به سادگی از پس وب شما بر بیاد

چون امن تره : چون خودتون خیلی کار ها رو نمیکنید و API هایی که دریافت میکنید بار ها تست شدند و بیشتر عملیات سمت کاربر انجام میشه پس همه چی امن تره

چون ساده تره : حقیقتش شاید بک اند کارا از خوندن این ناراحت بشن (البته نمیشن چون بک اند کارا در توسعه زیر ساخت سرویس های JAMSTACK موثر هستند ) اما جم استک تمام تمرکزش بر روی این هست که یک توسعه دهنده فرانت اند بتونه به سادگی پروژشو ایجاد کنه با کمترین نیاز ممکن به کد های بک اندی

چون سریعتره : چون نیاز نیست هر سری درگیر رندر گیری و ارتباط با دیتابیس و هزار و یک درد سر دیگه بشه پس همه چیز خیلی سریعتر اتفاق میوفته

اینم یک مقایسه کلی جم استک در مقابل سرویس های کلاسیک

چطوری با جم استک کار کنیم ؟‌

خب خیلی سادس میتونید به توسعه HTML/CSS/JS ادامه بدید و یک سری هم به مقاله نو بک اند بزنید و با سرویس های سس مختلف اشنا بشید

برای کار با جم استک میتونید از سایت ساز های اماده شروع کنید

HUGO یک سایت ساز اماده باحال هست که میتونید بهتون برای تولید یک وبلاگ ساده کمک کنه

اما اگه علاقه دارید خودتون توسعه دهنده باشید میتونید در مورد

Angular vs React vs Vue.js Part I: The Case For Angular

ANGULAR – VUE – REACT و فریم ورک های مختلف جاوا اسکریپتی تحقیق کنید

جم استک یک راهکار بهینه برای توسعه با سرویس های گسترده در سطح اینترنت هست و شما میتونید با گستره وسیعی از API های مختلف کار کنید

سرویس های بالا برخی از سرویس هایی هستند که بهتون بدون نیاز به بک اند امکانات زیادی رو ارائه میکنند

چطور دیپلوی کنیم ؟

برای دیپلوی کردن یک جم استک میتونید از اروان کلود در ایران و NETLIFY در سطح جهانی کمک بگیرید البته که نتلیفای امکانات خیلی خوبی در اختیارتون قرار میده و بهتره تا حد امکان از اروان برای اینجور چیزا استفاده نکنید 🙂

API سرویس ایرانی :

رای کانکت یک API سرویس ایرانی هست که خدمات نو بک اند زیادی رو در اختیارتون قرار داده و میتونید به وسیله اون کار های باحالی انجام بدید :)‌

برای دونستن فقط کافیه رای کانکت رو گوگل کنید

منابع :

jamstack

تصاویر:

تصویر شروع:

Exact Vectors by Vecteezy

دیگر تصاویر :

سرچ در گوگل

3 فکر می‌کنند “جم استک چیست ؟

  1. بازتاب: بدون بک اند - فلفل نامه

  2. Morning Star

    کلی کلی مرسی از توصیحات واضح و بیان ساده ی اینکه jam stack چیه.
    قبلا راجع بهش مطالعاتی کرده بودم اما تازه با توضیح ساده ی تو بود که برام جا افتاد دقیقا به چه شکل کار میکنه .
    راستی فلفل ، خوشحال میشم اگه خودت هم نمونه کاری از وبسایتی که با jam stack توسعه داده باشی برام به اشتراک بزاری تا ببینم.

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *