دوره GraphQL: ایجاد Schema و Type همراه با فلشکارت آموزشی — ارائه روی فلش مموری
🎓 دوره آموزشی جامع
📚 اطلاعات دوره
عنوان دوره: دوره GraphQL: ایجاد Schema و Type
موضوع کلی: برنامه نویسی
موضوع میانی: GraphQL
📋 سرفصلهای دوره
- 1. مقدمهای بر GraphQL و تاریخچه آن
- 2. چرا GraphQL؟ مقایسه با REST
- 3. مشکلات N+1 و Over/Under-fetching در REST
- 4. معماری GraphQL: کلاینت، سرور و Schema
- 5. سه رکن اصلی: Query, Mutation, Subscription
- 6. آشنایی با Schema Definition Language (SDL)
- 7. آمادهسازی محیط توسعه (Node.js و ابزارهای لازم)
- 8. ساخت اولین "Hello, World!" با یک Schema ساده
- 9. آشنایی با ابزار GraphiQL/Playground
- 10. ساختار یک Schema: Root Types
- 11. نقش Type System در GraphQL
- 12. مفهوم Strongly Typed بودن در GraphQL
- 13. بررسی یک Schema واقعی (مثال GitHub API)
- 14. مفهوم Introspection و کاربردهای آن
- 15. انواع داده در GraphQL: Scalar و Object
- 16. انواع Scalar پیشفرض: Int, Float, String, Boolean, ID
- 17. کاربرد نوع ID و تفاوت آن با String
- 18. تعریف اولین Object Type
- 19. فیلدها (Fields) در Object Types
- 20. تودرتو کردن Object Types (Nested Types)
- 21. افزودن توضیحات (Descriptions) به Types و Fields
- 22. اصلاحکنندههای لیست: [Type]
- 23. اصلاحکنندههای Non-Null: Type!
- 24. ترکیب اصلاحکنندهها: [Type!]!
- 25. اهمیت و کاربرد Non-Null در تضمین داده
- 26. انواع شمارشی (Enum Types)
- 27. تعریف و استفاده از Enum در Schema
- 28. ایجاد Scalar Type سفارشی (Custom Scalar Types)
- 29. مثال عملی: ساخت Scalar برای تاریخ (Date)
- 30. اعتبارسنجی و سریالایز کردن در Custom Scalars
- 31. مقدمهای بر انواع انتزاعی: Interface و Union
- 32. تعریف و پیادهسازی Interface
- 33. چه زمانی از Interface استفاده کنیم؟
- 34. تعریف و استفاده از Union Type
- 35. چه زمانی از Union استفاده کنیم؟
- 36. مقایسه Interface و Union: تفاوتها و شباهتها
- 37. استفاده از Type Conditions در کوئریها (... on Type)
- 38. مفهوم Input Object Types
- 39. چرا به Input Types نیاز داریم؟
- 40. تعریف یک Input Type برای Mutation
- 41. تفاوت کلیدی بین Object Type و Input Type
- 42. تعریف Root Type: Query
- 43. ساخت اولین کوئری ساده (Fetching a single item)
- 44. ساخت کوئری برای لیستها (Fetching lists)
- 45. آرگومانها (Arguments) برای فیلدها
- 46. استفاده از آرگومانهای اجباری (Non-Null) و اختیاری (Nullable)
- 47. استفاده از مقدار پیشفرض برای آرگومانها
- 48. ارتباط بین Types: طراحی روابط یک-به-یک
- 49. طراحی روابط یک-به-چند
- 50. طراحی روابط چند-به-چند
- 51. مفهوم Resolver (بدون پیادهسازی، فقط تئوری)
- 52. تعریف Root Type: Mutation
- 53. طراحی اولین Mutation: ایجاد داده (Create)
- 54. استفاده از Input Types در آرگومانهای Mutation
- 55. طراحی Mutation برای بهروزرسانی داده (Update)
- 56. طراحی Mutation برای حذف داده (Delete)
- 57. الگوی طراحی Payload برای Mutation
- 58. چرا بازگرداندن دادهی تغییریافته در Mutation مهم است؟
- 59. مدیریت خطا در سطح Schema (طراحی انواع خطا)
- 60. مقدمهای بر صفحهبندی (Pagination)
- 61. صفحهبندی مبتنی بر Offset/Limit
- 62. معایب Offset-based Pagination
- 63. صفحهبندی مبتنی بر Cursor (Cursor-based Pagination)
- 64. پیادهسازی الگوی Cursor-based Pagination در Schema
- 65. آشنایی با مشخصات Relay
- 66. مفهوم Node Interface و Global Object Identification
- 67. الگوی Connection برای لیستها
- 68. مفاهیم Edge, Node, و PageInfo
- 69. ساخت یک Connection Type در Schema
- 70. مقدمهای بر Directives
- 71. بررسی Directives پیشفرض: @include و @skip
- 72. بررسی Directive پیشفرض: @deprecated
- 73. تعریف یک Directive سفارشی
- 74. محلهای استفاده از Directive (Directive Locations)
- 75. مثال عملی: ساخت Directive برای احراز هویت (@auth)
- 76. مثال عملی: ساخت Directive برای قالببندی رشته (@upper)
- 77. تعریف Root Type: Subscription
- 78. طراحی Schema برای رویدادهای بلادرنگ (Real-time)
- 79. استراتژیهای نسخهبندی (Versioning) Schema
- 80. استفاده از فیلدهای Deprecated برای تکامل Schema
- 81. مدیریت شکستهای آبشاری با Nullability
- 82. الگوهای پیشرفته Union و Interface
- 83. مفهوم Schema Stitching
- 84. مقدمهای بر Apollo Federation
- 85. تفاوت Schema Stitching و Federation
- 86. Schema-First vs. Code-First: مزایا و معایب
- 87. سازماندهی فایلهای Schema: تقسیمبندی و ماژولارسازی
- 88. استفاده از ابزارهای Linting برای Schema
- 89. قواعد نامگذاری (Naming Conventions) برای Types و Fields
- 90. مستندسازی Schema با استفاده از Descriptions
- 91. تولید خودکار مستندات از Schema
- 92. امنیت Schema: محدود کردن عمق کوئری (Query Depth Limiting)
- 93. امنیت Schema: محدود کردن پیچیدگی کوئری (Query Complexity Limiting)
- 94. غیرفعال کردن Introspection در محیط Production
- 95. طراحی Schema با در نظر گرفتن Caching
- 96. بررسی ابزارهای آنلاین برای طراحی و تست Schema
- 97. مرور کلی بر بهترین شیوهها (Best Practices) در طراحی Schema
- 98. پروژه پایانی: طراحی Schema برای یک فروشگاه آنلاین
- 99. جمعبندی دوره و مراحل بعدی یادگیری
- 100. **پیادهسازی Directiveهای سفارشی در GraphQL برای اعتبارسنجی و دسترسی محدود شده**
محتویات بسته آموزشی
🌐 سامانه آنلاین فلشکارت؛ مرور هدفمند و هوشمند
اکانت ارائهشده، دسترسی به نسخه تحت وب سامانه فلشکارت ویژه این دوره را فراهم میکند. این سامانه از الگوریتم زمانبندی مرور SM-2 استفاده میکند و بر اساس ارزیابی شما از میزان یادآوری هر کارت، زمان مرورهای بعدی را تنظیم میکند.
به این ترتیب، کارتهای دشوارتر میتوانند زودتر مرور شوند و برای تثبیت مطالب در حافظه، برنامه مرور متناسبتری داشته باشید.
مدتزمان معادل آموزشی بر اساس برآورد این دوره در گواهی درج میشود.
گواهی دوزبانه با استعلام آنلاین
پس از تکمیل فعالیتهای لازم و تأیید درخواست، گواهی پایان دوره به زبان فارسی و انگلیسی صادر میشود. گواهی دارای لینک اختصاصی و QR Code برای بررسی و استعلام آنلاین است.
این گواهی صرفاً بهعنوان گواهی اتمام دوره آموزشی صادر میشود و معادل مدرک دانشگاهی، آکادمیک یا مدرک رسمی مورد تأیید نهادهای دولتی نیست. صدور آن منوط به تکمیل شرایط دوره و تأیید نهایی درخواست است.
نظرات
هنوز نظری ثبت نشده است.
وارد شوید تا نظر ثبت کنید.