דלג לתוכן הראשי
שכבת הפשטה ארכיטקטורת תוכנה בעברית

ארכיון

מאמרים

40 מאמרים על תבניות עיצוב, עקרונות תכנון וארכיטקטורת תוכנה, מהחדש לישן.

רשימת המאמרים

מיקרו־שירותים

microservices בלי אשליות: גבולות שירות, תקשורת, נתונים ומחיר התפעול — מתי ארכיטקטורת מיקרו־שירותים שווה את זה

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

10 דק׳ קריאה

תכנון מונחה עצמים

הרכבה במקום ירושה: איך לתכנן אובייקטים גמישים בלי לבנות עץ מחלקות שביר

הכלל “העדיפו הרכבה על פני ירושה” נשמע לפעמים כמו סיסמה שמפתחים חוזרים עליה בלי לבדוק את ההקשר. אבל מאחוריו עומדת בעיה ממשית בתכנון מונחה עצמים: ירושה קושרת מחלקות זו לזו…

9 דק׳ קריאה

תקשורת בין אובייקטים

תבנית Mediator: אובייקט מתווך שמחליף רשת של תלויות הדדיות — מימוש מלא על טופס עם רכיבים תלויים

Mediator מגדירה אובייקט שמכמס את האופן שבו קבוצת אובייקטים מתקשרת, ומונעת מהם להפנות זה לזה ישירות. ההגדרה לפי ספר ה-GoF, המשתתפים, מימוש מלא ב-Java ובפייתון על טופס שבו רכיבים תלויים זה בזה, ואיך לא להפוך את המתווך לאובייקט־אל.

8 דק׳ קריאה

תבניות התנהגות

תבנית Visitor: הוספת פעולות למבנה אובייקטים בלי לשנות אותו — double dispatch ומימוש מלא על עץ ביטויים

Visitor מייצגת פעולה שמתבצעת על האלמנטים של מבנה אובייקטים, ומאפשרת להגדיר פעולה חדשה בלי לשנות את מחלקות האלמנטים. ההגדרה לפי ספר ה-GoF, איך double dispatch עובד באמת, מימוש מלא על עץ ביטויים ב-Java ובפייתון, והחלופה המודרנית של pattern matching.

8 דק׳ קריאה

תבניות מבנה

תבנית Decorator (קשטן): עטיפת אובייקט בהתנהגות נוספת בלי ירושה — מימוש מלא ודוגמת זרמי קלט/פלט

תבנית Decorator, או קשטן, מוסיפה אחריות לאובייקט באופן דינמי ומהווה חלופה גמישה לירושה. ההגדרה לפי ספר ה-GoF, ארבעת המשתתפים, מימוש מלא ב-Java ובפייתון, איך זרמי הקלט/פלט של Java בנויים עליה, ולמה הסדר בין העטיפות קובע.

8 דק׳ קריאה

תבניות יצירה

תבנית Factory Method: הגדרה, מבנה, מימוש מלא ב-Java ובפייתון, ומתי היא עדיפה על new ישיר

Factory Method מגדירה ממשק ליצירת אובייקט ומשאירה למחלקות־הבת להחליט איזו מחלקה ליצור. ההגדרה המדויקת, ארבעת המשתתפים, מימוש מלא ב-Java ובפייתון, ההבדל מ"פקטורי פשוט" ומתי new ישיר עדיף.

8 דק׳ קריאה

מבוא לתבניות עיצוב

מה הן תבניות עיצוב (Design Patterns)? מקור, שלוש המשפחות, ומתי תבנית היא סתם שכבה מיותרת

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

8 דק׳ קריאה