Web Development Code
6.34K subscribers
389 photos
55 videos
132 files
201 links
قناة خاصه بتطوير الويب
ونشر مشاريع الويب
وكل مايخص الويب
الادمن : @Noureldin13
#Html
#Css
#Bootstrap
#JavaScript
#ReactJs
#Php
#NodeJs
#Mysql
#MongoDB
Buy ads: https://telega.io/c/codedevelopment

جروب المناقشة :
@codedevchat
Download Telegram
Web Development Code
Photo
السلام عليكم..

النهاردة هنتكلم عن حاجة بقالنا فترة مش بنجيب في سيرتها وهيا الnode js ومعلش طبعا على شوية التأخير دول
لو حضرتك ما قرأتش البوستات القديمة فأنصحك ترجع تقراهم الأول ولو مش حابب فممكن تقرا دلوقتي عادي جدا وان شاء الله لو فيه حاجة مش واضحة يبقى تسمع الكلام وترجع تقرا البوستات القديمة الأول

اتكلمنا طبعا قبل كدا عن ايه هيا الnode ببساطة واختصار وعرفنا مع بعض ازاي الjs بتتنفذ ووظيفة الevent loop

- تمام هنتكلم عن ايه جديد بقى النهاردة؟

مفيش جديد ولا حاجة هنتكلم عن الevent loop دي برضو بس هنقول شوية معلومات زيادة بس مش أكتر ونعرف انها مش لوحدها اللي شغالة

لما اتكلمنا قبل كدا عن الJS قولنا قبل كدا انها single-threaded non-blocking asynchronous programming language ومفروض اتكلمنا عن كل كلمة من الكلام ده وشرحناها
- تمام
وقولنا قبل كدا ان الناس عجبهم الموضوع بتاع الnon-blocking ده وقالوا ما تيجي نستغل الموضوع ده ونشغل الJS في الback-end و هنستفاد جدا من الحتة بتاعت الnon-blocking دي ومن هنا بدأت فكرة الnode.js وفكرة الevent loop وانها تشتغل على main thread والبرنامج عندي يبقى كله يبقى على فthread واحد وابعد عن مشاكل الmulti threading وحواراته

كبرت الفكرة وبدأنا نعمل بالnode.js شغل ونبدأ نجربه لاقيناه جميل جدا ولكن خلي باااااالك
فاكر قصة صاحب المطعم التالت كانت مشكلته ايه في القصة اللي حكيناها المرة اللي فاتت واللي تقدر تشوفها من هنا

https://t.me/codedevelopment/1644

مشكلة الmodel اللي الJS بتمثله هنا وهوا الsingle threaded asynchronous هوا ممتاز جدا في حالة انه مش بيعمل بلوك للكود لكن مع الشغل الكتير الراجل الجدع ده مش هيقدر يسد

فعلشان كدا كل الناس بتنصحك لو حضرتك عندك برنامج فيه شغل cpu كتير وحسابات كتير ف الnode.js مش هتقدر تسد معاك في الموضوع ده ومش هتبقى أحسن اختيار خالص
ﻷن طبعا لو افرتضنا نفس فكرة المثال بتاع المرة اللي فاتت ولكن كل عميل في المطعم محتاج عشان اخدمه لوحده مش اقل من نص ساعة يبقى ساعتها انا مش هقدر اعمله بلوك واشوف غيره انا مش هيبقى عندي مهرب ساعتها منه وهفضل لازق معاه طول النص ساعة دي ومش بعمل اي حاجة غير كدا فنفس الفكرة في الapplication بيبقى عندي بعض الtasks بتاخد وقت كبير جدا في الcpu فبالتالي هتعطلي باقي الكود من انه يتنفذ وهتبقى مشكلة على عكس لو فيه threads تانية شغالة وبتنفذلي المواضيع اللي هتطعلني دي

- طب وبعدين؟ الجماعة بتوع الnode سكتوا على كدا؟

لا طبعا الجماعة بتوع node قالك مينفعش عشان احنا مربوطين بالJS وانها single-threaded اننا نضيع شغلنا كله وتعبنا عشان نفضل محافظين ع الconcept ده

- طب عملوا ايه ؟ فضلوا متمسكين بيها ولا باعوها؟

لا هما فضلوا متمسكين بيها للآخر بس جه في الأخر وقالوا لا ضرر ولا ضرار بصوا يا جماعة ياللي هتستخدموا الnode.js
Node.js is single-threaded except when it’s not
واللي تقدر تشوف تفاصيل اكتر عن الموضوع ده من الحلقة دي
https://www.youtube.com/watch?v=zphcsoSJMvM

