תכנון API

אידמפוטנטיות ב-API: איך מונעים חיוב כפול מבקשה כפולה
בקשת API שנשלחת פעמיים היא לא תקלה נדירה. משתמש לחץ שוב על כפתור התשלום, הדפדפן ניסה לשלוח מחדש, לקוח מובייל איבד קליטה, או שירות פנימי קיבל timeout והחליט לבצע retry.…
ארכיון
40 מאמרים על תבניות עיצוב, עקרונות תכנון וארכיטקטורת תוכנה, מהחדש לישן.
תכנון API

בקשת API שנשלחת פעמיים היא לא תקלה נדירה. משתמש לחץ שוב על כפתור התשלום, הדפדפן ניסה לשלוח מחדש, לקוח מובייל איבד קליטה, או שירות פנימי קיבל timeout והחליט לבצע retry.…
מיקרו־שירותים

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

תרשים רצף UML, או uml sequence diagram, הוא אחד הכלים היעילים ביותר לתיאור שיחה בין אובייקטים, שירותים, משתמשים ומערכות חיצוניות לאורך זמן. הוא לא נועד להציג “את כל המערכת”, אלא…
תכנון מונחה עצמים

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

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

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

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

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

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

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