TGViewer
Database Database @database_academy · 892 subscribers
Post #1528 48

Forwarded from Front-End

در مهندسی نرم‌افزار، API Compatibility یعنی یک نسخه‌ی جدید از API تا چه حد می‌تواند بدون خراب کردن کدهای قبلی، جایگزین نسخه‌ی قبلی شود.
مثلاً فرض کن API قبلی این endpoint را دارد:
GET /users/123

و پاسخ می‌دهد:
{
"id": 123,
"name": "Ali"
}

اگر در نسخه‌ی جدید همچنان همین endpoint و فیلدها را حفظ کنی، معمولاً backward compatible هستی.
اما اگر تبدیلش کنی به:
GET /user/123

یا name را حذف کنی، کلاینت‌هایی که با نسخه‌ی قبلی کار می‌کردند ممکن است بشکنند؛ پس breaking change ایجاد کرده‌ای.
چند نوع مهم Compatibility
1. Backward Compatibility
نسخه‌ی جدید API می‌تواند کلاینت‌های قدیمی را پشتیبانی کند.
مثلاً اضافه کردن یک فیلد جدید:
{
"id": 123,
"name": "Ali",
"email": "ali@example.com"
}

معمولاً مشکلی برای کلاینت قدیمی ایجاد نمی‌کند، چون email را نادیده می‌گیرد.
2. Forward Compatibility
سیستم قدیمی بتواند تا حدی با داده‌ها یا API جدیدتر کنار بیاید. این معمولاً سخت‌تر از backward compatibility است.
3. Source Compatibility
کدی که با API قبلی نوشته شده، بدون تغییر بتواند compile شود.
مثلاً اگر در Java این را داشته باشیم:
user.getName();

و در نسخه‌ی جدید getName() را حذف کنیم، source compatibility شکسته می‌شود.
4. Binary Compatibility
برنامه‌ای که قبلاً compile شده، بتواند با نسخه‌ی جدید library اجرا شود، بدون اینکه دوباره compile شود.
نکته‌ی خیلی مهم
وقتی در پروژه می‌گویند:
"Is this API change compatible?"

معمولاً منظورشان این است:
آیا این تغییر باعث می‌شود consumerهای فعلی API مجبور به تغییر کدشان شوند یا نه؟
More from @database_academy
  1. Oct 15, 2026🔵 عنوان مقاله How we're building a context engine to cut agent token use by 71% (12 minut…
  2. Oct 15, 2026🔵 عنوان مقاله asyncpg 0.32.0: Fast Postgres Client Library for Python/asyncio 🟢 خلاصه مق…
  3. Oct 14, 2026🔵 عنوان مقاله Apache Spark Resource Optimization: Lessons From Eight Million Jobs a Day (…
  4. Oct 14, 2026🔵 عنوان مقاله Your Ontology Records Permission. It Does Not Resolve Authority (11 minute…
  5. Oct 14, 2026🔵 عنوان مقاله The reverts will continue until morale improves (5 minute read) 🟢 خلاصه مق…
  6. Oct 14, 2026🔵 عنوان مقاله Designing enzymes for new-to-nature chemistry and non-natural substrates wi…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →