• 0 رای - 0 میانگین
  • 1
  • 2
  • 3
  • 4
  • 5
طراحی backend یک اپلیکیشن موبایل مانند اینستاگرام
#1
با سلام و درود به شما دوستان گرامی:
امیدوارم خوب باشید.
چندین سوال در موضوعی که مطرح کردم دارم:
1- آیا طراحی backend این سیستم با php/mysql کار درستی هست؟ و بهترین زبان چیست برای اینکار
2- نیاز به استفاده از سی پنل و دایرکت ادمین هست؟
3- برای فشار فراوانی که این سیستم ها روی سرور میارن چه کار میشه کرد
4- بهترین راه برای لاگین کردن از طرف برنامه این هست؟: یک بار نام کاربری و رمز رو بگیره و رمز رو سیو کنه و همیشه با اون لاگین باشه یا سیستم بهش یک توکن بده اونو سیو کنه؟
6-استفاده از کدام نوع api مناسب هست؟ rest OR soap ?
7- آیا فریم ورک خاصی برای این وجود داره؟
8- آیا فایل هایی که کاربران روی سیستم بارگذاری میکنند نیاز هست که تو سرور دیگه ذخیره بشه
9- بکاپ از این سرویس ها چطوری انجام میشه؟
و هر اطلاعات دیگری هم در مورد این نوع سرویس ها دارید ممنون میشم بدونم
باتشکر
  پاسخ
تشکر شده توسط :
#2
تاجاییکه بنده میدونم، پیاده سازی برنامه های در مقیاس بسیار بزرگ و جهانی مثل فیسبوک و اینستاگرام، مثل برنامه های عادی نیست. چون در چنین مقیاسی باید همه چیز بصورت توزیع شده و احتمالا افزونگی های لازم (یعنی اگر یک سروری چیزی خراب شد یکی دیگه جاش رو بگیره) طراحی بشه. که اینطور برنامه نویسی هم معلومه خب کار خیلی گسترده تر و پیچیده تری میشه. البته شاید فریمورک ها و نرم افزارهای آماده در این زمینه وجود داشته باشن که بتونن حداقل بخشی از این مشکلات و حجم و پیچیدگی رو کاهش بدن.

اکثر زبانهای برنامه نویسی خودشون تمام امکانات لازم جهت این مسائل رو ندارن. پس نیاز به فریمورک و افراد متخصص در مدیریت و کانفیگ های پیشرفته و پیچیده سمت سرور هست، نیاز به برنامه نویسان زبده و متخصص در توزیع شدگی و غیره. باید خیلی حرفه ای باشید، چون اینطور چیزها با سطح برنامه نویسی های معمولی خیلی تفاوت میکنه خیلی مشکلات توسعه و باگهای بیشتر و پیچیده تری میتونه وجود داشته باشه.

بعید نیست اصلا نتونید افرادی با این تخصص و توانایی ها رو در ایران پیدا کنید!
  پاسخ
تشکر شده توسط : tirdad
#3
مثلا فیسبوک رو ببینید چه کاره کرده اصلا در طول این سالها خودش نمیدونم چندتا فریمورک خفن درست کرده بخاطر نیازش در دنیا مطرح هستن و حتی بعضا اولین ها یا برجسته ترین ها در نوع خودشون بودن، نمیدونم زبان PHP رو دستکاری کرد کد PHP رو تبدیل میکرد به سی++ کامپایل میکرد، ...
خب اینا حتما نیاز بوده. و ببینید چه تیم توانمند و همه کاره ای داشتن که تونستن این کارهای بزرگ رو بکنن.
نمیدونم حتی یجا میخوندم فریمورک و تشکیلاتی مخصوص این درست کردن که برنامه و تشکیلات فیسبوک رو موقع کار آپدیت میکنن یا بصورت محدود عملا امکانات جدید رو در شرایط واقعی تست میکنن همهء اینا بدون اینکه یک دقیقه سرورها و فعالیتشون متوقف بشه کاربران دچار مشکلی بشن.
همهء اینها بری توی بحرش کارهای ساده ای نیست و خیلی جزییات داره خیلی هم علم و سواد و توان میخواد.