- طب وبعدين ايه معنى الكلام اللي قالوه ده؟

معنى الكلام ده انهم هيستخدموا الmulti-threading بس غصب عنهم أو بالأصح لما يكونوا محتاجينه بس عشان ميسببش مشاكل كتير ونرجع لماشكل الmulti threading تاني يعني على سبيل المثال لو عندي module بستخدمه عشان يعملي encryption او أي حاجة هتستهلك resources كتير فبدل ما اعطل الevent loop في تنفيذها واعطل الmain thread قالك ساعتها بقى احنا نستخدم الthread pool اللي عندنا عشان نستفاد وقت ومنعطلش الدنيا بدون ما يحصل عندنا أي مشاكل ومش بنستخدمها كدا في أي حاجات هيا ليها استخدامات معينة واللي هيا
I/O-intensive
1. DNS:dns.lookup(),dns.lookupService().
2. File System: All file system APIs except fs.FSWatcher() and those that are explicitly synchronous use libuv's threadpool.
CPU-intensive
3. Crypto:crypto.pbkdf2(),crypto.scrypt(),crypto.randomBytes(),crypto.randomFill(),crypto.generateKeyPair().
4. Zlib: All zlib APIs except those that are explicitly synchronous use libuv's threadpool.

- استنى كدا ايه الthread pool ده؟

الthread pool هوا ببساطة عدد من الthreads اللي بجهزها في مكان معين بحيث لو عندي أي مشكلة محتاجة استخدم فيها thread جديد فبدل ما اعمل كل شوية واحد جديد واعمله assign لشغلانة معينة وبعد كدا انهيه والكلام ده كله طبعا بياخد وقت اني اعمل كل شوية initiating وtermination للثريد فالموضوع ده بيعملي initiating لعدد معين من الthreads بحيث لو حبيت في اي وقت اشتغل على thread منهم يكون جاهز وفي نفس الوقت الthreads عندي متبقاش اكتر من اللازم تأثر بالسلب على الpreformance
Web Development Code
Photo
- طيب والnode.js بيبقى عندها كام thread في الthread pool بتاعتها دي بقى؟

بص هيا by dfault بيبقى ليها قيمة معينة واللي هما 4 threads بس أقدر اتحكم في عددهم واكترهم أو اقللهم من خلال السطر الجاي ده
process.env.UV_THREADPOOL_SIZE =2
وطبعا تقدر تزود أو تقلل بمزاجك على حسب امكانيات جهازك ولكن المفضل دايما ان عدد الthreads يكون بيساوي عدد الcores للcpu اللي عندك

وعلى فكرة node.js بالطريقة دي لسه مش أحسن حاجة للcpu intensive application ومش أحسن خيار لو عندي شغل على الcpuكتير ولكن طبعا الموضوع ده حسن كتير من شغلها اكتر من الأول

وبكدا يكون خلصنا النهاردة عن الnode.js اتمنى يكون حد استفاد بأي حاجة ولو حضرتك حابب تقرا أكتر عن الموضوع ده ممكن تشوف الفيديو اللي فوق وتقرا شوية
الكلام اللي NODE.JS كتباه عن نفسها من هنا:

https://nodejs.org/en/docs/guides/dont-block-the-event-loop/
HTTP Methods.
This media is not supported in your browser
VIEW IN TELEGRAM
شرح ازاي الرساله بتوصل من شخص لشخص زي الواتساب ببساطه.

الدحيح.
must-know tips for writing clean code with Javascript.

👇👇
https://dev.to/alexomeyer/8-must-know-tips-for-writing-clean-code-with-javascript-i4
سؤال جافاسكربت.
عندي الكود ده طبعا عارفين ان setTimeout غير متزامنه فكان الناتج
Two
One
طيب السؤال بقي خلي يطبع one اول وبعدين two شرط يكون ال setTimeout موجود بداخلها
console.log("one")
العرض ساري لفتره محدود 😹😹😹😹😹
مين اسرع في انشاء مشروع ب React js
Anonymous Poll
62%
create-react-app
38%
create-vite
Web Development Code
مين اسرع في انشاء مشروع ب React js
قبل متجاوبوا جربوا استخدام الاتنين وشوف الاسرع لو مش عارف تستخدم ال vite قولوا وهنزلكم الطريقة.
This media is not supported in your browser
VIEW IN TELEGRAM
طريقة انشاء بروجكت React باستخدام vite تابع الفيديو.
Clean Code in TypeScript
https://link.medium.com/L75XLIEDYub