اپلیکیشن اندرویدی فلشکارت آموزشی 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 برای اعتبارسنجی و دسترسی محدود شده**
این اپلیکیشن فارسی برای یادگیری و مرور محتوای آموزشی از طریق فلشکارت طراحی شده است. کارتها را یکییکی مرور کنید، پاسخ پرسشها را به یاد بیاورید و نتیجه هر پاسخ را ثبت کنید. محتوای دوره پس از نصب درون برنامه در دسترس است تا برای مطالعه روزمره معمولاً به اتصال مداوم اینترنت نیاز نداشته باشید.
محتوای آموزشی در قالبهای متنوع ارائه میشود تا هم برای یادگیری مفاهیم جدید و هم برای تثبیت آموختهها قابل استفاده باشد.
- رابط کاربری فارسی و راستچین با فونت وزیر.
- تم روشن و تیره مطابق تنظیمات سیستم.
- صفحهبندی ساده برای انتخاب دوره و شروع مرور.
- نمایش تعداد دفعات مرور هر فصل.
- انتخاب چند فصل برای مرور همزمان.
- امکان تمرکز بر فصلهایی که هنوز مرور نشدهاند.
این اپلیکیشن برای دانشآموزان، دانشجویان، داوطلبان آزمونها و علاقهمندان به یادگیری طراحی شده است؛ بهویژه کسانی که میخواهند مطالب آموزشی را در زمانهای کوتاه مرور کنند، دانستههای خود را بسنجند و مطالعه منظمتری داشته باشند.
نظرات
هنوز نظری ثبت نشده است.
وارد شوید تا نظر ثبت کنید.