תכנון API

GraphQL מול REST: מה כל אחד פותר בתכנון API, ומה המחיר האדריכלי שלו
GraphQL ו-REST אינם שתי דרכים שונות “לעשות אותו דבר”. הם פותרים בעיות תכנון שונות, ולכן גם יוצרים כשלים שונים. מי שבוחר ביניהם רק לפי נוחות בצד הלקוח, או לפי מה…
ארכיון
40 מאמרים על תבניות עיצוב, עקרונות תכנון וארכיטקטורת תוכנה, מהחדש לישן.
תכנון API

GraphQL ו-REST אינם שתי דרכים שונות “לעשות אותו דבר”. הם פותרים בעיות תכנון שונות, ולכן גם יוצרים כשלים שונים. מי שבוחר ביניהם רק לפי נוחות בצד הלקוח, או לפי מה…
מיקרו־שירותים

כאשר מערכת בנויה ממיקרו־שירותים, נפילה של שירות אחד היא לא אירוע מקומי בלבד. קריאה איטית לשירות תשלומים, קטלוג או הרשאות יכולה להחזיק חיבורים, לחסום threads, להגדיל תורים, ולהפוך תקלה קטנה…
UML ותרשימים

תרשים מקרי שימוש, או uml use case diagram, הוא אחד הכלים הפשוטים ביותר ב־UML — ובדיוק בגלל זה קל להשתמש בו לא נכון. במקום לתאר מה המשתמשים רוצים להשיג מהמערכת,…
תכנון מונחה עצמים

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

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

תבנית command design pattern מטפלת ברגע שבו פעולה כבר אינה רק קריאה ישירה למתודה, אלא משהו שצריך לשמור, להעביר, להריץ מאוחר יותר, לבטל או לבצע שוב. במקום שאובייקט אחד יגיד…
תבניות התנהגות

תבנית Template Method, או בשם החיפוש הנפוץ template method design pattern, היא אחת מתבניות ההתנהגות החשובות בתכנות מונחה־עצמים. הרעיון פשוט אך חזק: מחלקת־אב מגדירה את שלד האלגוריתם, כלומר את סדר…
תבניות מבנה

תבנית facade design pattern נועדה לפתור בעיה מוכרת בתכנון מונחה־עצמים: לקוח פשוט צריך לבצע פעולה עסקית אחת, אבל בפועל הוא נאלץ להכיר חמש מחלקות, סדר קריאות רגיש, חריגות פנימיות ופרטי…
תבניות יצירה

תבנית singleton design pattern נראית פשוטה: מחלקה אחת, מופע אחד, נקודת גישה אחת. דווקא בגלל הפשטות הזאת היא אחת מתבניות היצירה שהכי קל לממש לא נכון. מימוש נאיבי עלול להישבר…
מבוא לתבניות עיצוב

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