بلاگ فنی با تمرکز بر فرانت‌اند

بازگشت به فهرست مطالب

ساختار و نام‌گذاری (Structure and Naming)

[ منبع ]
ساختار و نام‌گذاری (Structure and Naming)
  • از سازمان‌دهی فایل‌ها بر اساس نقش (مانند قرار دادن همه فایل‌های controllers در یک پوشه و تمام فایل‌های models در پوشه‌ای دیگر) خودداری کنید. همچنین فایل‌های تست همان بخش را هم در همان پوشه بگذارید.
ساختار نامطلوب
.
├── controllers
|   ├── product.js
|   └── user.js
├── models
|   ├── product.js
|   └── user.js
md

ساختار مطلوب
.
├── product
|   ├── index.js
|   ├── product.js
|   └── product.test.js
├── user
|   ├── index.js
|   ├── user.js
|   └── user.test.js
md

چرا

به جای داشتن یک لیست طولانی از فایل‌ها، با داشتن ماژول‌های کوچک با مسئولیت‌های مشخص و خاص، می‌توانید دسترسی به فایل‌ها را ساده‌تر کرده و زمان جستجو را برای پیدا کردن یک فایل کاهش دهید.

  • اگر تستی وجود دارد که به یک فایل خاص مرتبط نیست، آن را در پوشه‌ای با نام‌های متداولی مانند test یا __test__ قرار دهید.

چرا

این کار از سردرگمی جلوگیری کرده و باعث می‌شود سایر هم‌تیمی‌ها یا کارشناسان DevOps راحت‌تر بتوانند فایل‌های تست را پیدا کرده و نیز موجب صرفه‌جویی در زمان می‌شود.

  • از یک پوشه به نام ./config برای تنظیمات استفاده کنید و از ایجاد فایل‌های پیکربندی جداگانه برای هر محیط (development، test، production) خودداری کنید.

چرا

در صورت افزایش استقرار (deployment)های برنامه، ممکن است محیط‌های بیشتری به پروژه اضافه شود و مدیریت آن‌ها پیچیده شود. بهتر است تنظیمات را در یک پوشه‌ی مشخص مانند config قرار دهید و مقادیر مورد نیاز را از طریق متغیرهای محیطی (environment variables) دریافت کنید. (توضیحات بیشتر …)

  • اسکریپت‌های bash، node و یا هر اسکریپت اجرایی دیگری را در پوشه‌ی ./scripts نگه دارید.

چرا

معمولاً به بیش از یک اسکریپت نیاز خواهید داشت (مانند اسکریپت ساخت نسخه production، ساخت نسخه توسعه development، اسکریپت‌های مرتبط با پایگاه داده و غیره).

  • فایل‌های تولیدشده (مانند فایل‌های bundle، کامپایل‌شده، و ترنسپایل‌شده) را در پوشه‌ی ./build قرار دهید و در فایل .gitignore نیز آن را مستثنی کنید.

چرا

نام‌گذاری آن به سلیقه شما بستگی دارد، dist نیز گزینه خوبی است، ولی این نام‌گذاری را با تیم خود هماهنگ کنید. فایل‌هایی که در این پوشه قرار می‌گیرند، قابل تولید مجدد هستند و هم‌تیمی‌ها شما نیز باید قادر به تولید آن باشند؛ در نتیجه نیازی به قراردادن آن‌ها در مخزن گیت نیست، مگر در شرایط خاص.