תודה שבחרתם לקחת חלק והגעתם לסיום קורס חינם ב React & GraphQL חשבתי בהתחלה שזה יהיה יותר קצר והנה כבר הגענו ל8 שיעורים!.
מקווה שהיה לכם לעזר. זהו שיעור הסיום ובפוסט זה אתן כמה טיפים טובים להמשך הדרך שלכם בעבודה עם כלים אלו. אבל לפני כן הנה רשימת כל השיעורים במידה ופספסתם שיעור כלשהו:
קורס חינם React & GraphQL – שיעור ראשון – אתחול צד לקוח
קורס חינם React & GraphQL – שיעור שני – משחק איקס עיגול TIK-TAK-TOE
קורס חינם React & GraphQL – שיעור שלישי – צד שרת Nodejs של המשחק איקס עיגול.
קורס חינם React & GraphQL – שיעור רביעי – graphQL מגדירים schema.
קורס חינם React & GraphQL – שיעור חמישי – graphQL מגדירים schema.
קורס חינם React & GraphQL – שיעור שישי – graphQL על query and mutation. המשך.
קורס חינם React & GraphQL – שיעור שביעי – Apollo client
קורס חינם React & GraphQL – שיעור שמיני – noSQL MongoDB
עבודה עם ריאקט
בטח שמתם לב שבחרתי לכתוב את הריאקט בקורס עם typescript (TSX) . אז מי שזה היה לו מעט מוזר , אני מציע כן להתעקש ולהכיר ריאקט עם טייפסקריפט כי יש דרישה שכזו בשוק שיותר ויותר מפתחים ידעו כתיבה של טייפים אז שווה להתעקש על זה. עוד משהו שרציתי להעיר בעבודה עם ריאקט זה צורת הכתיבה, הכתיבה פה הייתה מעט רשלנית . לא חילקתי היטב את הקבצים מכוון שזוהי אפליקציה קטנה ופשוטה אבל הדרך הבריאה יותר לעבודה זה לחלק קצת יותר טוב את הקוד . למשל , את השאילתות של gql היה נכון לשים בקובץ נפרד, אפילו בתיקיה של gql עם שם הקריאה (מה היא עושה) וככה כל רכיב שצריך את אותה קריאה יוכל לייבא אותה ולא יהיו שאילתות כפולות באפליקציה.
עבודה עם GraphQL
הצגתי בקורס זה את הכלים הבסיסייים של GQL . יש הרבה מעבר ושווה להעמיק קצת יותר. למשל לא השתמשנו ב fragments או union כמו כן שימוש ה context שמגיע אליו מתוך resolvers . אלו עוד כלים שככל הנראה תתקלו בהם אם תמשיכו להתעסק עם GQL.
אפולו
בעבודה עם אפולו יש המון דברים מעניינים שלא הראינו וכן יש להם שימוש . כל נושא הceches הוא חשוב ושווה להעמיק בו. הנושא של refetching גם נושא ששווה להעמיק בו עוד קצת, עשינו מימוש של refetch כשרצינו להחזיר את המידע מה query לאחר שעשינו mutation. ישנם עוד הוקים באפולו ששווה גם לקרוא עליהם כי הם כן נצרכים בהרבה מקרים למשל :
useLazyQuery , useSubscription
צד שרת Nodejs
עשינו מימוש של צד השרת עם express ו GQL . אבל הרבה דוגמאות אפשר לראות שלא השתמשו בexpress והשתמשו ב ApolloServer שהיא בעצם ספריית של אפולו שמוכרת לנו מצד הלקוח רק עבור צד שרת. הרבה משתמשים בה כי היא מותאמת היטב לעבודה עם GQL והמימוש איתה מאד נוח. ממליץ לנסות ליישם את ApolloServer אפילו בדוגמה שלנו. או שתכתבו משהו חדש משלכם אבל תנסו להשתמש ב ApolloServer במקום express . שתי הדרכים מוכרות ואני בחרתי להציג עם express כי זה נחשב בסיסי יותר.
טיפ וסיימנו
אם אתם מתכנתי פרונט אז בחלק גדול מהמקרים אתם תקבלו schema מוכנה ופשוט תמשכו את הדטה בעזרת שאילתות שתכתבו בצד לקוח, ממש כמו שעשינו פה עם אפולו . אבל לא תמיד אתם תקבלו את המידע בדיוק כמו שהייתם רוצים. למרות הגמישות של לפרסר את המידע איך שבא לכם . יכול להיות שתעדיפו keys שונים שיתאימו לכם כי התקדמתם במקביל לעבודת השרת . אז אפשר בקלות לייצר ALIAS למידע שחוזר לכם בשאילתה. לדוגמה: שיניתי את player ואת results לkeys שאולי יהיו לי נוחים יותר (לא באמת , אבל זה סתם לצורך ההדגמה של איך alias עובד)

לסיכום – תתחילו לשחק!
שמח שסוףסוף הסתיים קורס חינם בריאקט ו GQL , מקווה היה לכם לעזר. תמשיכו ללמוד דברים חדשים מידי יום והשקיעו את זמנכם בלימוד כלים שנחשבים פופולארים , זה יקנה לכם ערך רב. ומי שרוצה קצת לשחק במשחק שבנינו אז הנה המשחק: