ก่อนอื่นการแสดง เมื่อใช้งานจะรู้สึกเหมือนประสิทธิภาพของ node.js ไม่ดีเท่าที่คาดไว้ การใช้หน่วยความจำอยู่ในระดับเดียวกับทับทิมและเป็นมากกว่า Python และ PHP ในแง่ของประสิทธิภาพการประมวลผล (เช่นการใช้งาน CPU) การคำนวณแบบบริสุทธิ์นั้นไม่มีข้อได้เปรียบมากนัก แต่เนื่องจากสามารถควบคุมกระบวนการแบบอะซิงโครนัสได้ดีประสิทธิภาพโดยรวมจึงดีกว่า PHP มาก โดยส่วนตัวแล้วฉันคิดว่า Node.js มีศักยภาพที่ดีในการปฏิบัติงานเนื่องจากมีโครงการขนาดใหญ่จำนวนมากที่มุ่งมั่นที่จะปรับปรุงประสิทธิภาพของเครื่องเสมือน JavaScript - เช่นเบราว์เซอร์หลัก ในเวลาเดียวกัน JavaScript เป็นภาษาที่มีไวยากรณ์อย่างง่ายและมาตรฐานเปิด ซึ่งแตกต่างจาก Python และ PHP มันเป็นเรื่องยากที่จะดำเนินการสร้างขนาดใหญ่เพื่อปรับปรุงประสิทธิภาพเนื่องจากการพิจารณาความเข้ากันได้
จากนั้นก็มีแพ็คเกจผู้จัดการและไลบรารี Node.js มี NPM ในตัวเนื่องจาก NPM เป็นตัวจัดการแพ็คเกจที่ใช้งานง่ายมากเนื่องจาก JavaScript มีขีด จำกัด การเขียนต่ำและ JavaScript มีห้องสมุดส่วนหน้ายอดเยี่ยมมากมาย ความแตกต่างจาก 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
Toolchain, node.js ค่อนข้างเด็กและเครื่องมือที่มีประโยชน์มากมายเพิ่งปรากฏขึ้นในช่วงสองปีที่ผ่านมาเช่นภาษาที่คอมไพล์ล่วงหน้าการทดสอบหน่วยและการทดสอบการจำลองเครื่องมืออาคาร ฯลฯ ; ฉันไม่กล้าพูดว่ามันดีแค่ไหน แต่มันดีกว่า PHP มาก ด้วยเหตุผลประการแรกส่วนใหญ่เป็นเพราะห้องสมุดเหล่านี้เป็นทั้งส่วนหน้าและส่วนหลังเนื่องจากความต้องการที่ยากลำบากของเว็บ front-end ซึ่งเป็นประโยชน์ต่อ node.js โดยวิธีการ; จากนั้นเนื่องจากไวยากรณ์ที่ยืดหยุ่นและเรียบง่ายของ JavaScript เครื่องมือเหล่านี้สามารถนำไปใช้ได้ในรูปแบบที่ฉลาดและสง่างาม สำหรับ IDE มันยังคงได้รับประโยชน์จากส่วนหน้าเว็บและยังมี IDE บางตัวที่มีอยู่ - แม้ว่าภาษา JavaScript นั้นไม่ได้เอื้อต่อการวิเคราะห์แบบคงที่
ไวยากรณ์ฉันต้องการเน้นไวยากรณ์ที่เรียบง่ายและยืดหยุ่นของ JavaScript จุดสำคัญคือ JSON, JSON เป็นรูปแบบข้อมูลที่พบบ่อยที่สุดในฟิลด์เว็บในปัจจุบันและ JavaScript มีการสนับสนุนเนทีฟสำหรับ JSON! โครงสร้างข้อมูลทั้งหมดในจาวาสคริปต์จะถูกขยายออกไปรอบ ๆ Superset ของ JSON, Object รวมถึงอาร์เรย์ฟังก์ชั่นวัตถุและคลาส แน่นอนว่าสิ่งนี้ยังนำปัญหามาใช้เพราะมีข้อ จำกัด ในการเขียนเพียงเล็กน้อยซึ่งนำไปสู่การไม่รู้วิธีการเขียน เมื่อคุณเริ่มเรียนรู้ครั้งแรกคุณจะต้องปรับเปลี่ยนข้อดีและข้อเสียของรูปแบบการออกแบบที่หลากหลายอย่างหลีกเลี่ยงไม่ได้และหาวิธีเขียนที่เหมาะสมกับคุณและเหมาะสำหรับโครงการเฉพาะ ดังนั้นจึงอาจกล่าวได้ว่า node.js เป็นเรื่องง่ายที่จะเริ่มต้น แต่การสร้างโครงการขนาดใหญ่ยังคงเป็นการทดสอบทักษะของนักพัฒนา เนื่องจากปัญหาทางประวัติศาสตร์ไวยากรณ์ของ JavaScript ไม่ได้สวยงาม แต่โชคดีที่เรามีภาษาที่รวบรวมไว้ล่วงหน้าหลายภาษาเช่นสคริปต์กาแฟ, typeScript, DART, LiveScript และ Clojurescript มีสิ่งหนึ่งที่เหมาะกับคุณเสมอ
ใช้สถานการณ์จำลอง JavaScript เป็นภาษาการเขียนโปรแกรมทั่วไปดังนั้นจึงไม่จำเป็นต้องพูดถึงด้านหน้าและด้านหลังของเว็บลองมาดูด้านอื่น ๆ โดยส่วนตัวแล้วฉันคิดว่า node.js ยังคงเหมาะสมมากสำหรับการเขียนเครื่องมือเซิร์ฟเวอร์หรือเครื่องมือการทำงานและการบำรุงรักษาเนื่องจากสถานการณ์หลายอย่างในการดำเนินงานและการบำรุงรักษาสามารถทำงานแบบอะซิงโครนัสได้และ JavaScript มีการสนับสนุนที่ค่อนข้างดีดังนั้นจึงไม่ใช่ปัญหาใหญ่ที่จะเปลี่ยนทุบตีและ Python; Node.js จำเป็นต้องติดตั้งล่ามและสามารถใช้งานได้อย่างไม่เป็นทางการโดยไม่ต้องกลัวว่าจะหลีกเลี่ยงการแนะนำการพึ่งพา สำหรับการเขียนโปรแกรมเดสก์ท็อปและอุปกรณ์พกพา Node.js มีโหนด Webkit และเปลือกอื่น ๆ อีกมากมาย แม้ว่าประสบการณ์การใช้งานในปัจจุบันจะไม่ดีมาก แต่ก็สามารถลดต้นทุนการพัฒนาได้อย่างมากและข้ามแพลตฟอร์มได้อย่างง่ายดาย เป็นที่เชื่อกันว่าอนาคตก็สดใสเช่นกัน
สุดท้ายมาพูดคุยเกี่ยวกับการเรียนรู้ Node.js ในความคิดของฉันการเรียนรู้ node.js มีสองคะแนน หนึ่งคือการชี้แจง“ IO แบบอะซิงโครนัสตามการโทรกลับของเหตุการณ์” ของ Node.js. นี่คือจุดที่แตกต่างกันมากที่สุดระหว่าง node.js และภาษาการเขียนโปรแกรมกระแสหลักอื่น ๆ จากนั้นขั้นตอนที่สองคือการดูที่ 100 อันดับแรกของไลบรารีใน NPM ไม่จำเป็นต้องมองอย่างใกล้ชิด เพียงแค่คุ้นเคยกับมันและรู้ว่าแต่ละห้องสมุดทำอะไร หลังจากเสร็จสิ้นสองขั้นตอนเหล่านี้ขอแสดงความยินดีคุณเป็นนักพัฒนา Node.js อยู่แล้ว