ورود

توجه ! این یک نسخه آرشیو شده میباشد و در این حالت شما عکسی را مشاهده نمیکنید برای مشاهده کامل متن و عکسها بر روی لینک مقابل کلیک کنید : استفاده از php یا nodejs



<?php?>
March 28th, 2020, 22:16
بین php و nodejs خیلی تحقیق کردم . چیزایی که یاد گرفتم :

میدونم که Nodejs به صورت Asynchronous کد هاشو بررسی میکنه و همین موضوع باعث شده سرعتشم بیشتر باشه . و در مقابل php به صورت Synchronous کد ها رو بررسی میکنه .

همچنین اینو هم میدونم که nodejs به صورت single thread در request های سرور , عمل میکنه ( این یعنی همه در خواست ها رو با یک thread به صورت رویدادی پاسخ میده ) و در قابل php به صورت multi thread این کارو میکنه در سمت سرور > و نتیجه اینه که nodejs سریع تر و حجم بیشتری میتونه پاسخ بده نسبت به php .
تصویر تفاوت php و nodejs در عملکرد thread هاشون : https://miro.medium.com/max/1400/0*Ekgnc6fI1kqbfvON.jpg


همچنین اینو هم تو مقالات خوندم با تفاوت های اساسی که nodejs داره به نسبت php میتونه تعداد request بالا در زمان کمتر رو منجرب بشه
تصاویر و لینک های بنچ مارک ها :
https://miro.medium.com/max/1400/1*X...PZvL3-FZhg.png (https://miro.medium.com/max/1400/1*XGTOfo9taLfePZvL3-FZhg.png)
https://medium.com/@mihaigeorge.c/we...n-ebb743a5d7a3 (https://medium.com/@mihaigeorge.c/web-rest-api-benchmark-on-a-real-life-application-ebb743a5d7a3)
https://jaxbot.me/pics/bubblecomparison.png


همچنین میدونم برای اجرای nodejs باید سرور اختصاصی یا مجازی حداقل داشته باشی و هزینش یکم بیشتر از php میشهو ب این موضوع هم مشکلی ندارم .

یا اینو هم میدونم که nodejs در استخدام ها و یا جامعه اماری سوالات در استک اور فلو شاید از php کمتر باشه و با اینم مشکلی ندارم .

با همه این معیار ها
من میخوام به جای php از nodejs استفاده کنم برای دو دسته از وب سایت ها :

spa یا single page aplication که به صورت تک صفحه ای کار میکنن .
و mpa یا multi page aplication مثلا فرض کنید باهاش میخوایم دیجی کالا و اینگونه سایت ها یا فروشگاه های اینترنتی پیاده سازی بشه . (و چرا اصلا یکی مثل دیجیکالا نمیره سمت node ? )

حالا به نظرتون اگر من برای ساخت mpa ها یا spa ها از این زبان کامل استفاده کنم چه مشکلی برام به جود میاد ؟

ممنون میشم بدون تعصب به من مشاوره بدین . هممون با Php کار کردیم و میدونم کمی سخته که بخوایم چیزی که سالیان سال پرستیدیم و زندگی کردیم باهاش یه شبه در اینده بزاریمش تو اولویت دوم و یا حتی کنارش بزاریم . از همه دوستان و اساتید بزرگواری تو این تاپیک کمکم میکنن بسیار تشکر میکنم .

be099
March 29th, 2020, 00:44
پایتون:d

جدا از شوخی
اینو همیشه یادت باشه هر زبونی دیدی داره هی آپدیت میشه ازش استفاده کن فرقی نداره php یا نود
با هردو کار کردم و طبق تجربه اینو میگم
php بخاطر اینکه با وبسرور های قدرتمنی مثل آپاچی و انجین اکس کار میکنه برای ساخت و توسعه وب خیلی راحت تر و سریع تره و ابزار های خیلی باحالی داره
nodejs از پایه وبسروی میسازه که طبق نیاز شماست ! و خیلی روی سوکت ها مانور داده که خیلی برای ساخت و توسعه اپ ها و پردازش در لحظه کاربرد داره

نتیجه گیری اینکه باید همیشه هیبریدی باشی یعنی از همه چیز سر در بیاری برنامه نویس تک بعدی به درد نمیخوره بعدم اینروزا دیگه سینتکس و زبان و نوع استفاده زیاد مهم نیست
مهم نوع معماری و مهندسی برنامه و طراحی الگوریتم ها کلاس های قابل توسعس ...

T.Toosi
March 29th, 2020, 01:34
باسلام،

شما با PHP هم می توانید کد نویسی یا عملیات های غیر همزمان با کال بک و .. انجام بدهید، پروژه های HHVM , ReactPHP, AMP را بررسی کنید. اگر به درستی استفاده شود به صورت محسوس و باور نکردنی سرعت را احساس خواهید کرد اما خب بیشتر برنامه نویس ها چون فکر می کنند PHP به صورت ناتیو چیزی برای این کار ندارد، سراغ ـش نمیرن و سخت در اشتباه هستند.

