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

ทำอย่างไรให้ไปไกลกว่าเอกสารประกอบเพื่อเรียนรู้ห้องสมุดใหม่

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

คุณต้องการความช่วยเหลือ แต่คุณจะเรียนรู้วิธีใช้ฟีเจอร์ได้จากที่ไหน หากไม่ใช่เอกสารประกอบ

หนึ่งในฟีเจอร์ GitHub ที่ฉันโปรดปราน

เมื่อคุณต้องการไปไกลกว่าเอกสารประกอบและดูการใช้งานไลบรารีหรือคุณลักษณะในโลกแห่งความเป็นจริง ใช้การค้นหาโค้ดของ GitHub

ตัวอย่างเช่น สมมติว่าฉันเพิ่งอ่านคู่มือ Rails เกี่ยวกับ Conditional GET Support ฉันรู้สึกว่าฉันเข้าใจแล้ว แต่ฉันต้องการดูตัวอย่างเพิ่มเติมก่อนที่จะนำไปใช้จริง

ฉันสามารถกระโดดเข้าสู่การค้นหา GitHub และมองหา "if stale?" . จากนั้นในแถบด้านข้าง เลือก code และ Ruby :

{% img img-responsive /images/posts/code-search.gif 783 484 กำลังค้นหาโค้ดบางส่วน %}

และตอนนี้ฉันมีตัวอย่างที่ดีมากมายเกี่ยวกับวิธีที่stale? สามารถใช้ได้

ตัวอย่างทั้งหมดไม่น่าสนใจ แต่ในรายการหนึ่ง ฉันสังเกตเห็นผู้เขียนใช้ Post.maximum :

app/controllers/archives_controller.rb
class ArchivesController < ApplicationController
  def index
    if stale?(last_modified: (Post.maximum(:updated_at) || EPOCH).utc, public: true)
      @months = Post.find_all_grouped_by_month
    end
  end
end

ดูเหมือนจะเป็นวิธีที่ดีในการใช้ stale? . และถ้าฉันไม่ได้ดูตัวอย่างนี้ ฉันอาจไม่ได้คิดที่จะลอง

คุณควรใช้สิ่งที่คุณพบอย่างไร

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

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

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

เช่นเดียวกับการค้นหาใดๆ จะต้องฝึกฝนเพื่อให้ได้ผลลัพธ์ที่ดี แต่ฉันได้เรียนรู้มากมายจากโค้ดที่พบ และรู้ว่าคุณก็เช่นกัน