פיתוח State Management
State Management אמנם נשמע כמו מונח ששייך לתחום מדעי המדינה, אך מדובר במונח יסוד בתחום בניית יישומי מחשב.
ה-State בהקשר שלנו לא מופיע במשמעות של ‘מדינה’, אלא במשמעות של ‘מצב’.
למעשה, State מתאר את מצב המידע שנשמר ביישום והפעולות ברגע נתון.
ביישומים עסקיים הכוללים עיבוד של מידע רגיש, כמו למשל הזמנות, תשלומים וחשבוניות תלויים ב’מצב’ היישום (State),
מה שמאפשר ביצוע מאזנים, מעקב אחר מלאים וניהול ספרי חשבונות.
‘ניהול המצב’ – State Management מאפשר למפתחים לקבוע את ‘מצב היישום’ ולהבטיח שהשינויים ישקפו את המציאות והקונטקסט של התהליך העסקי.
איך מתנהל State Management?
בגדול, State Management גורם לכך שהמידע (ה-State) יקבל ביטוי ויזואלי באפליקציה בתצורה של מבנה נתונים.
פעולה זו משפרת את היכולת של המפתח לעבוד עם היישום.
ספריות של State Management מספקות את הכלים הדרושים ליצירת מבני נתונים ולשנות אותם כאשר מתבצעות ביישום פעולות חדשות.
יש שתי מודלים מקובלים ל- State Management: front-end – קצה קדמי (יישום הקשור לממשק של המשתמש וחשוף אליו)
ו- back-end – קצה השרת (יישום שאינו גלוי למשתמש).
במודל ‘הקצה הקדמי’, האפליקציה או הדפדפן של המשתמש אחראים ל-State של התוכנה, לעיתים באמצעות מתגים או ממשק המשתמש שבאמצעותו
המשתמש מחובר ומתואם עם האפליקציה לאורך כל השימוש בה.
State Management שמתבצע במודל ‘קצת השרת’, היישום ישתמש ברכיב של מבנה נתונים חיצוני או במסד נתונים שמתעד את ‘המצב הסופי’ בתום עיבוד הפעולות.
עיבוד הפעולה הבאה יתחיל באחזור המצב האחרון ממסד הנתונים. משתנה ה-State במבנה הנתונים לעיתים יסונכרן עם ממשק המשתמש.
כלים ל- State Management
State Management יתבצע באמצעות כלים וספריות ייעודיות. יש הרבה מאוד סוגי כלים כאלה שמתאימים לסוגים שונים של יישומים ומצבים.
הנה, סקירה קצרצרה של כמה כלים כאלה.
NGRX
אחת הספריות הכי פופולריות ל- State היא NRGX.
מדובר בספריה המיועדת ליישומים זוויתיים.
הספרייה מאוד קלה לעבודה והוראות ההפעלה פשוטות וברורות ומסמנות מתווה ברור ועקבי לעבודה.
כלי העבודה ש-NRGX מספקת נותנים מענה למגוון רחב של סוגי יישומים והיא פותחת הרבה מאוד אפשרויות עבור מפתחים.
האופי האינטואיטיבי שלה הופך אותה למתאימה גם עבור מפתחים חסרי ניסיון,
ומאידך המגוון והאמינות הופכים אותה לכלי עבודה מועדף גם עבור מפתחים מנוסים וותיקים.
Akita
תבנית ל- State Managementשבנויה על RxJS שמושתתת על הרעיון ריבוד מידע.
Akita מעודדת פשטות וחוסכת לכם את הטרחה לייצר תבניות קוד.
היא בעלת עקומת למידה מתונה ומתאימה הן למפתחים מנוסים והן למפתחים בראשית דרכם.
Mobx
MobX היא ספרייה שהופכת משימה של State Management לפשוטה במיוחד ומאפשרת ביצוע הרחבות ועדכונים בקלות.
הפילוסופיה עליה היא מושתתת מורכבת משלושה עקרונות: גישה ישירה שמאפשרת למפתח לכתוב קוד פשוט,
רנדור נטול מאמץ וארכיטקטורה גמישה שמשאירה הרבה חופש למפתח.