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

หาทางไปรอบ ๆ โครงการรางใหม่

บทความนี้ได้รับการแปลเป็นภาษารัสเซียแล้ว ขอบคุณ Leonid Suschev

คุณเพิ่งเปลี่ยนทีมในที่ทำงานหรือเพิ่งเริ่มงานใหม่ หรือคุณพบจุดบกพร่องในแอปโอเพนซอร์ซที่คุณชื่นชอบ และต้องการเขียนคำขอดึงครั้งแรกของคุณ แต่หลังจากที่คุณ git clone แล้วเปิด app/models คุณกำลังหลงทาง แม้ว่าราง โครงสร้าง เหมือนกับที่คุณคุ้นเคย คุณไม่สามารถหาทางเลี่ยง รหัส ได้ . วิธีที่เร็วที่สุดในการเรียนรู้แอป Rails ใหม่ที่ไม่คุ้นเคยนี้คืออะไร

สร้างคำศัพท์ของโครงการ

Player . คืออะไร และ Session . คืออะไร ? แล้ว Account เทียบกับ User เทียบกับ Provider ?

ทุกแอพใช้คำศัพท์และคำเปรียบเทียบที่แตกต่างกัน และถ้าคุณไม่เข้าใจคำศัพท์ของแอป คุณจะเสียเวลาเรียกดู app/models ทุกครั้งที่เห็นชื่อคลาสใหม่ หรือแย่กว่านั้น คุณจะตั้งสมมติฐานที่ไม่ถูกต้องเกี่ยวกับวิธีการทำงานของฟีเจอร์

ดังนั้น สิ่งแรกที่คุณต้องทำคือสร้างคำศัพท์นั้น เรียนรู้ว่าแอพนี้ทำมาจากอะไร และถ้าคุณต้องการทำอย่างรวดเร็ว ให้เริ่มต้นด้วยการอ่าน db/schema.rb . คุณจะได้เรียนรู้เงื่อนไขที่แอปใช้ และข้อมูลทั้งหมดที่เกี่ยวข้องกันอย่างไร ให้ความสนใจเป็นพิเศษกับ *_id เพื่อให้คุณเห็นว่าโมเดลเชื่อมต่อกันอย่างไร

หากคุณมองเห็นได้ชัดเจนขึ้น ให้ลองใช้ Rails-erd gem มันสร้างไดอะแกรมจากโมเดล Rails ของคุณ โดยแสดงตารางและคอลัมน์ทั้งหมดของคุณ และวิธีที่พวกมันโต้ตอบ เก็บงานพิมพ์ไว้บนโต๊ะทำงาน แล้วคุณจะเข้าใจส่วนอื่นๆ ของแอปได้ง่ายขึ้น

ดำเนินการต่อด้วยโมเดลและออบเจ็กต์ Ruby ธรรมดา

ในแอพ Rails ที่ออกแบบมาอย่างดี ไม่ใช่ทุกอย่างที่จะได้รับการสนับสนุนจากตารางฐานข้อมูล หากต้องการสร้างคำศัพท์ในโครงการของคุณต่อไป ให้ดูภายใน app/models สำหรับคลาสและแอตทริบิวต์พิเศษที่คุณไม่เห็นใน db/schema.rb .

อย่าใช้เวลามากเกินไปที่นี่ มันง่ายที่จะหลงทางในการทำงานของสิ่งต่าง ๆ คุณมาที่นี่เพื่อกรอกคำศัพท์ของโครงงาน

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

ลองใช้แอปและดู "ทำไม"

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

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

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

ค้นหา "วิธีการ"

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

มีหลายวิธีที่คุณสามารถไปจากที่นี่ นี่เป็นรายการโปรดบางส่วนของฉัน:

  • เรียกดู UI และคิดว่า:คุณจะสร้างคุณลักษณะนี้ได้อย่างไร โดยรู้ว่าคุณรู้อะไรเกี่ยวกับชิ้นส่วนเหล่านี้บ้าง คุณเดาได้ไหม ใช้โปรแกรมแก้ไขข้อบกพร่องเพื่อยืนยันการคาดเดาของคุณ หรือค้นพบวิธีการทำงานจริง
  • เลือกกรณีทดสอบ และติดตามตลอดทางผ่านแอพ อ่านโค้ดหรือสำรวจด้วยโปรแกรมแก้ไขข้อบกพร่อง
  • เลือกเส้นทางหรือการทำงานของตัวควบคุม คุณช่วยหาวิธีเข้าถึงการทำงานของคอนโทรลเลอร์จาก UI ได้ไหม

นี่เป็นเวลาที่ดีที่จะย้อนกลับไปดูแบบจำลองของคุณและวัตถุ Ruby ธรรมดา และครั้งนี้ คุณ สามารถ เข้าไปดูรายละเอียดวิธีการทำงานของโมเดล

อยากรู้เกี่ยวกับแอพ ค้นหาช่องว่างในความรู้ของคุณและปิดด้วยโปรแกรมแก้ไขข้อบกพร่องและโค้ด

ทำไมไม่เริ่มด้วยการทดสอบล่ะ

ฉันเคยได้ยินคนพูดว่า "ถ้าคุณต้องการเข้าใจ codebase ให้เริ่มด้วยการทดสอบ! การทดสอบเป็นเอกสารที่ปฏิบัติการได้!”

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

เพื่อที่จะเข้าใจบางสิ่งที่ใหญ่เท่ากับแอป Rails หรือแม้แต่อัญมณีส่วนใหญ่ ฉันต้องการภาพรวมก่อนเสมอ ฉันต้องรู้ว่าส่วนประกอบใดบ้างที่ประกอบเป็นแอป และเหตุใดจึงมีอยู่

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

อะไร ทำไม อย่างไร

ในการทำความเข้าใจแอป Rails ใหม่ ให้ทำตามขั้นตอนทั้งสามนี้:

  • อะไร ส่วนต่าง ๆ ประกอบแอพนี้หรือไม่
  • ทำไม มีชิ้นส่วนเหล่านั้นหรือไม่? ทำไมพวกเขาถึงรวมตัวกันแบบนั้น
  • อย่างไร แต่ละชิ้นทำงานหรือไม่

ซึ่งจะให้ทั้งมุมมองกว้างๆ และความรู้แคบๆ ที่คุณต้องการเพื่อทำให้แอปใหม่นั้นเป็นของคุณ

ป.ล. ฉันกำลังปล่อย ฝึกหัดรถไฟ สัปดาห์หน้า. ดังนั้น หากคุณต้องการรับส่วนลด 25% สำหรับการเข้าถึงล่วงหน้า คุณจะต้องสั่งซื้อเร็วๆ นี้!