شما در کارهای مقیاس خیلی بزرگ باید چندین سرور داشته باشی حداقل و load balance و redundancy و این حرفا.

البته فکر کنم اینستاگرام به نسبت ساده تر محدودتر باشه.
  پاسخ
تشکر شده توسط : tirdad
#4
(۱۳۹۵ آبان ۰۹, ۰۷:۵۴ ب.ظ)tirdad نوشته: با سلام و درود به شما دوستان گرامی:
امیدوارم خوب باشید.
چندین سوال در موضوعی که مطرح کردم دارم:
1- آیا طراحی backend این سیستم با php/mysql کار درستی هست؟ و بهترین زبان چیست برای اینکار
2- نیاز به استفاده از سی پنل و دایرکت ادمین هست؟
3- برای فشار فراوانی که این سیستم ها روی سرور میارن چه کار میشه کرد
4- بهترین راه برای لاگین کردن از طرف برنامه این هست؟: یک بار نام کاربری و رمز رو بگیره و رمز رو سیو کنه و همیشه با اون لاگین باشه یا سیستم بهش یک توکن بده اونو سیو کنه؟
6-استفاده از کدام نوع api مناسب هست؟ rest OR soap ?
7- آیا فریم ورک خاصی برای این وجود داره؟
8- آیا فایل هایی که کاربران روی سیستم بارگذاری میکنند نیاز هست که تو سرور دیگه ذخیره بشه
9- بکاپ از این سرویس ها چطوری انجام میشه؟
و هر اطلاعات دیگری هم در مورد این نوع سرویس ها دارید ممنون میشم بدونم
باتشکر
اول از همه ببین حجم کارت چقدره. سیستم بزرگ یعنی چقدر کاربر الان داری؟ مثلا اینستاگرام رو نزنی چون کلا قضیه اونجا خیلی فرق می کنه. حتی ممکنه اینستاگرام تا سطح فایل سیستم هم رفته باشه جلو مثل دراپ باکس. بحث رو به یه سیستم نسبتا بزرگ محدود می کنیم/
۱- mysql اصلا گزینه مناسبی برای دیتاها با حجم های زیاد نیست. php شاید توی نسخه جدید بتونه بهت جواب میده ولی گزینه های مناسب زیادی هست. مثل nodejs یا go یا python که من پیشنهادم go هست
۲- قاعدتا نیازی به کنترل پنل نیست. توی این سیستم قطعا به یک مدیر سرور نیاز هست که همه کانفیگ ها رو انجام بده. اصلا نیاز به چندین سرور هست که به صورت رپلیکیشن و بالانس شده با همدیگه کار کنن
۳-بالانس کردن پارتیشین بندی رپلیکیشن و ... . هر بخشی نیازهای خودش رو داره و تخصص خودش رو می خواد
۴-توی هیچ سیستم لاگین امنی یوزر و پسورد توی جایی به غیر از سرور ذخیره نمیشه حتی توی سرور هم به صورت رمز شده ذخیره میشه
۵- پس پنجش کو Big Grin
۶- بین soap و rest قطعا rest ولی چیزهای دیگه هم هستن مثل grpc
۷- ابزارهای کمکی مثلا برای رپلیکشن و بالانس شاید وجود داشته باشه ولی از فریم ورک من خبری ندارم
۸- بهتره که توی یه سرور دیگه با کانفیگ درست ذخیره بشه
۹- point to point backup گرفته میشه
  پاسخ
تشکر شده توسط : ayoubsys Alaa
#5
سلام.
تاجایی که من میدونم برای تزریق اطلاعات از php یا توابع c# استفاده میکنن.
اما فقط برای ثبت درون اپ کاربری داره.
برای خوندن معمولا توابع بصورت JSon تبدیل میشن.
حالا برای موضوع شما به موردی مشابه برنخوردم Smile)
  پاسخ
تشکر شده توسط :


پرش به انجمن:


کاربران در حال بازدید این موضوع: 1 مهمان