MVC הוא מודל להנדסת תוכנה – מילים קשות אה? אז מי מאיתנו שיודע מה הם מודלים בתכנות מוזמן לדלג לכותרת הבאה. מי שלא שימשיך לקרוא.
אנחנו בינתיים נבין קצת מה אמרתי, אנחנו נשווה את הליך בניית האתר או בניית האפליקציה הוובית שלנו לבניית בניין (ממש כמו במדריך ממתחיל למקצוען שלי והיות והכתבה הזו תהיה חשובה לפרק 2) וכמו שיש המון שיטות לבנות בניינים (חדרים גדולים סלון קטן או ההפך, פתחים מרובעים או עם קשתות וכו) יש גם המון שיטות לבנות תוכנה. המודל שלנו הוא ההשקפה העליונה שלנו על התהליך היא המודל למשל אם נבנה בניין במודל ימי הביניים אז נבנה כנראה בעץ, חדרים גדולים יחסית (הרבה אנשים בכל חדר) סלון ושירותים משותפים לכמה דירות וכמובן שלא נתעסק בזוטרות כמו מערכת ביוב.
MVC
בעקבות החלוקה לאנשי מקצוע בתחום הבנייה לכל אחד ברור מה הוא צריך לעשות והמפקח שהוא האדריכל או המהנדס יכול לשבת ולקבוע את הסדר או לדבר עם כל אחד מאנשי המקצוע בנפרד בקלות, בתוכנה בעיקר כשמדובר בתוכנה שבונה בן אדם אחד העיניין מסתבך ולא כל כך ברור לאילו חלקים ניתן להפריד את העבודה. מודל MVC מציע לנו לחלק את התכונה לשלושה חלקים עיקרים:
- model
- viewer
- controller
Model
המודל מייצג את המידע בו משתמשת האפליקציה, המודל כמובן מותאם לתחום העיסוק של האפליקציה. בבניית אתרים זה יהיה הDatabase או קבצי הXML שלנו. בבניין המודל הנו החומרים מהם בונים את הבית, בלוקים קרשים וברזלים.
Viewer
תפקידו של הviewer הוא לעבד את המידע שבמודל ולהציגו בצורה שתאפשר להשתמש בו בבניית אתרים זה יהיה הHTML, הCSS, הJavascript שמיועד להצגה של תוכן ותכנות צד שרת שלוקח את המידע מהמודל. בבניין הviewer הוא התכנית שמתארת איך יבנה הבניין מן הסתם שבשביל לבנות את הבניין נאלץ להשתמש במודל.
Controller
הבקר לוקח פעולות מהמשתמש ובהתאם אליהם הוא ישנה את המידע שנמצא במודל, בבניית אתרים זה יהיה AJAX שעורך קבצי XML או תכנות צד שרת שלוקח פעולות מהמשתמש ומבצע אותם על הdatabase / XML. בבניין הcontroller הוא המהנדס והפועלים, יבוא האדריכל או מי שמחליט איך יראה הבית ויגיד שהוא רוצה להחליף את קיר הבטון בקיר גבס, תפקידו של המהנדס לחשב את כמות הבטון שצריך ואם הגבס חזק מספיק להחזיק במקום הבטון ולתת לפועלים הוראה להחליף את הבטון בגבס ובכך לשנות את המידע שבמודל.
למה זה חשוב \ טוב?
סדר, סדר, סדר ושוב סדר.