در مورد بنچمارک ها به نظر من فقط بنچمارک هایی که سرعت خواندن و نوشتن فایل، مقدار دهی آرایه، عملیات های محاسباتی و .... دو تا زبان را محاسبه کردند معتبر است، در غیر این صورت سمت PHP باید وب سرور asynchronous و event‑driven باشد (مثل nginx) و اسکریپت هم اگر در حَد echo نیست سمت PHP هم thread باید non-blocking باشد (asynchronous نوشته شود)، اگر به این صورت نباشد نتایج کاملا فرق خواهد داشت. اما خب با این تفاسیر 99% بنچمارک ها به ما میگن Node سریعتر است.

در مورد سایت های spa به علت توانایی راه اندازی یک پروژه isomorphic (رندرگیری سمت سرور و کاربر تمام با جاوا اسکریپت) Node ایده آل شده است اما به این معنی نیست نمی توانیم یک پروژه رندرگیری فقط در سمت سرور پیاده کنیم، شما با express می توانید مسیر یابی کنید و هرچی که می خواهید رندر کنید.

در کل یادگیریش عالی و پیشنهاد می شود با توجه به نیاز پروژه می توانید انتحاب کنید، اگر خودم بخواهم یک پروژه با angular یا react و isomorphic پیاده کنم صد در صد سراغ Node خواهم رفت یا اگر نیاز به یک ارتباط real-time داشته باشد هیچ زمان PHP را انتخاب نمی کنم.

firebox
March 29th, 2020, 12:57
به نظر من مهم ترین مزیت Node.js اینکه آسونی کار باهاش هست ، از نصب و راه اندازی تا ایجاد یک وب سرور ساده رو میشه توی چند دقیقه انجام داد و اینکه برای طراحی وب اپ ها ، یکی بودن زبان برنامه نویسی سمت سرور و کاربر یک مزیت خیلی خوبی هست.
در مورد asynchronous بودن Node.js، الان خیلی زبان های دیگه هم این قابلیت رو دارن ، همین PHP یا Python، منتها تفاوتی که وجود داره اینکه ، Node.js (یا به طور دقیق تر Javascript ) کلا بر مبنای این معماری پیاده سازی شده ،‌ من خودم اخیرا توی زبان پایتون از Asyncio برای برنامه نویسی asynchronous استفاده میکنم، گاهی اوقات یکسری مشکلاتی داره که آدم اذیت میکنه و دیباگ اش زمان بره ، یا اینکه هر کتابخانه ای رو نمیشه باهاش استفاده کرد ، باید اون کتابخونه بر مبنای coroutines باشه.

از نظر کارایی هم قابلیت Single Thread بود و asynchronous باعث میشه Node.js توی انجام کارهایی که وابسطه به IO هست، کارایی بالاتری نسبت به PHP (حنی با استفاده از ماشین مجازی مثل HHVM ) داشته باشه.
اکثر وب اپ ها (مخصوصا API سروها) بیشتر کارشون مربوط به IO هست، به همین دلیل Node.js انتخاب بهتری هست، اما اگر برنامه ای می نویسید ، نیازی به پردازش بالایی داشته باشه، Node.js گزینه مناسبی نیست (به خاطر اینکه نمیتونه از تمام توان پردازنده استفاده کنه)، البته گزینه های مثل Worker threads بهتون امکان استفاده از چند رشته رو میده ، اما کارایی اش مثل زبان های که کاملا بر این اساس هست نیست. (این رو هم بگم برای انجام کارهای با پردازش بالا PHP هم گزینه ی مناسبی نیست، استفاده از زبانی مثل Go پیشنهاد میشه)

در حال حاضر از دلیلی که شرکت ها میان زبان PHP رو انتخاب میکنن، یکی راحت بودن پیدان کردن نیروی کارش هست، (به خصوص تو ایران) و همین اینکه میزبانی سایت های PHP خیلی راحت تره برای افراد، کافیه یک هاست بخرن و اسکریپت رو اپلود کنن، نیازی نیست که سرور بخرن و کانفیگ اش کنن، به جز این موارد هیچ دلیل فنی وجود نداره کسی بخواهد PHP رو به جای هز زبان برنامه نویسی مدرنی که تو ۷-۶ سال اخیر معرفی شده انتخاب کنه.

اگر میخواهید برنامه نویسی به جاوا اسکریپت رو شروع کنید،‌ پیشنهاد من اینکه از همین اول با Typescript شروع کنید ، Typescript از نوع داده پشتیبانی میکنه و کدهاش خوانایی بالاتری داره و کتابخانه های React هم الان به طور کامل پشتیبانی میکنن ازش، (Angular پیشفرض از Typescript استفاده میشه).