برنامه نویسی

10 چیزی که در Full Stack GraphQL Book Club یاد گرفتیم

همکار من الکس و من به تازگی مجموعه پخش زنده Full Stack GraphQL Book Club را به پایان رساندم، بنابراین فکر کردم اکنون زمان خوبی برای به اشتراک گذاشتن برخی از نکات اصلی و چیزهایی است که در مورد ساخت برنامه های فول استک با GraphQL یاد گرفتیم.

برنامه های Full Stack GraphQL

وقتی کتاب من Full Stack GraphQL Applications منتشر شد، فکر کردم که سازماندهی یک کلوپ کتاب از نوع سرگرم کننده خواهد بود – مجموعه ای از قسمت های پخش زنده که در آن هر قسمت یک فصل از کتاب را مرور می کنیم و تمرینات پایان فصل را انجام می دهیم.

فهرست مطالب کلوپ کتاب Full Stack GraphQL

Full Stack GraphQL Applications همه چیز در مورد نحوه ساخت برنامه های وب با استفاده از GraphQL، React، Apollo، و Neo4j Database است – به اصطلاح GRANDstack. این کتاب به گونه ای طراحی شده است که به توسعه دهندگان تمام پشته نشان دهد که چگونه می توانند از مزایای GraphQL از جمله ادغام پایگاه داده GraphQL مانند کتابخانه Neo4j GraphQL، سرویس های ابری مانند Netlify، AWS Lambda، Auth0 و Neo4j AuraDB استفاده کنند.

در زیر برای هر فصل نگاهی به نکات اصلی هر فصل به اضافه یک چیز جالب که در جریان پخش زنده یاد گرفتیم خواهیم انداخت.

فصل 1: Full Stack GraphQL چیست؟

https://www.youtube.com/watch?v=P6hXgvcuspg

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

اجزای یک پشته کامل برنامه GraphQL: GraphQL، React، Apollo، و پایگاه داده Neo4j - GRANDstack

آنچه در طول باشگاه کتاب آموختیم
تنها یک مجموعه درست از کامپوننت ها وجود ندارد که یک برنامه Full Stack GraphQL را تشکیل می دهد. به عنوان مثال، ما می‌توانیم یک برنامه بومی iOS بسازیم که با Swift نوشته شده است که از کلاینت Swift GraphQL به جای برنامه React استفاده می‌کند یا شاید از GraphQL Yoga به جای Apollo Server استفاده می‌کند – مهم‌تر است که مفاهیم نحوه قرار گرفتن قطعات با هم را درک کنیم و سپس بهتر می‌توانید معاوضه انتخاب اجزای مختلف پشته را درک کنید.

فصل 2: ​​تفکر نموداری با GraphQL

https://www.youtube.com/watch?v=8uXLEG3qOIs

رویکرد معمولی برای ساختن APIهای GraphQL با نوشتن تعاریف نوع GraphQL شروع می شود که داده های موجود در API را تعریف می کند. سپس توابع Resolver را با منطق تعامل با لایه داده خود برای حل و فصل داده های خود ایجاد می کنیم.

تفکر نموداری با GraphQL

آنچه در طول باشگاه کتاب آموختیم
مشکل پرس و جو N+1 برای همه به جز ساده ترین API های GraphQL آشکار می شود. چندین درخواست رفت و برگشت به لایه داده برای هر درخواست GraphQL می تواند به یک گلوگاه عملکرد بزرگ تبدیل شود. خوشبختانه، ادغام پایگاه داده GraphQL مانند کتابخانه Neo4j GraphQL با ایجاد یک کوئری پایگاه داده واحد برای هر عملیات GraphQL، مشکل پرس و جو N+1 را برطرف می کند.

فصل 3: نمودارها در پایگاه داده

https://www.youtube.com/watch?v=yI3PYW-MVvQ

پایگاه های داده گراف مانند Neo4j به توسعه دهندگان این امکان را می دهد که داده ها را به عنوان یک نمودار مدل سازی، ذخیره و پرس و جو کنند: گره ها و روابطی که گره ها را به هم متصل می کنند. ما از زبان پرس و جو Cypher برای کار با داده ها در Neo4j استفاده می کنیم. Cypher همه چیز در مورد تطبیق الگوی نمودار است.

نمودارها در پایگاه داده

آنچه در طول باشگاه کتاب آموختیم
زبان پرس و جو Cypher به ما این امکان را می دهد که الگوهای گراف پیچیده را با استفاده از هنر ASCII مانند نمادگذاری که مسیرها را در نمودار نشان می دهد، تعریف کنیم.

فصل 4: کتابخانه Neo4j GraphQL

https://www.youtube.com/watch?v=jilGjRLuKYE

کتابخانه Neo4j GraphQL به ما این امکان را می دهد که APIهای GraphQL کاملاً کاربردی با پشتیبانی پایگاه داده گراف Neo4j با ایجاد پرس و جوهای پایگاه داده از درخواست های دلخواه GraphQL ایجاد کنیم.

کتابخانه Neo4j GraphQL

آنچه در طول باشگاه کتاب آموختیم
قدرتمندترین ویژگی کتابخانه Neo4j GraphQL این است @cypher دستورالعمل طرحواره برای افزودن منطق سفارشی به GraphQL API ما با استفاده از زبان پرس و جو Cypher.

