در این مطلب قصد داریم در مورد نست جی اس و برتریهای آن نسبت به جاوا در کاربردهای مربوط به وبسرویسها صحبت کنیم. با خواندن این مقاله، شما یک دید کامل به نست جی اس پیدا خواهید کرد و در انتهای آن خواهید دانست که آیا نست برای پروژهی بعدی شما مناسب هست یا نیست! پس بهتر است شروع کنیم.
نست جی اس توسط آقای کامل مایزلیویچ (Kamil Myśliwiec) توسعه پیدا کرده است. نست بهعنوان یک فریمورک برای ساخت سریع اپلیکیشنهای سمت سرور طراحی شده است. آقای مایزلیویچ در ساخت این فریمورک بهشدت از انگولار (Angular) الهام گرفته است و این موضوع کاملاً از ساختار اپلیکیشنهای نست مشخص است. این الهام گرفتن از انگولار را میتوان در نحوهی استفاده از کنترولرها، پرووایدرها، ماژولها و پایپها مشاهده کرد. همهی این موارد در یک ساختار فولدری قرار میگیرند که کاملاً مشابه با نحوهی کار اپلیکیشنهای انگولار هستند.
مزایای نست جی اس
یکی از زیباییهای نست این است که نست خودش را در یک محل تلاقی منحصربهفرد در بین توسعهی فرانتاند و میانه قرار داده است. بسیاری از زبانهای برنامهنویسی برای پیدا کردن این جایگاه همواره در حال تلاش هستند. نست جی اس هر توسعهدهندهی جاوایی را کاملاً بینیاز از هر چیز دیگری میکند. این فریمورک در همهی موارد، از اندپوینت ها گرفته تا مستندات و داکیومنت های تولیدشده توسط آنها، کاملاً تفسیر محور است. بسیاری از قسمتهای آزاردهندهی نود جی اس (Node.js) و جاوا اسکریپت توسط همین تفسیرها مخفیشدهاند و نتیجهی این کار بسیار لذتبخش است. این تفسیرها فقط برای توسعهدهندههای سطح میانی مفید نیست؛ بلکه توسعهدهندههای فرانتاند هم در مورد اندپوینت های تروتمیز این فریمورک نسبت به Node شگفتزده خواهند شد. تفسیر محور بودن نست باعث میشود برنامهنویسی با آن خیلی سادهتر شود.
همانطور که گفتیم؛ ساختار فولدری نست بهشدت بر اساس انگولار ساختهشده است. این ویژگی باعث میشود تا کمترین زمان ازکارافتادگی را در اولین طراحی سرویس توسط نست داشته باشیم. همهی کامپوننتها، به همراه ماژول اپلیکیشن و فایلهای اصلی موجود در روت بهعلاوهی بعضی فایلهای پیکربندی دیگر، در فولدر مربوط به خودشان قرار میگیرند. این ساختار به همان سادگیای است که به نظر میرسد. همچنین به توسعهدهنده اجازه میدهد تا بهجای توجه به ساختار اپلیکیشن، توجه بیشتری به طراحی اندپوینت های موردنظر مشتری داشته باشد.
تایپ اسکریپت
نست جی اس، از آخرین و بهترین نسخهی تایپ اسکریپت (TypeScript) استفاده میکند. استفاده از تایپ اسکریپت به کسب اطمینان از متناسب عمل کردن نست در تغییر سریع دید جاوا اسکریپت، کمک میکند. همچنین به توسعهدهنده اجازه میدهد که کمتر به تغییر متن کدهای برنامهنویسی (Context Switching) نیاز پیدا کند. تغییر دادن کدهای برنامه از انگولار به نست کاملاً بدون دردسر انجام میشود. بااینوجود توسعهدهندههای سطح میانی و سمت سرور همچنان باید با Context Switching درگیر باشند. اما حداقل تایپ اسکریپت و بررسی نوع در آن از جاوا اسکریپت به زبانهای برنامهنویسی سطح متوسط نزدیکتر است.
همانند انگولار، نست جی اس هم یک ابزار خط فرمان بینقص دارد. این ابزار از طریق nestjs/cli که مدیر پکیجهای نود (Node Package Manager) است؛ در دسترس است. ابزار خط فرمان به شما اجازه میدهد تا چارچوب پروژه را مشخص کنید؛ کامپوننتهایی با معماری نست تولید کنید و اطلاعات پروژه را نمایش دهید. مستندات این موارد را میتوانید در اینجا مشاهده کنید.
معایب نست جی اس
بزرگترین ریسکی که توسعهدهندههای نست میتوانند با آن روبرو شوند؛ کمبود مستندات در آن است. این فریمورک با سایر فریمورک ها هماهنگی بسیار خوبی دارد. اما داکیومنت های آن بسیار کم است و همهی مسائلی که ممکن است به وجود بیایند را پوشش نمیدهد. اما باید اعتراف کرد که با توجه به ساختار سادهشدهی این فریمورک، مسائلی که ممکن است به وجود بیایند؛ زیاد نخواهند بود. اما وقتی یک مشکل برای شما به وجود بیاید؛ استفاده از سایت Stackoverflow میتواند مفید باشد.
یک نگرانی جزئی دیگر در مورد نست این است که طول عمر آن چقدر خواهد بود. در حال حاضر نست بهصورت هفتگی توسط افراد زیادی دانلود میشود. اما نست، رقبای زیادی در بین فریمورکهای سمت سرور دارد. نست در استفاده از تایپ اسکریپت و رابطهای که با انگولار دارد؛ همواره ثبات خودش را حفظ کرده است. اما نست پشتوانهی قدرتمندی مثل IBM یا یک شرکت بزرگ دیگر را ندارد. بر اساس آنچه در سایت نست آمده است؛ بزرگترین استفادهکننده از نست جی اس، آدیداس (Adidas) است. همچنین کمپانیهای بزرگ دیگری هم هستند که احتمالاً از نست استفاده میکنند ولی در صفحهی اصلی سایتشان استفاده از آن را ذکر نکردهاند. این هم یک نقطهضعف کوچک برای این شرکتها است؛ زیرا وقتی یک فریمورک را برای استفاده انتخاب میکنند بهتر است آن را ذکر کنند.
نتیجهگیری
در حال حاضر Nestjs/core بیش از 500 هزار دانلود هفتگی در سایت npm دارد. اگر این مقاله را تا این قسمت مطالعه کردهاید؛ به شما پیشنهاد میکنیم که چند ماژول نست را دانلود کرده و آنها را امتحان کنید.