PDA

View Full Version : حرفه ای: معماری یک سیستم شبکه اجتماعی



alifallah
سه شنبه 26 آذر 1392, 20:44 عصر
سلام، من چند وقت پیش یه اسکریپت شبکه اجتماعی نوشتم ولی متاسفانه چون اون زمان کلاس نویسی بلد نبودم و با خیلی از فریمورک ها کار نکرده بودم اسکریپتی شد که توسعه ش خیلی سخته!
میخوام نسخه جدیدش رو از نو بنویسم و اگر خدا بخواد هسته سیستم رو رایگان بزارم رو نت تا همه بتونن ازش استفاده کنن و توسعه داده بشه!
چندتا سوال و کمک برای شروع!
به نظرتون برای هسته شبکه اجتماعی از فریمورک Codeigniter استفاده کنم بهتره یا اینکه هسته رو از پایه بنویسم؟!
معماری دیتابیس چطور باشه که رو اطلاعات بالا اذیت نکنه؟!
درمورد ایندکس ها و .. کمی راهنمایی کنید!
و در آخر برای اینکه ماژولار باشه باید چیکار کنم؟!

alifallah
چهارشنبه 27 آذر 1392, 19:21 عصر
نکنه اینجا هم باید پارتی داشته باشیم تا جواب ما رو بدن :))
انشاالله که اینطور نباشه :)

javadt
چهارشنبه 27 آذر 1392, 22:13 عصر
به نظر بنده اگر الان سطح علمیتون اونقدر زیاد شده که می تونید یک هسته مطمئن و بی عیب و نقص بنویسید خودتون دست به کار بشید
ولی اگر شک دارید که بتونید چنین هسته بنویسید می تونید از Codeigniter یا yii استفاده کنید.
برای بحث عمومی و توسعش هم از فریم ورک های بالا استفاده کنید بهتر هست.
چون شخص توسعه دهنده دیگه نم یخواد بیاد هسته شما رو چک کنه و کافی به اون فریم ورک و توابع شما در برنامه آشنا باشه

navid3d_69
پنج شنبه 28 آذر 1392, 11:55 صبح
برای معماری دیتابیس بیشتر شبکه های اجتماعی بزرگ از nosql استفاده می کنند ولی برای این جور اسکریپت ها میشه از mysql هم استفاده کرد و جواب گو هست

اگر می خواین توسعه داده بشه از فریم ورک استفاده کنید و سریعتر هست روند توسعه هم بهتر

alifallah
پنج شنبه 28 آذر 1392, 18:06 عصر
با nosql اصلا آشنایی ندارم و فقط با mysql کار کردم و با توجه به جواب هایی که دادید به نظرم همون استفاده از فریم ورک Codeigniter بهتر باشه :)
برای اینکه امکانات جدید به صورت دستی توسط مدیر سایت اضافه نشه و همه کارها به صورت پلاگین مثل وردپرس و خیلی از سیستم های دیگه خودکار انجام بشه ایده ای دارید؟

mroveissi
جمعه 29 آذر 1392, 02:15 صبح
به نظر من از cakephp استفاده کنید. معماری قدرتمندی داره و امتحانشو روی پروژه های سنگین پس داده . البته من خودم یک فریم ورک mvc قوی برای خودم نوشتم و پروژه هامو با اون پیاده می کنم. برای تحقیقات اولیه فریم ورک روی اکثر فریم ورکا کار کردم و به نظرم کیک بهتره

MMSHFE
جمعه 29 آذر 1392, 08:37 صبح
درخصوص ساختار دیتابیس هم بهتره مثل FB عمل کنید یعنی جدولهای پر بازدید ولی دارای رکوردهایی کمتر از بقیه (مثل Users و...) که نیاز به Relation و ساختار جدولی دارن رو با RDBMSها (مثل MySQL) و جداولی مثل پستهای کاربران و... رو که نیازمند امکان ذخیره سازی رکوردهای بالا و بعضاً فاقد ساختار یکسان در رکوردهای مختلف هستن رو با NoSQL (مثل MongoDB) پیاده سازی کنید. درمورد سیستم پلاگین نویسی و... همه فریمورکها این قابلیت رو به شما میدن. ولی درمورد اینکه کدوم فریمورک رو انتخاب کنید، پیشنهاد میکنم این دو تصویر رو ببینید:
http://yii2.swsco.ir/PHP,%20frameworks,%20Yii2_files/performance.png
http://static.yiiframework.com/images/performance-20090131.png
دیگه تصمیم با خودتون.