فصل 5: ساخت رابط کاربری با React

https://www.youtube.com/watch?v=Wwm8KBkGCrc

React.js یک کتابخانه جاوا اسکریپت برای ساخت رابط کاربری است. شروع با create-react-app CLI ما می بینیم که چگونه کامپوننت های React را برای ساختن رابط های کاربری و نحوه کار با داده ها در یک برنامه React ایجاد و ترکیب کنیم.

استفاده از متغیرهای React State

آنچه در طول باشگاه کتاب آموختیم
درک نحوه کار با متغیرهای حالت یک مفهوم مهم در React است. متغیرهای حالت با استفاده از “قلاب” – یا توابع برای اتصال به ویژگی های React State و چرخه حیات به روز می شوند.

فصل 6: Client Side GraphQL با Apollo Client

https://www.youtube.com/watch?v=uPYDtfNjzWA

ادغام React Apollo Client تعداد انگشت شماری از توابع React “hook” را برای تعامل با GraphQL ما معرفی می کند. این useQuery و useMutation توابع رایج ترین قلاب های React برای پرس و جو کردن GraphQL API ما هستند.

استفاده از کلاینت آپولو برای مدیریت وضعیت برنامه محلی

آنچه در طول باشگاه کتاب آموختیم
همچنین می‌توانیم از Apollo Client برای مدیریت وضعیت برنامه محلی با استفاده از @client دستورالعمل پرس و جو GraphQL. این می تواند کد مدیریت داده را در برنامه React ما با استفاده از Apollo Client و طرح GraphQL به عنوان منبع واحد داده ها و حالت برنامه ساده کند.

فصل 7: افزودن احراز هویت و مجوز

https://www.youtube.com/watch?v=WrWbGml-7×8

ما تاکسی قوانین مجوز را با @auth دستورالعمل هنگام استفاده از کتابخانه Neo4j GraphQL. ما از JSON Web Tokens (JWTs) برای رمزگذاری هویت کاربر و اجرای عملکرد ورود به سیستم با Auth0 React SDK استفاده می‌کنیم.

استفاده از قانون مجوز bind

آنچه در طول باشگاه کتاب آموختیم
JSON Web Token (JWT) استانداردی برای مدیریت هویت و دسترسی است که به این معنی است که می‌توانیم خودمان جریان احراز هویت کاربر را پیاده‌سازی کنیم یا با یک سرویس تأیید اعتبار مدیریت شده مانند Auth0 ادغام کنیم.

فصل 8: استقرار برنامه Full Stack GraphQL ما

https://www.youtube.com/watch?v=rPlYywoN1EE

ارزیابی سرویس‌های ابری مدیریت‌شده و نحوه کار آنها برای انتخاب بهترین گزینه‌های استقرار برای برنامه GraphQL ما. ما از Netlify، GitHub، Auth0، AWS Lambda و Neo4j AuraDB استفاده می کنیم.

استقرار کامل GraphQL از دیدگاه توسعه دهنده

آنچه در طول باشگاه کتاب آموختیم
مطمئن شوید که گزینه های استقرار را از دیدگاه توسعه دهنده و همچنین کاربر ارزیابی کنید. ما می توانیم GraphQL API خود را به عنوان یک تابع بدون سرور مستقر کنیم. پلتفرم Netlify می‌تواند با GitHub برای استقرار ساخت‌های پیش‌نمایش ادغام شود. همچنین با Neo4j Bloom و Neo4j AuraDB درباره تجسم داده های نموداری یاد می گیریم.

فصل 9: ملاحظات پیشرفته GraphQL

https://www.youtube.com/watch?v=d1YvtXB1eK0

انواع انتزاعی GraphQL (اتحادیه ها و رابط ها)، صفحه بندی به سبک رله، و کار با ویژگی های رابطه.

مدل داده های نموداری با استفاده از ویژگی های رابطه

آنچه در طول باشگاه کتاب آموختیم
هنگامی که انواع بتن لزوماً هیچ فیلد مشترکی ندارند، می‌توانند برای نمایش نتایج جستجو مفید باشند.

پیشنهاد شماره 10: امتیاز: GraphQL با کد کم با جعبه ابزار Neo4j GraphQL

جعبه ابزار Neo4j GraphQL

توانایی تمرکز بر بخش های کلیدی طراحی GraphQL API می تواند یک مزیت بزرگ برای نمونه سازی اولیه و راه اندازی و اجرای سریع پروژه های جدید باشد. Neo4j GraphQL Toolbox یک ابزار مبتنی بر وب کم کد برای ساخت، آزمایش و کاوش APIهای GraphQL با کتابخانه Neo4j GraphQL است. آن را در graphql-toolbox.neo4j.io امتحان کنید

دانلود نسخه رایگان برنامه های Full Stack GraphQL

برنامه های Full Stack GraphQL

با تشکر از Neo4j برای حمایت مالی از کتاب من، این کتاب برای دانلود رایگان در dev.neo4j.com/graphql-book در دسترس است. ضبط پخش زنده باشگاه کتاب را می توانید در کانال یوتیوب Neo4j مشاهده کنید.

نوشته های مشابه

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

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

دکمه بازگشت به بالا