View Full Version : زبان برتر برای راه اندازی سرور
mnakhaeipoor
چهارشنبه 09 دی 1394, 07:55 صبح
سلام
من توی یک اپ اندرویدی برا یه اداره مهم نیاز به داشتن یه سرور خوفناک دارم
یه چیزی تو مایه های سرور تلگرام :لبخند: :لبخند: :لبخند:
ابته اینی که میگم شبیه تلگرام از جهت بزرگ بودن نیست از جهت این میگم که نیازه حجم زیادی دیتا بین سرور و اپ منتقل بشه مثل اپلیکیشن بازار که Server Based هست
حالا سوالم اینه که چه تکنولوژی و زبانی تو ایران بیشتر به درد این کار میخوره و امنیت مناسب تری داره ؟؟ (php ? java ? ASP ? ... ?)
Nevercom
چهارشنبه 09 دی 1394, 10:09 صبح
جواب هایی که اینجا میگیرید ممکنه کمتر تخصصی باشن، بهتر بود سوال رو در بخش مربوط به زبان های تحت سرور می پرسیدید.
در سیستم های محتوا محور، از بعد نرم افزار سه بخش خیلی اهمیت دارن:
وب سرور
دیتابیس
زبان برنامه نویسی
وب سرور مناسب بهتون کمک می کنه حجم بالایی از درخواست ها رو بپذیرید، درواقع این بخش لایه ای هست که درخواست ها رو دریافت می کنه، به بخش پردازشی میفرسته و پاسخ رو به کلاینت بر میگردونه، پس این بخش اهمیت بسزایی داره.
اگر از تکنولوژی های مایکروسافتی استفاده می کنید تقریباً محدود به ویندوز و IIS هستید (که البته بر اساس شواهد - نه تجربه ی شخصی - وب سرور مناسبی هست)
اما اگر NET. استفاده نمیکنید، سیستم عامل لینوکس برای سرور رو انتخاب کنید
وب سرورهایی متنوعی وجود دارن، بر اساس تجربه ی شخصی، از Apache استفاده نکنید، حداقل از NginX شروع کنید. وب سرور های دیگری هستن که در شرایطی از NginX هم بهتر جواب میدن، پیشنهاد من NginX در ابتدا هست.
انتخاب دیتابیس خیلی وابسته به نوع داده های اپ داره، و البته حجم داده ها. دو انتخابی که با اولین جستجو بهشون میرسید اینها هستن RDBMS و NoSQL.
توضیح هر کدوم از اینها بزرگ تر از خود سوال شما هست، اما در حالت کلی اگر حجم عظیمی از دیتا رو باید ذخیره و پردازش کنید (از لحاظ مقیاسی، شاید حجم گیگابایت در روز)، NoSQL انتخابی هست که باید بهش توجه کنید.
در باقی موارد RDBMS ها کاملاً جواب میدن (معروف ترینشون MySQL)
انتخاب زبان برنامه نویسی از درجه ی اهمیت کمتری برخورداره، نه اینکه مهم نباشه، درواقع انتخابی که اینجا انجام میدید تا آخر عمر پروژه باهاتون هست، وب سرور رو میشه خیلی راحت عوض کرد، اگر کدنویسیتون اصولی باشه تعویض دیتابیس هم چندان دشوار نیست، اما بازنویسی کدها با یک زبان دیگه غیرقابل تصور هست.
منظور این هست که همه ی زبان های مطرح امروزی از لحاظ سرعت و پایداری در حد بسیار خوبی قرار دارن (PHP, Python, Java, Ruby, JavaScript, .NET)، پس انتخاب یک زبان بخاطر سرعت اجرا چندان موضوعیتی نداره. اما مهم تر اکوسیستمی هست که هر زبان با خودش داره.
اگر PHP رو انتخاب کنید، برای هر سوالتون ۱۰جواب وجود داره، زبان خوبی هست و سریع میشه برنامه رو نوشت. اما PHP یک بدی داره، خیلی راحت میشه توش کدهای کثیف نوشت، اگر PHP رو انتخاب کردید، از همون اول ساختار مناسبی برای کدنویسی انتخاب کنید و با همون برید جلو. شاید PHP از بین سایر زبان ها از همه کمتر مدرن باشه.
NodeJs پروژه ای هست که امکان برنامه نویسی با JavaScript در سمت سرور رو فراهم می کنه، من شخصاً تستش نکردم اما باید توجه کنید که این تکنولوژی هنوز نوپا هست، کمی توش تجربه کسب کنید بعد به نوان تکنولوژی اصلی برای یک برنامه ی مهم ازش استفاده کنید (جاوا اسکریپت مرتب تر از PHP هست، اما باز هم جا برای کدهای کثیف بازه)
پایتون هم انتخاب خوبی هست، من شخصاً سینتکسش رو دوست ندارم و هیچ وقت دلیلی پیدا نکردم که از PHP به پایتون مهاجرت کنم
جاوا شاید معادل Net. در دنیای اوپن سورس هست، شاید اگر بخواید برنامه هایی برای سیستم های Enterprise بنویسید، جاوا مجموعه ی کاملی از تکنولوژی ها رو داره.
سایر زبان ها رو تست نکردم و نظر درستی ندارم.
مهم تر از همه این هست که شما با کدوم یکی از این زبان ها آشناتر هستید و تخصص بیشتری دارید، چون نوشتن یک برنامه ی بزرگ و بهینه بیشتر از همه نیاز به مهارت در برنامه نویسی داره، پس باید زبان مورد استفاده رو خوب بشناسید.
شاید اگر توضیح بهتری در مورد شرایطی که قراره سرور داشته باشه و فشاری که قراره بهش بیاد بدید، بشه بهتر راهنمایی کرد.
اگر قرار هست چیزی در حد بازار باشه، همه ی زبان هایی که صحبتش شد کاملاً مناسب هستن. در مورد بازار زبان نقش محدود کننده نداره، هر زبانی که تیم توسعه انتخاب کرده باشه جواب خواهد داد، اما مسلماً مدیر دیتابیس و مدیر سروری داشتن که دانش لازم برای بهینه سازی در بخش تخصصی خودشون رو داشتن.
جایی زبان اهمیت پیدا می کنه که شرایط خاصی حاکم باشه، مثلاً در مورد واتس اپ از زبان Erlang استفاده کردن( برای بخش مدیریت پیام ها و درواقع Messaging Server) چون احساس کردن قابلیت هایی که داره برای Concurrency در حدی که واتس اپ نیاز داره مناسب تر از سایر زبان ها هست.
mnakhaeipoor
چهارشنبه 09 دی 1394, 14:34 عصر
جواب هایی که اینجا میگیرید ممکنه کمتر تخصصی باشن، بهتر بود سوال رو در بخش مربوط به زبان های تحت سرور می پرسیدید.
در سیستم های محتوا محور، از بعد نرم افزار سه بخش خیلی اهمیت دارن:
وب سرور
دیتابیس
زبان برنامه نویسی
وب سرور مناسب بهتون کمک می کنه حجم بالایی از درخواست ها رو بپذیرید، درواقع این بخش لایه ای هست که درخواست ها رو دریافت می کنه، به بخش پردازشی میفرسته و پاسخ رو به کلاینت بر میگردونه، پس این بخش اهمیت بسزایی داره.
اگر از تکنولوژی های مایکروسافتی استفاده می کنید تقریباً محدود به ویندوز و IIS هستید (که البته بر اساس شواهد - نه تجربه ی شخصی - وب سرور مناسبی هست)
اما اگر NET. استفاده نمیکنید، سیستم عامل لینوکس برای سرور رو انتخاب کنید
وب سرورهایی متنوعی وجود دارن، بر اساس تجربه ی شخصی، از Apache استفاده نکنید، حداقل از NginX شروع کنید. وب سرور های دیگری هستن که در شرایطی از NginX هم بهتر جواب میدن، پیشنهاد من NginX در ابتدا هست.
انتخاب دیتابیس خیلی وابسته به نوع داده های اپ داره، و البته حجم داده ها. دو انتخابی که با اولین جستجو بهشون میرسید اینها هستن RDBMS و NoSQL.
توضیح هر کدوم از اینها بزرگ تر از خود سوال شما هست، اما در حالت کلی اگر حجم عظیمی از دیتا رو باید ذخیره و پردازش کنید (از لحاظ مقیاسی، شاید حجم گیگابایت در روز)، NoSQL انتخابی هست که باید بهش توجه کنید.
در باقی موارد RDBMS ها کاملاً جواب میدن (معروف ترینشون MySQL)
انتخاب زبان برنامه نویسی از درجه ی اهمیت کمتری برخورداره، نه اینکه مهم نباشه، درواقع انتخابی که اینجا انجام میدید تا آخر عمر پروژه باهاتون هست، وب سرور رو میشه خیلی راحت عوض کرد، اگر کدنویسیتون اصولی باشه تعویض دیتابیس هم چندان دشوار نیست، اما بازنویسی کدها با یک زبان دیگه غیرقابل تصور هست.
منظور این هست که همه ی زبان های مطرح امروزی از لحاظ سرعت و پایداری در حد بسیار خوبی قرار دارن (PHP, Python, Java, Ruby, JavaScript, .NET)، پس انتخاب یک زبان بخاطر سرعت اجرا چندان موضوعیتی نداره. اما مهم تر اکوسیستمی هست که هر زبان با خودش داره.
اگر PHP رو انتخاب کنید، برای هر سوالتون ۱۰جواب وجود داره، زبان خوبی هست و سریع میشه برنامه رو نوشت. اما PHP یک بدی داره، خیلی راحت میشه توش کدهای کثیف نوشت، اگر PHP رو انتخاب کردید، از همون اول ساختار مناسبی برای کدنویسی انتخاب کنید و با همون برید جلو. شاید PHP از بین سایر زبان ها از همه کمتر مدرن باشه.
NodeJs پروژه ای هست که امکان برنامه نویسی با JavaScript در سمت سرور رو فراهم می کنه، من شخصاً تستش نکردم اما باید توجه کنید که این تکنولوژی هنوز نوپا هست، کمی توش تجربه کسب کنید بعد به نوان تکنولوژی اصلی برای یک برنامه ی مهم ازش استفاده کنید (جاوا اسکریپت مرتب تر از PHP هست، اما باز هم جا برای کدهای کثیف بازه)
پایتون هم انتخاب خوبی هست، من شخصاً سینتکسش رو دوست ندارم و هیچ وقت دلیلی پیدا نکردم که از PHP به پایتون مهاجرت کنم
جاوا شاید معادل Net. در دنیای اوپن سورس هست، شاید اگر بخواید برنامه هایی برای سیستم های Enterprise بنویسید، جاوا مجموعه ی کاملی از تکنولوژی ها رو داره.
سایر زبان ها رو تست نکردم و نظر درستی ندارم.
مهم تر از همه این هست که شما با کدوم یکی از این زبان ها آشناتر هستید و تخصص بیشتری دارید، چون نوشتن یک برنامه ی بزرگ و بهینه بیشتر از همه نیاز به مهارت در برنامه نویسی داره، پس باید زبان مورد استفاده رو خوب بشناسید.
شاید اگر توضیح بهتری در مورد شرایطی که قراره سرور داشته باشه و فشاری که قراره بهش بیاد بدید، بشه بهتر راهنمایی کرد.
اگر قرار هست چیزی در حد بازار باشه، همه ی زبان هایی که صحبتش شد کاملاً مناسب هستن. در مورد بازار زبان نقش محدود کننده نداره، هر زبانی که تیم توسعه انتخاب کرده باشه جواب خواهد داد، اما مسلماً مدیر دیتابیس و مدیر سروری داشتن که دانش لازم برای بهینه سازی در بخش تخصصی خودشون رو داشتن.
جایی زبان اهمیت پیدا می کنه که شرایط خاصی حاکم باشه، مثلاً در مورد واتس اپ از زبان Erlang استفاده کردن( برای بخش مدیریت پیام ها و درواقع Messaging Server) چون احساس کردن قابلیت هایی که داره برای Concurrency در حدی که واتس اپ نیاز داره مناسب تر از سایر زبان ها هست.
از توضیحات کاملتون به شدت سپاس گزارم :قلب:
حقیقتش با توجه به سه فاکتور صحبت های شما و تخصص و علاقه ترجیح میدم با Net. و IIS استفاده کنم
اما از کجا باید شروع کنم؟
Nevercom
چهارشنبه 09 دی 1394, 20:52 عصر
کدها رو که روی کامپیوتر خودتونید هم میتونید تست کنید، وب سرور رو نصب کنید و کدها رو اجرا کنید.
زمانی که خواستید سرور تهیه کنید مقیاس کار رو درنظر بگیرید. اگر اپ یوزرهای زیادی خواهد داشت بهتره سرور از لحاظ سخت افزاری قوی باشه. اگه بیشتر کاربراتون تو ایران هستن، سرور داخل ایران یک مزیته چون Ping Time بهتری بهتون میده.
سرور رو از جایی تهیه کنید که بهتون امکان بده بعداً Ram و CPU رو اضافه کنید.
حتماً سروری تهیه کنید که SSD داره، یکی از عامل های محدود کننده تو سرعت پاسخ سرور همین هارد دیسک کند هست.
از بعد نرم افزاری هم که نباید مشکلی وجود داشته باشه.
ساختار دیتابیس رو هم درست انتخاب کنید، یه Schema ی بد میتونه دردسر ساز بشه. اگر دسترسی دارید با یه DB Admin مشورت کنید.
البته همه ی اینها با این فرض هست که این سیستم از روز اولش اونقدر مهم هست که تمام این جوانب از روز اول لحاظ بشه، وگرنه تو کارهای دیگه میشه رفته رفته سیستم رو بهبود بخشید و ایرادات رو برطرف کرد، درواقع زمانی که نیاز بود بهینه سازی ها اعمال بشه.
keyhan.taktaz
چهارشنبه 09 دی 1394, 21:38 عصر
کار که می افته دست آدم های آماتور، وضع IT میشه این.
وضع همه سایت ها و اپلیکشن های دولتی میشه این!
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.