این هفته یه چالش واقعی با تیم بکاند داشتیم: چطور API پایدار بسازیم بدون اینکه کار سرویسهای دیگه یا کاربران خراب بشه؟ 😅
چند نکته که وسط بحث پیش اومد:
Versioning (نسخهبندی)
بعضیها میخواستن تغییرات جدید رو همون نسخه موجود اعمال کنن، اما من اصرار داشتم: هر تغییر بزرگ = نسخه جدید (v1, v2).
دلیل؟ سرویسهای قدیمی باید بدون دردسر کار کنن و مشتریها کمکم به نسخه جدید مهاجرت کنن.
Backward Compatibility (سازگاری به عقب)
وقتی یه فیلد جدید اضافه میشد یا رفتار endpoint تغییر میکرد، باید نسخه قبلی هنوز کار میکرد. این یکی از بحثهای داغمون بود؛ چون تیم میخواست راحت تغییر بده، من میگفتم: «نه، نباید چیزی رو بشکنیم!»
Change Management (مدیریت تغییرات)
مستندسازی و changelog، تستهای اتوماتیک و قوانین سخت برای حذف فیلدها یا تغییر رفتارها. اول هشدار، بعد تغییر. این مرحله باعث شد همه تیمها روی یک خط باشن و کسی غافلگیر نشه.
Post #768
135
Forwarded from Armin codes (Armin Shaikhy)