دُرنکست (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برای یکپارچهسازی validationYupبرای اعتبارسنجی دادههاNuqsبرای مدیریت query stringهاImmerوuseImmerبرای مدیریت stateهای immutable
در بخشهای بعدی این مستندات، با ساختار معماری، جزئیات پکیجها و نحوه استفاده از قابلیتهای مختلف دُرنکست بهصورت دقیقتر آشنا خواهید شد.