چند روز پیش پروژهای رو بصورت تمرینی برای خودم در نظر گرفتم تا بتونم توانمندیهام رو در زمینه برنامهنویسی گسترش بدم. میخواستم یک وب سایت بلاگ رو بصورت فولاستک بنویسم و منتشر کنم با استفاده از Nextjs.
فولاستک (full-stack) به کسی گفته میشه که میتونه هم سمت سرور (back-end) و هم سمت ظاهر وب سایت (front-end) رو کد بزنه و پیادهسازی کنه.
یه ویدیو پیدا کردم توی Youtube که بنظرم رسید خیلی مناسبه برای یادگیری یه سری از چیزا. توی این ویدیو از ابزاری استفاده میکرد به اسم Prisma که کارش این بود که کوئریزدن به وب سایت رو برای ما راحتتر میکرد. حتی ساختن دیتابیس و درستکردن schema دیتاها رو هم برامون راحتتر میکرد.
برام جالب شد و رفتم سراغ documentation اصلی این ابزار توی وب سایت prisma.io تا ببینم چه اتفاقی داره پشت پرده میفته و چجوری میشه از این ابزار استفاده کرد 🧐
نتیجه این بود که خیلی ازش خوشم اومد و تصمیم دارم که برای همه پروژههایی که توی اونها نیاز به اتصال به دیتابیس دارم ازش استفاده کنم. تجربه development خیلی خوب به همراه ابزارهای عالیای که ارائه میده این اجازه رو به برنامهنویسها میده که با خیال راحت ازش استفاده کنن و لذت ببرن 😜🤓
پریسما دقیقا چیه؟
اگر بخوام دقیقتر بگم پریسما (یا به قول بعضیا پریزما) چیه، باید بگم که یه مدل ORM عه! شاید براتون سوال بشه که ORM چیه دیگه؟! 🤨
ORM کوچیک شده عبارت object relational mapping عه که کارش راحتتر کردن ارتباط ما با دیتابیسهای رابطهای یا relational عه. نکتهای که اینجا هست اینه که Prisma برای دیتابیسهای relational درست شده ولی پشتیبانی خوبی هم از دیتابیسهای none-relational مثل mongoDB میکنه.
حتی توی توضیحاتش توی بخش documentation وب سایت رسمیش، بصورت مجزا اومده و mongoDB رو پوشش داده.
پریسما (پریزما) کاری که میکنه اینه که شما رو از شر هرچی کوئری دیتابیسه راحت میکنه. برای گرفتن لیست اطلاعات یک وب سایت از دیتابیس دیگه نیازی نداری به نوشتن اینجور عبارات:
SELECT * FROM posts ORDER BY created_at DESC;
بجای این مدل عبارات، prisma به شما این امکان رو میده که فقط بنویسید:
posts.findMany();
و تمام 🥳😍
این بنظر من خیلی بهتره نسبت به اینکه بخوایم همش دستورات عجیب غریب و خرچنگ قورباغه بنویسیم 😂 البته که از حق نگذریم اون هم همچین سخت نبود ولی خب وقتی یه راه سادهتر هست چرا خودمون رو اذیت کنیم الکی؟؟