Adapter. Target Interface. Adaptee. Wrapper. Object Adapter. Class Adapter. Bridge Pattern. Anti-Corruption Layer. Legacy Integration. SDK Wrapping. Interface Translation. Two-Way Adapter.
אלה המושגים שמבדילים בין צוות ש-migration ל-SDK חדש לוקח לו שבועיים, לבין צוות שמשנה PR אחד ומסיים. ספטמבר 2022, Stripe מכריזה ש-charges.create() deprecated - יש לכם 6 שבועות ו-50 מקומות בקוד שקוראים אליה. Adapter Pattern הוא ההבדל בין 50 PRs ושבוע regression bugs לבין PR אחד שעוטף את ה-SDK מאחורי interface פנימי. בשיעור הזה תכירו את ה-mechanics, מתי לבחור Adapter על Facade, ולמה כל codebase שעובד עם API חיצוני חייב את ה-pattern הזה.
יש שתי דרכים לטפל בזה. האחת: לעבור על 50 הקבצים, לשנות בכולם את הקריאה, לעשות Code Review של 50 PRs, ולהתפלל. השנייה: לכתוב Adapter אחד שעוטף את Stripe SDK מאחורי Interface פנימי. לעדכן את ה-Adapter ב-PR אחד. ה-50 קבצים האחרים? לא נוגעים בהם. אפס שינויים. זה ההבדל בין צוות שיודע Patterns לבין צוות שלא.