לכתוב קוד בחושך

למה בכלל צריך את השרת? סיבה מספר אחת

מחבר אחיה חביבסקרפינג נעים חברים

בעיניי הרבה אנשים, בקאנד זה מקצוע קצת אפור.. 

אבל פרונטאנד.. 

פרונטאנד זה ג-ן ע-ד-ן 🌈

 

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

והופ.. תשואות!!

 

ואין פלא..

את העבודה של הפרונטאנדר, אפשר למדוד בקלות יחסית.

גם מי שלא רכש ידע טכני, יכול להתפעל מאתר מהמם.

תודה!

 

אבל מתכנת הבקאנד..
יכול לפעמים לעשות קסמים,

לבנות מערכות סופר מורכבות,
לכתוב קוד שפותר בעיות קיומיות,
ואף אחד בעצם לא ידע מה הוא עושה..

אין הכרה במה שהוא עושה..
ממשיך לכתוב קוד בחושך..

 

ובכל זאת,
בעיניי עבודה של בקאנד מאוד מעניינת ואף לפעמים מרגשת.
אותי בכל אופן היא מרגשת לפעמים ברמה של תחושת צביטה חמימה כזאת בצדדים של הבטן.
היא יכולה לכלול ארכיטקטורות מיוחדות, ולוגיקה סופר מורכבת,
טכנולוגיות מגניבות ועוד ועוד.

אז החלטתי לשפוך קצת אור על העבודה החשוכה של מפתח הבקאנד.
ולהתחיל לכתוב קצת על פיתוח בקאנד.

 

ואתחיל בשאלה,
למה צריך בכלל שרת בקאנד?
 

ולפני שאענה, אשתף אותכם שבהתחלה חשבתי שהפוסט הזה יקרא ״5 סיבות למה בכלל צריך שרת בקאנד?״

כשהתחלתי להתקדם עם הפוסט גיליתי שהוא נהיה עמוס מדי, והעומס גורם לי לקצר בדברים שראוי להרחיב בהם, אז החלטתי לחלק אותו לכמה חלקים
ואתחיל מהסיבה הראשונה-

 

הסתרה של מידע סודי-
הסיבה הזאת היא אחת החשובות בעיניי, ולטעמי צריך לחלק אותה לשלושה חלקים.

א. הסתרה של מידע סודי של משתמשים

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

ב. שמור לי על המפתחות אחי - הסתרה של מפתחות לטובת אינטגרציה

שרת מודרני לא עושה הכל לבד, לצוות מפתחים בסטרטאפ לדוגמא, אין את כל הזמן שבעולם לפתח כל פיצ׳ר במערכת בעצמם. לדוגמא, אם פעולה מסויימת שקרתה במערכת מצריכה שליחה של מייל, חברה שפותרת בעיות בעולמות הפינטק או הפרסום, לרוב לא תרצה לפתח שירות שלם ששולח מיילים, זה פשוט יכול לגזול הרבה זמן ומשאבים. במקום זה היא תוכל להיעזר בתוכנה בapi אחר ששולח מיילים בתשלום.

כאשר אני כמפתח נרשם לשירות צד שלישי כלשהו, אני מקבל לרוב איזשהו מפתח, טוקן כלשהו.
לרוב זה איזשהו סטרינג מוצפן שנראה כמו סתם קשקוש של אותיות ומספרים.

משהו שנראה בערך ככה (דוגמא לטוקן שיצרו לי בשירות של גוגל firebase)- 

AIzaSyC_F7On2HhTHy5rvoLyF3gI0gZuuOuK6mw



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

 

ג. הסתרה של הbusiness logic
לתוכנה אותה אנחנו מפתחים יש איזו שהיא בשורה, איזו שהיא לוגיקה שבאה לפתור משהו מדהים. משהו שהולך לעזור למישהו עד כדי כך, שהוא הולך לשלם לנו עליו כסף. או לחילופין ישנו איזשהו מודל עסקי שאנחנו הולכים להרוויח כסף מהתוכנה אותה אנו כותבים. וייתכן מאוד שנרצה לשמור על חלק מהלוגיקה שפיתחנו, בסוד. שרת יכול לעזור לנו לשמור על הלוגיקה שלנו הרחק מעיניי הלקוחות שלנו. הלוגיקה תכתב ותתבצע בשרת הבקאנד, הרחק מעיניהם של המשתמשים.

אז לסיכום תיארתי כאן את הסיבה הראשונה לשאלה - למה צריך שרת בקאנד?
ההסתרה

ואם אהבתם את הפוסט בבקשה אל תסתירו את זה ממני😉
תנו לייק, תגובה או שיתוף, או שסתם תכתבו לי בפרטי.

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

והיי, לפוסט הזה יש כבר פוסט המשך - קישור אליו כאן - https://www.achiya.dev/blog-post/backend2

ביי חברים וחברות
הלכתי לכתוב קוד בחושך 🧛🏻‍♂️😅