نگاهی به amplication _ توسعه بی درد بک اند در NodeJs !

امپلیکیشن بنا به تعریف خودش یک ابزار توسعه nodejs است که دست به تولید ساختاری میزند که مد نظر شماست. شما با استفاده از یک وب اپ GUI، تمام بخش ها و الزامات مورد نیاز را تعیین میکنید و تولید آن به عهده amplication است. قرار نیست این برنامه رو با برنامه دیگری قیاس بزنم، صرفا دو روزی باهاش کار کردم و تجربه شخصیم رو به عنوان یک بک اند دولوپر میگم. 1_ داکیومنت برنامه خوبه، سرراست و واضحه و در عرض نیم ساعت، پی به ساختار کل برنامه می برید و خب برنامه هم چندان پیچیدگی عظیمی نداره. 2_ نحوه مدیریت درخواست هاش خیلی ساده و قابل فهمه ( مبتنی بر ساختار nestjs ). اگر تجربه کار با کنترلرها رو داشته باشید، در تایپ اسکریپت از دکوریترها جهت نسبت دادن پارامتر ها به کلاس استفاده می شود به طور مثال درخواست های GET یا POST به متدهای کنترلرتون منتقل میشه. به طور مثال:@Post(&quotsignup&quot) async signup(@Body() body: Credentials): Promise<UserInfo> { return this.authService.signup(body); }این دکوریتر، درخواست هایی از نوع Post که منتهی به signup است را دریافت میکند و متد signup را جهت ثبت نام کاربران بر میگرداند. 3_ کانسپت Entity: یکی از نقاط قوت این برنامه، راه اندازی سریع دیتابیس هست که تحت عنوان entity در نظر گرفته شده. وقتی می خواهید یک ساختار نسبتا پیچیده رو طراحی کنید، خیلی راحت می تونید انتیتی ها رو ایجاد کنید و سطح دسترسی رو برای هر کاربر مشخص کنید. سرعت تولید و راه اندازی این ساختار بسیار بالاست. مهم ترین بخش انتیتی ها اینه که میتونید ریلیشن بین تیبل ها رو مشخص کنید چون مشخصه که برنامه شما قرار نیست یه سری داده رو از یه سری تیبل مشخص به صورت مستقیم و ساده دریافت کنه، قراره این تیبل ها با هم در ارتباط باشن و شما با چندین تیبل مرتبط کار کنید. این روند رو برای شما بسیار تسریع میکنه.4_ به شخصه هیچ تجربه ای با تایپ اسکریپت نداشتم و تنها تجربیات من در این زمینه اندکی کار با نود جی اس بود و کمی کار با ری اکت. برای درک بهتر، نگاهی به داکیومنت تایپ اسکریپت هم انداختم. برام لذت بخش بود که تا چه اندازه میتونه به راه اندازی ساختار بک اند، سرعت بده و تنها لازمه تغییرات ریز مد نظر خودت رو اعمال کنی. تصور کنید یک برنامه نویس فرانت اند که تجربه زیادی در بک اند نداره، بنا به نیاز بخواد یک API راه اندازی کنه. ایجاد کل ساختار بک اند تا چه حد میتونه براش دشوار و طولانی باشه. من فک میکنم این مبحث هم میتونه یه نقطه قوت باشه، هم یک نقطه ضعف بزرگ. چرا نقطه ضعف؟ به این دلیل که ما باز هم در دام ساختارهای از پیش تعیین شده می افتیم. هرگونه ضعف در این ساختار، موجب ایجاد هدر رفت وقت از همان برنامه نویسی خواهد شد که به امید سرعت بالاتر به سمت این پروژه قدم برداشته. نه تنها باید وقت بگذاریم تا باگ ساختار را پیدا کنیم بلکه ساختار برنامه خود را به ساختار معیوب این برنامه پیوند زدیم. شاید این عنصر چندان مطلوب کسانی نباشد که از پایه در پی ایجاد یک ساختار پایدار اند. تجربیات تلخی که ساختارهای آماده یکپارچه مانند CMS ها به ما داده اند شاید نقطه دافعه چنین برنامه هایی باشد. گرچه این برنامه نه CMS است و نه فریم ورک. بلکه برنامه ای است جهت تولید ساختارهای از پیش آماده شده جهت توسعه برنامه های مبتنی بر نود جی اس. با اتوماتیک سازی ساختار، کار شما را راحت تر میکند.5_ به این نکته هم باید توجه کنید که این برنامه هم ساختار آن چنان عجیب غریبی خلق نمیکند در واقع همان محیط نود جی اس با محوریت تایپ اسکریپت ( مبتنی بر ساختار nestJs ) است همراه با اضافاتی مثل Controller و Authentication و چیزای دیگه. حالا ممکنه بگید خیلی از فریم ورک های مدرن، با چند کد خط فرمان، به راحتی می تونن برای شما کامپوننت هایی مثل Auth رو فراهم بیارن و اصلا به قول معروف " ?what's the point man " .حقیقتش رو بگم، خودمم خیلی پوینت خاصی رو نگرفتم از این برنامه و نقد کاملا به جایی هست. 6_ این برنامه علاوه بر همه این ها، یک Admin UI هم براتون تولید میکنه که فرایند تولید و کنترل User ها رو براتون راحت تر میکنه. این کنترل پنل هم چندان چیز خاصی نداره جز کنترل کاربرها، تولید و ایجاد پرمیشن برای هر کدوم. این بخش گرافیکی هم بر مبنای ReactJs نوشته شده. 7_ طبق گفته های خودش رایگانه و قراره رایگان هم بمونه در کنار پلن های اینترپرایزش! اگه قراره پلن رایگانش در همین حد بمونه ( نظر شخصی خودم، ارزش چندانی نداره جز یه بار اضافه برای شرکت ها! ) خیلی ساده بخوام بگم گرچه امپلیکیشن، برای تولید محصولات شرکتی ایجاد شده، اما در این سطح هنوز مسیر طولانی ای جهت کسب رضایت یک توسعه دهنده دارد. ابتدا از خود بپرسید: چه کاری با امپلیکیشن می توانم انجام دهم که با مابقی فریم ورک ها و ابزارهای کامند لاین نمی توانم؟ پاسخ کمی تلخ است، حقیقتا هیچ! ( حداقل در حال حاضر )امپلیکیشن قرار است تا چه اندازه فرایند توسعه محصولات را تسریع کند؟ حقیقتا برای یک توسعه دهنده سطح میدل، شاید بسیار کارآمد باشد ( آن هم در توسعه ساختار دیتابیس و ریلیشن هایش) ولی تصور نمیکنم چندان کمک خاصی برای یک توسعه دهنده سنیور باشد. البته که باید در نظر داشت این برنامه در نسخه Beta قرار دارد و به محض عرضه نسخه اینترپرایزش، باید دید چه امکانات پیشرفته تری را رونمایی خواهد کرد. در این سطح که به نظر راضی کننده نمی آید ... .اگر از این برنامه استفاده کردید، حتما حتما واسم نظرتون رو بنویسید ...