นี่คือปี 2014 และสองปีที่ผ่านมาสายเกินไป ยังฉันคิดว่าจุดของฉันถือ:
IMHO การสนทนานี้ได้ปลิวไปตามสัดส่วนค่อนข้างน้อย การโพสต์บล็อกโพสต์ดังกล่าว:
ไลบรารียูทิลิตี JavaScript ส่วนใหญ่เช่น Underscore, Valentine และ wu พึ่งพา "วิธีการสองวิธีแรก วิธีการนี้ต้องการการใช้งานแบบเนทีฟการย้อนกลับไปยังวานิลลา JavaScript เฉพาะในกรณีที่ไม่สนับสนุนการทำงานแบบเนทีฟ แต่ jsPerf เปิดเผยถึงแนวโน้มที่น่าสนใจ: วิธีที่มีประสิทธิภาพมากที่สุดในการวนซ้ำในคอลเลกชันของอาเรย์หรืออาเรย์ก็คือการหลีกเลี่ยงการใช้งานแบบดั้งเดิมทั้งหมดโดยเลือกใช้ลูปแบบง่ายแทน
ราวกับว่า "ลูปแบบง่าย" และ "วานิลลา Javascript" นั้นมีพื้นฐานมากกว่าการใช้วิธี Array หรือ Object Jeez ...
มันคงจะดีถ้ามีแหล่งความจริงแหล่งเดียว แต่ไม่มี แม้ว่าคุณจะได้รับการบอกเล่าเป็นอย่างอื่นไม่มีพระเจ้าวานิลลาที่รักของฉัน ฉันขอโทษ. ข้อสันนิษฐานเดียวที่ถือจริงๆคือเราทุกคนกำลังเขียนโค้ดจาวาสคริปต์ที่มุ่งหวังที่จะทำงานได้ดีในเบราว์เซอร์หลักทั้งหมดโดยรู้ว่าพวกเขาทั้งหมดมีการใช้งานที่แตกต่างกันในสิ่งเดียวกัน มันเป็นเรื่องเลวที่ต้องรับมือกับมันอย่างอ่อนโยน แต่นั่นคือหลักฐานไม่ว่าคุณจะชอบหรือไม่
บางทีคุณอาจกำลังทำงานในโครงการขนาดใหญ่ที่ต้องการประสิทธิภาพแบบ twitterish เพื่อให้คุณเห็นความแตกต่างระหว่างการทำซ้ำ 850,000 (ขีดล่าง) และการทำซ้ำ 2,500,000 (Lodash) มากกว่ารายการต่อวินาทีในขณะนี้!
ฉันคนเดียวไม่ได้ ฉันหมายถึงฉันทำงานโครงการที่ต้องจัดการกับปัญหาด้านประสิทธิภาพ แต่ก็ไม่เคยแก้ไขหรือเกิดจาก Underscore หรือ Lo-Dash และถ้าฉันไม่ได้รับความแตกต่างที่แท้จริงในการนำไปใช้และประสิทธิภาพ (ตอนนี้เรากำลังพูดถึง C ++ ตอนนี้) ให้ลองวนลูปที่ทำซ้ำได้ (วัตถุหรืออาร์เรย์เบาบางหรือไม่!) ฉันไม่รำคาญอะไรเลย อ้างว่าขึ้นอยู่กับผลของแพลตฟอร์มมาตรฐานที่จะดื้อดึงแล้ว
เพียงแค่ต้องการอัปเดตเดียวให้ Rhino ตั้งค่าการใช้วิธี Array บนไฟในแบบที่ไม่ใช่ "วิธีวนลูปยุคกลางที่ทำงานได้ดีขึ้นเรื่อย ๆ และตลอดไปและนักบวช" ไม่สามารถโต้แย้งวิธีของเขา / เธอรอบข้อเท็จจริงที่ว่า วิธีการเรียงลำดับแบบฉับพลันใน FF นั้นเร็วกว่าการแสดงความคิดเห็นทางสมองของเขา / เธอ ชายคุณไม่สามารถโกงสภาพแวดล้อมรันไทม์ของคุณได้โดยโกงสภาพแวดล้อมรันไทม์ของคุณ! คิดดูสิว่าเมื่อโปรโมต ...
สายพานยูทิลิตี้ของคุณ
... คราวหน้า.
ดังนั้นเพื่อให้มันมีความเกี่ยวข้อง:
- ใช้ขีดเส้นใต้หากคุณสะดวกโดยไม่ต้องเสียสละภาษาพื้นเมือง
- ใช้ Lo-Dash หากคุณต้องการความสะดวกสบายและชอบแคตตาล็อกฟีเจอร์เสริม (สำเนาลึกและอื่น ๆ ) และหากคุณต้องการความรวดเร็วในการทำงานและที่สำคัญที่สุดอย่าลืมเลือกหาทางเลือกอื่นทันทีที่ API ของพื้นเมืองเนรมิต workaurounds ดื้อดึง ซึ่งกำลังจะเกิดขึ้นในไม่ช้า ระยะเวลา
- แม้จะมีทางออกที่สาม DIY! รู้ว่าสภาพแวดล้อมของคุณ รู้เกี่ยวกับความไม่สอดคล้องกัน อ่านโค้ดของJohn-DavidและJeremy อย่าใช้สิ่งนี้หรือสิ่งนั้นโดยที่ไม่สามารถอธิบายได้ว่าทำไมเลเยอร์ความสอดคล้อง / ความเข้ากันได้จำเป็นต้องใช้จริง ๆ และปรับปรุงเวิร์กโฟลว์ของคุณหรือปรับปรุงประสิทธิภาพแอปของคุณ มีความเป็นไปได้สูงที่ความต้องการของคุณจะพึงพอใจกับโพลีฟิลเรียบง่ายที่คุณสามารถเขียนเองได้อย่างสมบูรณ์แบบ ห้องสมุดทั้งสองเป็นเพียงวานิลลาธรรมดาที่มีน้ำตาลเล็กน้อย พวกเขาทั้งสองเพียงต่อสู้กับผู้ที่ให้บริการพายหอมหวาน แต่เชื่อฉันในท้ายที่สุดทั้งสองเป็นเพียงการปรุงอาหารด้วยน้ำ ไม่มีพระเจ้าของวานิลลาดังนั้นจึงไม่มีสมเด็จพระสันตะปาปาวานิลลาใช่ไหม?
เลือกวิธีการใดที่เหมาะกับความต้องการของคุณมากที่สุด เหมือนอย่างเคย. ฉันต้องการทางเลือกในการใช้งานจริงมากกว่าสูตรโกงความเห็นทุกครั้ง แต่ถึงแม้จะดูเหมือนว่าจะเป็นเรื่องของรสนิยมในปัจจุบัน ติดกับทรัพยากรที่มีคุณภาพเช่นhttp://developer.mozilla.comและhttp://caniuse.comและคุณจะสบายดี