بادئ ذي بدء ، الأداء. عند استخدامها ، يبدو أن أداء Node.js ليس جيدًا كما هو متوقع. استخدام الذاكرة هو نفس مستوى روبي ، وهو أكثر من Python و PHP. فيما يتعلق بأداء الحوسبة (أي استخدام وحدة المعالجة المركزية) ، فإن الحوسبة الخالصة لا تتمتع بميزة كبيرة ، ولكن لأنه يمكن أن تتحكم في العملية غير المتزامنة بشكل جيد ، فإن الأداء العام أفضل بكثير من PHP. أنا شخصياً أعتقد أن Node.js لديها إمكانات كبيرة في الأداء ، لأن هناك العديد من المشاريع الكبيرة التي تلتزم بتحسين أداء الأجهزة الافتراضية JavaScript - مثل المتصفحات الرئيسية ؛ في الوقت نفسه ، تعد JavaScript لغة ذات بناء جملة بسيط ومعيار مفتوح. على عكس Python و PHP ، من الصعب إجراء عمليات إعادة بناء واسعة النطاق لتحسين الأداء بسبب اعتبارات التوافق.
ثم هناك مدير الحزمة والمكتبة. يحتوي Node.js على NPM مدمج ، لأن NPM هو مدير حزمة سهل الاستخدام للغاية ، لأن JavaScript لديها عتبة كتابة منخفضة ، ويحتوي JavaScript على العديد من المكتبات الأمامية الممتازة التي تم نقلها إلى النهاية الخلفية ، لذلك هناك الآن حزم على NPM من Pypi و Rubygems ، ثم فورت. الفرق من PHP في تطوير Node.js هو أن الجميع لا يخافون من إضافة التبعيات. يذهب كل متطلبات صغيرة إلى NPM للعثور على المكتبات الحالية للتنفيذ - ويمكن العثور عليها غالبًا. لذلك ، فإن تطوير Node.js يدور حول الجمع بين التبعيات ، ثم يميل إلى كتابة مكتبة حتى لو كانت صغيرة ، والتي تشبه فكرة UNIX. من ناحية أخرى ، فإن مجتمع node.js هو ودود للغاية المصدر. يعني الود هنا أن معظم المكتبات تم تطويرها علانية على Github واستخدام بروتوكولات فضفاضة للغاية ، مثل MIT ، والتي ليست "عدوانية" مثل GPL.
في المجتمع ، لا تزال معظم تطبيقات Node.js على الويب الخلفية ، والمكتبات المتعلقة بالواجهة الخلفية على الويب تصنع بشكل أساسي بضع لقطات كبيرة. على سبيل المثال ، تم تطوير Express و JSHTTP و Jade و Mocha و KOA من قبل أربعة أو خمسة أشخاص بقيادة TJ Masters ، وهي ظاهرة مثيرة للاهتمام. - على الرغم من أن TJ God قرر أخيرًا أن يتلاشى من مجتمع Node.js.
الأدوات ، Node.js شاب نسبيًا ، وقد ظهرت العديد من الأدوات المفيدة في العامين الماضيين ، مثل اللهجات المسبقة واختبارات الوحدة واختبارات المحاكاة وأدوات البناء وما إلى ذلك ؛ لا أجرؤ على قول كم هو جيد ، لكنه أفضل بكثير من PHP. بالنسبة للسبب ، أولاً ، يرجع ذلك إلى حد كبير إلى أن هذه المكتبات هي الواجهة الأمامية والخلفية على حد سواء ، بسبب المطالب الصعبة للواجهة الأمامية على شبكة الإنترنت ، والتي تستفيد من Node.js بالمناسبة ؛ ثم بسبب بناء جملة JavaScript المرن والبسيط ، يمكن تنفيذ هذه الأدوات ببعض الطرق الذكية والأنيقة للغاية. بالنسبة إلى IDE ، فإنه لا يزال يستفيد من الواجهة الأمامية على شبكة الإنترنت ، ولا يزال هناك بعض المعرفات المتاحة - على الرغم من أن لغة JavaScript نفسها ليست مفضية للغاية للتحليل الثابت.
بناء الجملة ، أود التأكيد على بناء الجملة البسيطة والمرنة من JavaScript. النقطة المهمة هي أن JSON ، JSON هو تنسيق البيانات الأكثر شيوعًا في حقل الويب في الوقت الحاضر ، وأن JavaScript لديها دعم أصلي لـ JSON! يتم توسيع جميع هياكل البيانات في JavaScript حول مجموعة من JSON ، والكائن ، بما في ذلك المصفوفات والوظائف والكائنات والفئات. بالطبع ، هذا يسبب أيضًا مشكلة ، لأن هناك قيودًا قليلة على الكتابة ، مما يؤدي إلى عدم معرفة كيفية الكتابة. عندما تبدأ في التعلم لأول مرة ، ستعمل حتماً على فهم مزايا وعيوب أنماط التصميم المختلفة في مواقف مختلفة وإيجاد طريقة لكتابتها التي تناسبك وهي مناسبة لمشاريع محددة. لذلك ، يمكن القول أن Node.js سهل البدء ، لكن بناء مشاريع واسعة النطاق لا يزال اختبارًا لمهارات المطورين. نظرًا للمشكلات التاريخية ، فإن بناء جملة JavaScript ليس جميلًا ، ولكن لحسن الحظ لدينا لهجات مختلفة مسبقًا ، مثل نص القهوة ، TypeScript ، DART ، LIFESCRIPT و CLOJURESCRIPT. هناك دائمًا واحد يناسبك.
استخدام السيناريوهات ، JavaScript هي لغة برمجة عامة ، لذلك ليست هناك حاجة إلى ذكر نهايات الويب الأمامية والخلفية ، دعونا نلقي نظرة على الجوانب الأخرى. أنا شخصياً أعتقد أن Node.js لا تزال مناسبة جدًا لكتابة أدوات الخادم ، أو أدوات التشغيل والصيانة ، لأن العديد من المواقف في التشغيل والصيانة يمكن أن تعمل بشكل غير متزامن ، ويحظى JavaScript بدعم منتظم نسبيًا ، لذلك ليس من مشكلة كبيرة في استبدال Bash و Python ؛ تحتاج Node.js فقط إلى تثبيت المترجم المترجم ويمكن استخدامها بشكل عرضي ، دون خوف من تجنب إدخال التبعيات. بالنسبة لبرمجة سطح المكتب والأجهزة المحمولة ، يحتوي Node.js على عقدة ويب ومختلف الأصداف الأخرى. على الرغم من أن تجربة الاستخدام الحالية ليست جيدة جدًا ، إلا أنها يمكن أن تقلل بشكل كبير من تكاليف التطوير والموضوعات المتشابكة بسهولة. ويعتقد أن المستقبل مشرق أيضا.
أخيرًا ، دعنا نتحدث عن التعلم Node.js. في رأيي ، تعلم Node.js نقطتين. أحدهما هو توضيح "IO غير المتزامن بناءً على عوائد الأحداث" من Node.js. هذه هي النقطة الأكثر اختلافًا بين Node.js ولغات البرمجة الرئيسية الأخرى. ثم الخطوة الثانية هي إلقاء نظرة على أفضل 100 مكتبات على NPM. ليست هناك حاجة للنظر عن كثب. فقط كن على دراية به واعرف ما تفعله كل مكتبة. بعد الانتهاء من هاتين الخطوتين ، تهانينا ، أنت بالفعل مطور Node.js.