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

מה הולכים ללמוד בשיעורים הבאים

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

עם מה תצאו מהחלק הזה

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