پرش به مطلب اصلی

دُرنکست (Dornext) چیست؟

دُرنکست یک میکرو-فریمورک داخلی مبتنی بر Next.js و React است که توسط تیم زیرساخت فرانت‌اند طراحی شده است. این فریمورک به‌عنوان یک لایه استاندارد روی Next.js عمل می‌کند تا توسعه‌ی فرانت‌اند در سطح سازمانی ساده‌تر، منسجم‌تر و قابل پیش‌بینی‌تر شود.

دُرنکست مجموعه‌ای از ابزارها، ساختارها و پکیج‌های مشترک را در اختیار تیم‌ها قرار می‌دهد تا پروژه‌ها بدون نیاز به تصمیم‌گیری‌های تکراری و تنظیمات اولیه، بر اساس یک الگوی مشخص آغاز شوند.


اهداف اصلی دُرنکست

دُرنکست با تمرکز بر بهبود فرآیند توسعه در سطح سازمانی طراحی شده و اهداف آن در سه محور اصلی تعریف می‌شود:

  • استانداردسازی توسعه در کل سازمان: ایجاد یک ساختار واحد برای پروژه‌ها، شامل معماری، الگوهای کدنویسی و ابزارهای مشترک، برای جلوگیری از پراکندگی تصمیمات فنی.
  • افزایش سرعت توسعه: کاهش زمان راه‌اندازی پروژه و حذف تنظیمات تکراری از طریق ارائه‌ی کانفیگ‌ها و ابزارهای از پیش آماده.
  • بهبود نگه‌داری و مقیاس‌پذیری: فراهم‌سازی یک ساختار ماژولار و قابل توسعه که امکان رشد تدریجی و مدیریت ساده‌تر پروژه‌های بزرگ را فراهم می‌کند.

قابلیت‌های کلیدی

دُرنکست مجموعه‌ای از ابزارها، استانداردها و تنظیمات پایه را به‌صورت پیش‌فرض در اختیار تیم‌ها قرار می‌دهد:

ابزارهای بهبود تجربه توسعه (Developer Experience Tools)

  • پیکربندی استاندارد ESLint برای تضمین کیفیت کد
  • تنظیمات یکپارچه Prettier جهت فرمت‌بندی منسجم کد
  • استفاده از Commitlint برای کنترل و استانداردسازی پیام‌های commit
  • بهره‌گیری از Husky برای مدیریت Git hooks
  • پیکربندی استاندارد TypeScript متناسب با نیاز سازمان
  • ساختار پوشه‌بندی از پیش تعریف‌شده و قابل توسعه

ساختار پروژه خودکار

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


پکیج‌های داخلی دُرنکست

دُرنکست شامل مجموعه‌ای از پکیج‌های داخلی و قابل اشتراک‌گذاری است که به صورت ماژولار طراحی شده‌اند:

  • @dornica/components: مجموعه کامپوننت‌های UI مشترک
  • @dornica/configs: تنظیمات و کانفیگ‌های استاندارد سازمانی
  • @dornica/hooks: هوک‌های قابل استفاده مجدد
  • @dornica/libraries: کتابخانه‌های پرکاربرد و عمومی
  • @dornica/providers: پروایدرهای سراسری اپلیکیشن
  • @dornica/types: تایپ‌های مشترک و سازمانی
  • @dornica/utilities: مجموعه توابع کمکی و ابزارهای عمومی

پکیج‌ها و وابستگی‌های پیش‌فرض

دُرنکست به‌صورت پیش‌فرض از مجموعه‌ای از کتابخانه‌های استاندارد و پرکاربرد پشتیبانی می‌کند:

  • تمامی پکیج‌های داخلی @dornica/*
  • TanStack Query برای مدیریت داده‌های سمت سرور و کلاینت
  • React Hook Form برای مدیریت فرم‌ها
  • Hookform resolvers برای یکپارچه‌سازی validation
  • Yup برای اعتبارسنجی داده‌ها
  • Nuqs برای مدیریت query stringها
  • Immer و useImmer برای مدیریت stateهای immutable

در بخش‌های بعدی این مستندات، با ساختار معماری، جزئیات پکیج‌ها و نحوه استفاده از قابلیت‌های مختلف دُرنکست به‌صورت دقیق‌تر آشنا خواهید شد.