Node Unique
120 subscribers
22 photos
2 videos
3 files
42 links
سلام به برنامه نویس های جاوااسکریپت (nodejs)
اینجا درباره Back-End تجربیات خودم رو مینویسم و به اشتراک میزارم ;)
و همچنین مفاهیم soft-skill که مربوط به Stack خاصی نمیشه هم پوشش خواهم داد.

دسته بندی پست ها
https://t.me/NodeUnique/10

Owner:
@iDvMH
Download Telegram
رفقا ها سلام چطورین خیلی خوش اومدین به چنل خودتون 🌟

برای اینکه چنل نظم خاصی رو طی کنه تو شلوغی و همچنین به پست ها دسترسی سریع تری داشته باشین تصمیم گرفتم هر پستی که اینجا میزاریم رو با # دسته بندی کنیم.

تمامی پست های چنلو میتونین با این # ها پیدا کنین

#nodejs
#expressjs
#nestjs
#bunjs
#denojs
#redis
#authentication
#restapi
#sql
#nosql
#mysql
#postgresql
#mariadb
#mongodb
#mongoose
#prisma
#typeorm
#sequelize
#git
#github
#bug
#graphql
#apollo_server
#websocket
#socketio
#test
#cleancode
#linkedin
#fun
#orm
#js
#ts
#regex
#design_patterns
#docker
#elasticsearch
#کدخوانا
#پادکست
#داکیومنت_نویسی
#تجربه
#استخدام
#لینکدین
#ترفند
#رزومه
#پروفایل_گیتهات
#دیزاین_پترن
#کلین_کد
#میم
#فکت
#مقاله
#ویدیو_آموزشی
#نقشه_راه
#کاربردی
#طراحی_دیتابیس
#شبکه_سازی
#متفرقه
#معرفی_ابزار
#معرفی_منبع
#معماری_نرم_افزار
#قیمت_گذاری
#معرفی_کتاب
#نمونه_کار
#روانشناسی
#مهارت_نرم
#هاست
#دیپلوی
#دامنه
#ربات_نویسی

..... این لیست بروز میشود ......

یسری حرف و حدیث ها که خارج از برنامه نویسی هستن و بیشتر تجربه زندگی شخصیم هستن رو پست میکنم با هشتگ #دلی که چنل حالت روحی خشکی نداشته باشه و جو صمیمیت برقرار باشه.

مرسی از همراهیتون ❤️

🐱 https://github.com/MhsnBakhshi
🔤 @NodeUnique
Please open Telegram to view this post
VIEW IN TELEGRAM
👍1
🆕 ~> بریم ببینیم GraphQL 🧧 چیه که این همه دربارش صحبت میشه؟

• خب GraphQL 🧧 یک زبان کوئری قدرتمند و انعطاف‌پذیر است که به ما اجازه میده داده‌ها رو به‌صورت دقیق و بهینه از APIها درخواست کنیم. برخلاف REST 👩‍💻، ما میتونیم دقیقا همون داده‌هایی رو بگیریم از بک اند که به آن نیاز داریم، نه بیشتر و نه کمتر! فوق‌العادس. 👍

مقایسه ساده با REST 👩‍💻
- در REST API 👩‍💻، اگر نیاز به داده‌هایی از چندین منبع مختلف داشته باشید، باید چندین درخواست (Request) به سرور ارسال کنیم. اما در GraphQL، همه این داده‌ها را میتونیم با یک درخواست دریافت کنیم از سمت بک اند. 👍

~> مثال 👀
• فرض کنیم می‌خواهیم از یک API اطلاعات یک کاربر و لیست پست‌هاش دریافت کنیم.

• در REST 👩‍💻
- برای دریافت اطلاعات کاربر و پست‌هاش باید دو درخواست جداگانه ارسال کنیم: 👌 👌

GET /users/1  
GET /users/1/posts


در GraphQL 👩‍💻
- شما می‌توانید یک درخواست واحد ارسال کنید: 😐 👌
query {
  user(id: 1) {
    id
    name
    email
    posts {
      id
      title
      content
    }
  }
}