desatir7316
جمعه 29 آذر 1392, 18:03 عصر
دوستان نمودار دوم بر حسب کاراییه، پس یعنی هرچی بیشتر باشه بهتره ولی توی نمودار اول که بر حسب زمان پاسخ گویی برای درخواست های همزمانه مقدار کمتر یعنی بهتر بودن

desatir7316
جمعه 29 آذر 1392, 19:47 عصر
مقایه فریم ورک ها، شاید کمک بکنه (http://www.phpframeworks.com/)

راستی یه چیز جالبی اینجا (http://www.quora.com/PHP/What-kind-of-PHP-framework-do-Facebook-engineers-use)دیدم، معمولا همه جا میگن برای پروژه های بزرگ از فریم ورک استفاده میشه، حالا من در مورد فیس بوک سرچ کردم که به اون لینک رسیدم، ولی دیگه نمی دونم در چه حد معتبره ولی حداقل قابل تامل هست

MMSHFE
جمعه 29 آذر 1392, 23:36 عصر
دیدن این لینک هم خالی از لطف نیست:
http://www.phpframeworks.com/top-10-php-frameworks

desatir7316
شنبه 30 آذر 1392, 08:47 صبح
بچه ها اینجا (http://forum.iranphp.org/Thread-%D8%A8%D9%87%D8%AA%D8%B1%DB%8C%D9%86-%D9%81%D8%B1%DB%8C%D9%85-%D9%88%D8%B1%DA%A9-PHP?pid=50080#pid50080) یکی از دوستان اشاره کرده که استفاده از فرم ورک توی shared hosting اذیت می کنه شدید
کسی می دونه کلا محدودیت فریم ورک ها چی هست (حالا توی هر ضمینه ای)؟
ممنون

desatir7316
شنبه 30 آذر 1392, 09:11 صبح
کسی می دونه توی نمودار دومی RPS without APC , RPS with APC چی هستن؟

MMSHFE
شنبه 30 آذر 1392, 09:37 صبح
RPS یعنی Requests Per Second (تعداد درخواستی که در ثانیه تونسته جواب بده)
APC هم یک افزونه است که اسکریپتهای PHP رو Cache میکنه.

mahmod2000
شنبه 30 آذر 1392, 10:04 صبح
منظورتون از افزونه اینه که رو هاست یا سروری که میگیریم باید بگیم APC رو سرور نصب کنن؟

MMSHFE
شنبه 30 آذر 1392, 10:12 صبح
اگه هاست اشتراکی باشه بله و اگه سرور اختصاصی دارین، خودتون به راحتی میتونید نصب کنید.

alifallah
شنبه 30 آذر 1392, 18:41 عصر
درخصوص ساختار دیتابیس هم بهتره مثل FB عمل کنید یعنی جدولهای پر بازدید ولی دارای رکوردهایی کمتر از بقیه (مثل Users و...) که نیاز به Relation و ساختار جدولی دارن رو با RDBMSها (مثل MySQL) و جداولی مثل پستهای کاربران و... رو که نیازمند امکان ذخیره سازی رکوردهای بالا و بعضاً فاقد ساختار یکسان در رکوردهای مختلف هستن رو با NoSQL (مثل MongoDB) پیاده سازی کنید. درمورد سیستم پلاگین نویسی و... همه فریمورکها این قابلیت رو به شما میدن. ولی درمورد اینکه کدوم فریمورک رو انتخاب کنید، پیشنهاد میکنم این دو تصویر رو ببینید:
دیگه تصمیم با خودتون.

استاد بابت راهنمایی که انجام دادید خیلی خیلی ممنونم
در ارتباط با دیتابیس و طراحی جداول، ایندکس ها چقدر میتونن موثر باشن؟!
من تا حالا با پایگاه داده ای غیر از Mysql کار نکردم
کلاس های کار با دیتابیس هم روی سرعت تبادل اطلاعات میتونه تاثیر داشته باشن؟

MMSHFE
یک شنبه 01 دی 1392, 10:31 صبح
ایندکس کلاً روی سرعت تأثیر زیادی داره. منتها به شرطی که توی کوئری و داخل شرطها و... دخالت داده بشه. مثلاً اگه جدول دانشجویان شما بر اساس فیلد name ایندکس شده باشه، توی کوئری زیر تأثیری نداره:
SELECT `grade` FROM `students` WHERE (`family`='amini');
کار با پایگاههای داده دیگه سخت نیست. فقط باید تصمیم بگیرین تجربه کنید. البته پایگاههای داده ای مثل MongoDB توی حجم بالای داده ها تأثیرشون رو نشون میدن.
کلاسها هم تأثیر زیادی میتونن داشته باشن. PDO سرعتش خوبه.