Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Ruby

คู่มือการเลือกอัญมณีที่ดีที่สุดสำหรับโครงการทับทิมของคุณ

หากคุณต้องการสิ่งที่ทำใน Ruby อัญมณีสำหรับมันอาจมีอยู่จริง ดีโหลอัญมณีสำหรับมันอาจมีอยู่ บางส่วนมีความสง่างาม ลักษณะเด่น และได้รับการดูแลอย่างดี และบางรายการก็เขียนขึ้นเพื่อแก้ปัญหากรณีการใช้งานที่ผู้เขียนพบในคราวเดียว คุณมีอัญมณีมากมายให้เลือก ดังนั้นคุณจะเลือกอัญมณีที่ใช่อย่างไร ? ตัวเลือกนี้มีความสำคัญ – เมื่อคุณเสียใจที่เพิ่มอัญมณีให้กับโครงการของคุณ การเปลี่ยนกลับเป็นเรื่องที่เจ็บปวด

สถิติ

เมื่อฉันต้องการห้องสมุดเพื่อแก้ปัญหาที่ฉันพบ ฉันเริ่มต้นด้วย Ruby Toolbox Ruby Toolbox เป็นวิธีที่ยอดเยี่ยมในการรับรายการอัญมณีทั้งหมดในหมวดหมู่ (เช่น “การจัดการการสมัครสมาชิก”) พร้อมกับ:

  • มีคนใช้กี่คน

    อัญมณียอดนิยมมักจะได้รับความนิยมมากกว่าด้วยเหตุผล และจะขอความช่วยเหลือได้ง่ายขึ้นมากหากทุกคนบนอินเทอร์เน็ตใช้อัญมณีเดียวกัน

  • อัปเดตล่าสุด/บ่อยแค่ไหน

    เจมได้รับการอัปเดตอย่างสม่ำเสมอหรือว่าการอัปเกรดความเข้ากันได้ของ Rails 3.2 ยังคงอยู่ในคิวคำขอดึงหรือไม่ หากรุ่นล่าสุดเมื่อหลายปีก่อน คุณอาจต้องการข้ามไป มันอาจจะเข้ากันไม่ได้กับแอปของคุณ

ด้วยอัญมณีที่คุณพบในกล่องเครื่องมือ Ruby ที่กรองตามเกณฑ์สองข้อแรก คุณควรมีรายการอัญมณีที่คุณกำลังพิจารณาอยู่ กล่องเครื่องมือ Ruby ยังให้ลิงก์ไปยังแหล่งที่มา เอกสารประกอบ เว็บไซต์ และเครื่องมือติดตามจุดบกพร่อง ซึ่งคุณจะต้องใช้ต่อไป

รหัส &เอกสารประกอบ

  • อัญมณีได้รับการบันทึกไว้อย่างดีหรือไม่

    ตรวจสอบเว็บไซต์หากมี เอกสารประกอบดีไหม? มี RDoc หรือไม่? คุณจะสามารถค้นหาคำตอบที่ต้องการเมื่อคุณต้องการได้หรือไม่

  • ผ่านการทดสอบอย่างดีหรือไม่

    ลองดูที่การทดสอบ มัน มี a test/ หรือ spec/ ไดเรกทอรี? มีการทดสอบนอกเหนือจาก test_truth . หรือไม่ ? ผู้เขียนจะทราบหรือไม่ว่าทำให้เกิดการถดถอยหรือไม่

  • ดูปัญหาและดึงคำขอ

    ข้อบกพร่องได้รับการแก้ไขอย่างรวดเร็วหรือไม่? มีการอภิปรายเกี่ยวกับจุดบกพร่องและคำขอดึงข้อมูลหรือไม่ และได้รับการแก้ไขหรือไม่ หรือแค่นั่งเฉยๆ

  • ค้นหาชื่ออัญมณีบน Google, StackOverflow และ Reddit

    ผู้คนพูดถึงเรื่องนี้อย่างไร? อัญมณีใดได้รับการแนะนำและอัญมณีใดที่ท้อใจ?

  • ค้นหา GitHub สำหรับบางคลาสที่เจมจัดให้

    มีการใช้งานในแอปในโลกแห่งความเป็นจริงอย่างไร ดูเหมือนใช้งานง่ายหรือไม่? หรือนักพัฒนารายอื่นต้องแฮ็คปัญหาในอัญมณีหรือไม่