- پاسخی که دریافت میکنیم این شکلی هست:

{
  "data": {
    "user": {
      "id": "1",
      "name": "Mohsen Bakhshi",
      "email": "mhsn.bakhshi696@gmail.com",
      "posts": [
        {
          "id": "101",
          "title": "what is GraphQl",
          "content": "GraphQL is amazing!"
        },
        {
          "id": "102",
          "title": "lets start GraphQL",
          "content": "start with types in GraphQl"
        }
      ]
    }
  }
}

⚠️~> ویژگی‌های کلیدی GraphQL 👩‍💻

1️⃣ دریافت دقیق داده‌ها (Exact Data Fetching):
• در GraphQL 👩‍💻، دقیقا مشخص میکنیم چه داده‌هایی را می‌خواهیم از سرور. مثلا اگر فقط نام و ایمیل کاربر را نیاز داریم:

query {
  user(id: 1) {
    name
    email
  }
}

پاسخ دریافتی:

{
  "data": {
    "user": {
      "name": "mhsn Bakhshi",
      "email": "mhsn.bakhshi696@gmail.com"
    }
  }
}

2️⃣ ساختار داده‌های تو در تو (Nested Data):
• میتونیم داده‌های مرتبط را در یک ساختار سلسله‌مراتبی درخواست کنیم. یعنی چی؟ مثلا اطلاعات کامنت‌های یک پست:

query {
  post(id: 10) {
    title
    comments {
      id
      text
      author {
        name
      }
    }
  }
}

3️⃣ عدم وابستگی به نسخه (No Versioning):
• در GraphQL 👩‍💻، نیازی به تعریف نسخه‌های مختلف API (مانند /v1 یا /v2) نیست. هر تغییری در API به‌صورت سازگار با نسخه‌های قبلی مدیریت می‌شود.


⚠️~> چرا GraphQL 👩‍💻؟

1️⃣ انعطاف‌پذیری بالا
در GraphQL 👩‍💻، کلاینت‌ها تصمیم می‌گیرند چه داده‌ای را دریافت کنند.

2️⃣ افزایش کارایی
به جای ارسال چندین درخواست به سرور (over-fetching و under-fetching در REST)، تمام داده‌های موردنیاز را در یک درخواست بگیرید.

3️⃣ مستندات خودکار
با GraphQL 👩‍💻، مستندات API به‌طور خودکار تولید می‌شود و به‌روز است.

4️⃣ مدیریت آسان داده‌های پیچیده
برای پروژه‌هایی با داده‌های متصل و پیچیده، GraphQL 👩‍💻 تجربه توسعه را بهبود می‌بخشد.


⚠️~> کجا از GraphQL 👩‍💻 استفاده کنیم؟

• وقتی پروژه‌ شما شامل چندین کلاینت (وب، موبایل، دسکتاپ) است.
• زمانی که نیاز به ترکیب داده از چندین منبع مختلف دارید.
• در پروژه‌هایی که نیازمند آپدیت‌های سریع و مداوم در API هستید.
• برای کاهش مشکلات مرتبط با نسخه‌بندی API (Versioning).

😦~> امروزه در اکثر پروژه ها و شرکت ها از GraphQl 🧧 خام کمتر استفاده میشه و GraphQl 🧧 همراه با ابزاری مثل Apollo Server استفاده میکنن.

• حالا Apollo Server چیه؟ یکی از محبوب‌ترین پیاده‌سازی‌های GraphQL 👩‍💻 در سمت سرور است که ویژگی‌های زیر را ارائه می‌دهد:

- پشتیبانی از ابزارهای پیشرفته برای توسعه و دیباگ.
- ادغام آسان با Node.js 👩‍💻 و سایر ابزارهای توسعه.
- قابلیت‌های پیشرفته مثل کشینگ، اشتراک‌گذاری (Subscriptions) و Authentication.

⚠️~> چرا Apollo Server؟

- ساده و قابل‌اعتماد برای شروع کار با GraphQL 🧧.
- پشتیبانی عالی از ابزارهای فرانت‌اند مانند Apollo Client.
- جامعه بزرگ و مستندات جامع.

