View Full Version : مشورت در مورد انتخاب هسته برنامه که دارای اینترفیس تحت وب و اندروید است
lidaline
دوشنبه 10 آبان 1395, 15:57 عصر
با سلام
یک برنامه دارم که قراره یک هسته اصلی داشته باشه و 2تا اینترفیس
یکی از اینترفیس ها تحت وب خواهد بود و دیگری برای موبایل که فعلا اندروید کار خواهم کرد تا بعد که ios هم کار کنم
حالا منو کمک کنید
تحت وب mvc کار کنم یا js node?
برای هسته اصلی برنامه وب سرویس بهتره یا API?
همینطور اینکه هسته ی برنامه رو با چه زبانی بنویسم منعطف تر خواهد بود؟
خوشحال میشم از تجربه هاتون بهم بگین و راهنماییم کنید
Nevercom
دوشنبه 10 آبان 1395, 16:25 عصر
سلام
اول اجازه بدید ایرادات سوالتون رو بگم:
تحت وب mvc کار کنم یا js node?
NodeJS فریموورکی هست تحت جاوا اسکریپت برای برنامه نویسی سمت سرور، MVC الگوی برنامه نویسی هست که در هر زبانی میتونه پیاده سازی بشه، ارتباط مستقیمی با هم ندارن.
برای هسته اصلی برنامه وب سرویس بهتره یا API?
باز هم تفاوت این دو مشخص نیست، وب سرویس و API یک تعریف هستن و نه یک تکنولوژی، یعنی وقتی میگید هسته ی اصلی وب سرویس باشه مشخص نیست که زبان چی هست، الگو چی هست و تکنولوژی چی هست، API هم به همین شکل، API صرفاً به این معنا هست که ساز و کاری در اختیار کلاینت قرار میدید که بتونه با برنامه ی شما ارتباط برقرار کنه.
در پاسخ به سوالتون، تجربه ی شخصیم رو خدمتتون عرض می کنم.
من سیستم رو به دو بخش کلاینت و سرور تقسیم می کنم، یا عبارت فنی ترش Backend و Frontend.
در بخش بک اند، چیزی که بعنوان هستهی اصلی ازش یاد کردید ساخته میشه، درواقع تمامی عملیاتی که لازم هست، صرفنظر از اینکه اونی که درخواست میده برنامه ی اندروید هست یا وب پیجی در یک مرورگر، در این بخش انجام میشه. این رو میشه API نامید.
درواقع شما به این قسمت براساس اصولی که در API توضیح داده شده، درخواست میدید و پاسخ رو در قالبی مشخص دریافت می کنید.
برای اینکه آدمای دیگه توی تیم بهتر بتونن از چیزی که میسازم استفاده کنن، از Swagger (http://swagger.io/) استفاده می کنم.
در بخش Frontend از این API استفاده میشه تا با سرویس ارتباط برقرار بشه، و اینجا فرقی نداره که کلاینت از چه جنسی باشه، برنامه موبایل باشه، یا در مرورگر اجرا بشه و برنامه ی دسکتاپ باشه.
به این دلیل که الگو ثابت هست، بعد از ساختن یک کلاینت، ساخت کلاینت بعدی راحت تر هست (اگه قرار باشه جفتش رو خودم انجام بدم).
برای طراحی وبسایت، من از AngularJS استفاده می کنم (دلایل زیادی داره و یکیش این هست که تخصص اصلی من frontend نیست، ولی این ابزار این کار رو خیلی برام راحت می کنه در یک قالب منطقی)
در مورد زبان، انتخاب شما باید زبانی باشه که بیشتر بهش تسلط دارید. اگر به چند زبان مسلط هستید و قصد انتخاب بین اونها هست، باید دید نیاز پروژه چی هست و هرکدوم از این زبانها چه مزیت هایی برای اون مورد استفاده ی خاص دارند.
من از PHP استفاده می کنم بخاطر اینکه روش مسلط هستم، و با اینکه روی جاوا بعنوان یک زبان مسلط هستم، در مورد تکنولوژی ها و فریم وورک های این زبان برای وب اطلاع چندانی ندارم و فعلن گزینه ی مناسبی برای من نیست.
lidaline
دوشنبه 10 آبان 1395, 17:27 عصر
بله درسته سوال ام شاید واضح نبود ولی منظورم از mvc به معنای کلام asp.net mvc بود.
ولی خوب بین وب سرویس و API تفاوتهای عمده ای هست که دوست داشتم با هم برای این نوع خاص برنامه اینجا نقد و بررسی میکردیم.مفاهیم همه جای اینترنت هست ولی تجربه نه
ودلیل اینکه پرسیدم "کوربرنامه به چه زبانی باشه منعطفتر خواهد بود؟ "به این خاطر هست که بهتر بود مینوشتم که انتخاب بهتره بین زبانهای دات نت باشه یا جاوا؟
بک اند این نرم افزار مطمین ان به دیتابیس متصل هست.انتخاب بین جاوا یا دات نت بیشتر برای مقایسه بین بررسی تفاوتها خواهد بود.من خودم دات نت کار هستم ولی با جاوا کار کرده بودم ولی به دلیل بازار کار ایران که بیشتر دات نت هست به این سمت کشیده شدم.حالا فرض کنید که شاید من میخوام از دات نت به جاوا مهاجرت کنم آیا جاوا رو اونقدر منعطف میبینید که به هر نیاز فردا پاسخگو باشه؟قاعدتا اینطور هست چون جاوا محبوبتر از زبانهایی مثل سی شارپه ولی خیلی وقته از جاوا کنار کشیدم دوست دارم نظرات رو ببینم و مقایسه کنم.
خوب من فقط الان میتونم از دات نت بگم و تکنولوژیهایی که داره مثلا اگر با دات نت کار کنم بک اند ام رو از طریق data entity framework یا linq و ... راه میندازم تا بتونم با لایه دیتابیس بهتر کار کنم و اگر روزی دیتابیس ام رو بخوام عوض کنم برنام هبی تغییر بمونه یا اصلا برای پیاده سازی کل بک اندم از WCF یا web API استفاده کنم ولی ببینید سمت جاوا نمیدونم چه گزینه هایی هست؟از شما میخوام به این شکل کمک کنید گزینه هارو بهم پیشنهاد بدین
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.