ณ จุดนี้ คุณควรจำกัดตัวเลือกของคุณให้แคบลงเหลือผู้สมัครที่เหลืออีกสองสามคน

เรื่องงี่เง่า

เกณฑ์เหล่านี้มีความเฉพาะตัวเล็กน้อย คุณจึงต้องค้นหาอัญมณีที่เหมาะสมสำหรับ โครงการของคุณ . แต่ถ้าพลาดแล้วจะเสียใจภายหลัง

  • จากตัวอย่างในเอกสารประกอบ ห้องสมุดรู้สึกถึง Ruby-ish ไหม

    มันใช้สำนวนทับทิมหรือไม่? หรือคุณรู้สึกว่าคุณกำลังเขียน Java หรือ PHP อยู่จริงหรือ สิ่งนี้เกิดขึ้นบ่อยครั้งอย่างไม่น่าเชื่อกับ Wrapper API

  • สร้างจากชิ้นส่วนเล็กๆ ที่เข้ากันได้ดีไหม

    คุณสามารถใช้สิ่งของที่ผู้เขียนมอบให้คุณเพื่อสร้างสิ่งที่ผู้เขียนไม่เคยนึกถึงได้หรือไม่? เพราะคุณอาจจะต้องการ

  • อัญมณีอื่นที่อยู่ในโครงการของคุณใช้อัญมณีอยู่แล้วหรือไม่

    โบนัส คุณเพิ่งประหยัดเวลาในการผสานรวม และคุณไม่จำเป็นต้องต่อสู้กับ Bundler ในเรื่องการกำหนดเวอร์ชัน

  • อัญมณีตั้งสมมติฐานเกี่ยวกับแอปของคุณหรือไม่ แอปของคุณเหมาะกับสมมติฐานเหล่านั้นไหม และจะเหมาะกับพวกเขาเสมอหรือไม่

    เจมบางอย่าง เช่น ActiveResource ตั้งสมมติฐานเกี่ยวกับ API ของเซิร์ฟเวอร์ที่พวกเขาพูดคุยด้วย อื่นๆ เช่น ResourceController ตั้งสมมติฐานว่าคอนโทรลเลอร์ของคุณจะทำอะไร อัญมณีที่สร้างสมมติฐานสามารถทำให้คุณเร็วขึ้นมากและโค้ดของคุณง่ายขึ้นมาก—ในขณะที่สมมติฐานเหล่านั้นยังคงอยู่ . หากสมมติฐานเหล่านั้นเข้ากันไม่ได้กับแอปของคุณ คุณจะพบว่าตัวเองใช้เวลาหลายวันในการแก้ไข แก้จุดบกพร่อง และในที่สุดก็ฉีกอัญมณีออก

โอ้โห เยอะจัง

ใช่ มีเกณฑ์มากมายที่คุณสามารถใช้เลือกอัญมณีที่ดีที่สุดสำหรับโครงการของคุณ และโดยปกติคุณไม่จำเป็นต้องดำเนินการทั้งหมด โดยส่วนใหญ่แล้ว คุณสามารถกระโดดไปที่ Ruby Toolbox และเลือกอัญมณีที่ได้รับความนิยมมากที่สุด

แต่มีอัญมณีบางส่วนที่กลายเป็นส่วนหลักของแอปของคุณ สิ่งต่างๆ เช่น ไลบรารี HTTP ไลบรารีฐานข้อมูล หรืออะไรก็ได้ที่สัญญาว่าจะทำให้ตัวควบคุมของคุณสะอาดขึ้น และควรสละเวลาเพิ่มเติมเพื่อให้แน่ใจว่าสิ่งเหล่านี้ อัญมณีนั้นสะอาด ได้รับการดูแลอย่างดี มีเอกสารประกอบอย่างดี และเหมาะสมกับรูปแบบความคิดของคุณว่า ควร ทำงาน

ฉันใส่เกณฑ์ทั้งหมดเหล่านี้ใน Google สเปรดชีต ดังนั้นเมื่อคุณต้องการเลือกอัญมณีที่ดูคล้ายคลึงกันเป็นจำนวนมาก คุณก็สามารถเปรียบเทียบได้อย่างง่ายดาย คว้าได้ที่นี่