🎞 برای یادگیری GraphQl 🧧 همراه با Apollo Server این پلی لیست یوتیوب رو مشاهده کنین.
🔴 https://youtube.com/playlist?list=PLT5Jhb7lgSBOnwyukLUZb6X-WnliySCUL&si=GNNi5K83eTAfWNFZ


~> مستندات رسمی GraphQl و Apollo Server
🧾 https://graphql.org/
🧾 https://www.apollographql.com/dos/apollo-server


#️⃣ #معرفی_منبع #معرفی_ابزار #graphql #apollo_server

🔤 @Code_Unique
Please open Telegram to view this post
VIEW IN TELEGRAM
🆒103👍2
🆕~> تو این پست میخواهیم مقایسه بین GraphQL 👩‍💻 و REST API 👩‍💻 انجام بدیم 😊

• هنگام انتخاب بین 👩‍💻 GraphQL و 👩‍💻 REST API برای پروژه‌های خود، باید مزایا و معایب هر کدام را در نظر بگیریم. هر دو تکنولوژی برای ایجاد API استفاده می‌شوند، اما رویکردها و قابلیت‌های متفاوتی دارند.


📣~> پست توضیح REST API 👩‍💻
🔗 https://t.me/Code_Unique/58
📣~> پست توضیح GraphQL 👩‍💻
🔗 https://t.me/Code_Unique/57


⭕️~> مقایسه اصلی بین 👩‍💻 GraphQL و REST API 👩‍💻

ساختار درخواست
- در 👩‍💻 GraphQL کلاینت مشخص می‌کند چه داده‌هایی را نیاز دارد.
- در 👩‍💻 REST API سرور ساختار ثابت پاسخ را مشخص می‌کند.

نسخه‌بندی (Versioning)
- در 👩‍💻 GraphQL نیازی به نسخه‌بندی نیست. 
- در 👩‍💻 REST API معمولا نیاز به نسخه‌بندی (V1, V2) دارد.

• کارایی در درخواست‌ها
 - در 👩‍💻 GraphQL یک درخواست برای دریافت تمام داده‌ها.
- در 👩‍💻 REST API چندین درخواست ممکن است لازم باشد.

• سازگاری با کشینگ 
- در 👩‍💻 GraphQL نیاز به ابزارهای جداگانه برای کشینگ.
 - در 👩‍💻 REST API کشینگ آسان‌تر با HTTP و CDN.

• یادگیری و پیاده‌سازی 
- در 👩‍💻 GraphQL یادگیری پیچیده‌تر، ولی انعطاف‌پذیرتر.
- در 👩‍💻 REST API ساده‌تر و گسترده‌تر.


⭕️~> مزایای 👩‍💻 GraphQL:

• درخواست دقیق داده‌ها (Exact Fetching).
• ترکیب چندین منبع در یک درخواست.
مستندات خودکار API.
• مناسب برای پروژه‌های بزرگ و پیچیده.

⭕️~> مزایای 👩‍💻 REST API:

• ساده و گسترده در بین توسعه‌دهندگان.
کشینگ آسان با HTTP.
• مناسب برای پروژه‌های کوچک یا متوسط.

⭐️ چه زمانی از 👩‍💻 GraphQL یا 👩‍💻 REST API استفاده کنیم؟

• از 👩‍💻 GraphQL استفاده کنیم:

- زمانی که نیاز به انعطاف‌پذیری بالا در درخواست داده‌ها دارید.
- وقتی چندین کلاینت (وب، موبایل، دسکتاپ) به API شما متصل هستند.
- برای پروژه‌هایی با داده‌های پیچیده و متصل.

• از 👩‍💻 REST API استفاده کنیم:

- زمانی که پروژه شما ساده یا متوسط است.
اگر نیاز به کشینگ قوی با ابزارهایی مانند CDN دارید.
- وقتی تیم توسعه با REST آشنایی بیشتری دارد. 👎

#️⃣ #graphql #restapi

🔤 @Code_Unique
Please open Telegram to view this post
VIEW IN TELEGRAM
🕊5🌚4👍2🗿2🆒2👎1