Architecture Decision Record

Active theme: Light

← مثال‌های رکورد تصمیم

رکورد تصمیم معماری: snake_case یا camelCase برای یک REST API؟

تصمیم: قرارداد نام‌گذاری snake_case برای نقاط پایانی REST API استفاده خواهد شد

وضعیت: پذیرفته‌شده

زمینه

در قراردادهای نام‌گذاری REST API دو قالب محبوب وجود دارد: snake_case و camelCase. در قالب snake_case هر کلمه در نام با زیرخط جدا می‌شود، در حالی که در camelCase کلمهٔ اول نام با حروف کوچک است و حرف اول کلمات بعدی بزرگ نوشته می‌شود. این تصمیم تعیین خواهد کرد که برای یک REST API کدام قرارداد نام‌گذاری باید به کار رود.

عوامل تصمیم

  • سازگاری با قراردادهای نام‌گذاری موجود در پروژه

  • خوانایی و وضوح برای هر کسی که ممکن است روی API کار کند

  • همسویی با بهترین شیوه‌های صنعت برای قراردادهای نام‌گذاری REST API

  • سهولت پیاده‌سازی و نگهداری

تصمیم

قرارداد نام‌گذاری snake_case برای نقاط پایانی REST API استفاده خواهد شد. این انتخاب را عوامل زیر پیش برده‌اند:

  1. سازگاری: پروژه پیش‌تر برای همهٔ نقاط پایانی از قرارداد snake_case استفاده می‌کند و حفظ این قرارداد برای تضمین سازگاری در کل پروژه سودمند خواهد بود.

  2. خوانایی و وضوح: قرارداد snake_case خواناتر و فهمیدنش آسان‌تر است. زیرخط‌ها میان کلمات جداسازی روشنی ایجاد می‌کنند و تجزیه و درک معنای نام را آسان‌تر می‌کنند.

  3. همسویی با بهترین شیوه‌های صنعت: قرارداد snake_case در صنعت به‌طور گسترده به کار می‌رود و بهترین شیوه برای REST API شمرده می‌شود و آن را برای پروژه انتخاب خوبی می‌کند.

  4. سهولت پیاده‌سازی و نگهداری: پایبندی به قرارداد نام‌گذاری موجود پیاده‌سازی و نگهداری آسان‌تری دارد، زیرا اگر قرارداد جدیدی انتخاب می‌شد همهٔ کد و مستندات موجود باید به‌روزرسانی می‌شدند.

پیامدها

این تصمیم پیامدهای بالقوه‌ای دارد.

  • اگر اعضای جدیدی که به پروژه می‌پیوندند با قرارداد نام‌گذاری snake_case آشنا نباشند، ممکن است به سردرگمی و اشتباه در توسعه بینجامد. با این حال، چون snake_case قراردادی پرکاربرد است، چنین ریسکی حداقلی است.

  • اگر در پروژه ابزارها یا چارچوب‌های دیگری استفاده شوند که به‌شدت بر قرارداد camelCase مبتنی‌اند، ممکن است تبدیل میان قراردادهای نام‌گذاری تلاش اضافی بطلبد. با این حال، این نگرانی مهمی نیست زیرا پروژه قرارداد snake_case را استاندارد کرده است.

در مجموع، تصمیم به استفاده از قرارداد نام‌گذاری snake_case برای نقاط پایانی REST API رویکردی یکسان، خوانا و مطابق استاندارد صنعت به دست می‌دهد، در حالی که پیاده‌سازی و نگهداری آن آسان است.

اعتبار: این صفحه توسط ChatGPT تولید و سپس برای وضوح و قالب ویرایش شده است.