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

همکار من الکس و من به تازگی مجموعه پخش زنده Full Stack GraphQL Book Club را به پایان رساندم، بنابراین فکر کردم اکنون زمان خوبی برای به اشتراک گذاشتن برخی از نکات اصلی و چیزهایی است که در مورد ساخت برنامه های فول استک با GraphQL یاد گرفتیم.
وقتی کتاب من Full Stack GraphQL Applications منتشر شد، فکر کردم که سازماندهی یک کلوپ کتاب از نوع سرگرم کننده خواهد بود – مجموعه ای از قسمت های پخش زنده که در آن هر قسمت یک فصل از کتاب را مرور می کنیم و تمرینات پایان فصل را انجام می دهیم.
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 از مشتری به پایگاه داده و برگشت بررسی می کنیم.
آنچه در طول باشگاه کتاب آموختیم
تنها یک مجموعه درست از کامپوننت ها وجود ندارد که یک برنامه 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 را با منطق تعامل با لایه داده خود برای حل و فصل داده های خود ایجاد می کنیم.
آنچه در طول باشگاه کتاب آموختیم
مشکل پرس و جو 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 این است @cypher
دستورالعمل طرحواره برای افزودن منطق سفارشی به GraphQL API ما با استفاده از زبان پرس و جو Cypher.
فصل 5: ساخت رابط کاربری با React
https://www.youtube.com/watch?v=Wwm8KBkGCrc
React.js یک کتابخانه جاوا اسکریپت برای ساخت رابط کاربری است. شروع با create-react-app
CLI ما می بینیم که چگونه کامپوننت های React را برای ساختن رابط های کاربری و نحوه کار با داده ها در یک برنامه React ایجاد و ترکیب کنیم.
آنچه در طول باشگاه کتاب آموختیم
درک نحوه کار با متغیرهای حالت یک مفهوم مهم در 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 استفاده میکنیم.
آنچه در طول باشگاه کتاب آموختیم
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 API خود را به عنوان یک تابع بدون سرور مستقر کنیم. پلتفرم Netlify میتواند با GitHub برای استقرار ساختهای پیشنمایش ادغام شود. همچنین با Neo4j Bloom و Neo4j AuraDB درباره تجسم داده های نموداری یاد می گیریم.
فصل 9: ملاحظات پیشرفته GraphQL
https://www.youtube.com/watch?v=d1YvtXB1eK0
انواع انتزاعی GraphQL (اتحادیه ها و رابط ها)، صفحه بندی به سبک رله، و کار با ویژگی های رابطه.
آنچه در طول باشگاه کتاب آموختیم
هنگامی که انواع بتن لزوماً هیچ فیلد مشترکی ندارند، میتوانند برای نمایش نتایج جستجو مفید باشند.
پیشنهاد شماره 10: امتیاز: GraphQL با کد کم با جعبه ابزار Neo4j GraphQL
توانایی تمرکز بر بخش های کلیدی طراحی GraphQL API می تواند یک مزیت بزرگ برای نمونه سازی اولیه و راه اندازی و اجرای سریع پروژه های جدید باشد. Neo4j GraphQL Toolbox یک ابزار مبتنی بر وب کم کد برای ساخت، آزمایش و کاوش APIهای GraphQL با کتابخانه Neo4j GraphQL است. آن را در graphql-toolbox.neo4j.io امتحان کنید
دانلود نسخه رایگان برنامه های Full Stack GraphQL
با تشکر از Neo4j برای حمایت مالی از کتاب من، این کتاب برای دانلود رایگان در dev.neo4j.com/graphql-book در دسترس است. ضبط پخش زنده باشگاه کتاب را می توانید در کانال یوتیوب Neo4j مشاهده کنید.