ทำงานกับ library หรือ feature ใหม่ ไม่เข้าใจ documentation อาจ setup ยาก ต้องกระโดดระหว่าง RDocs จนเข้าใจว่า fit กันยังไง หรือ docs ไมมีเลย หรือคุณเรียนดีที่สุดจากการดู examples เยอะ
ต้องการความช่วยเหลือ แตเรียนรู้ใช้ feature จากไหน ถ้าไม่ใช่ docs?
One of My Favorite GitHub Features
ตอนอยากไปไกลกว่า docs ดู real-world uses ของ library หรือ feature ใช้ GitHub code search
เช่น ผมเพิ่งอ่าน Rails guide เรื่อง Conditional GET Support รู้สึกเข้าใจ แตอยากดู examples มากกว่านี้ก่อนใช้จริง
ไป GitHub search ค้น "if stale?" ใน sidebar เลือก code และ Ruby:
{% img img-responsive /images/posts/code-search.gif 783 484 Searching for some code. %}
ตอนนี้มี examples เยอะมากของ stale? usage
ไม่ใช่ทุก example น่าสนใจ แตใน listing หนึ่ง สังเกต author ใช้ Post.maximum:
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? และถ้าไม่เห็น example นี้ อาจไมคิดลอง
ควรใช้สิ่งที่หาได้อย่างไร?
ค้น open-source code ได้ examples ร้อยๆ สำหรับ feature เกือบทุกอย่าง จะเห็น docs ไหนทำความเข้าใจ ไหน oversimplified และเห็น objects ทำงานร่วมในโค้ดจริง สอนการเชื่อมต่อ classes มากกว่า RDoc ไหน
ยังคง ใช้ examples เรียนรู้สิ่งใหม่ ไม่ใช่ cargo cult เข้า project ของตัวเอง ใช้โค้ดโดยไม่เข้าใจ = ทางเร็วที่สุดสู่ poorly designed system
ในตัวอย่าง maximum อาจไม่ใช่สิ่งถูกต้องสำหรับ project ผม ไม่ควร copy โดยไม่เรียนรู้เพิ่มเติม ว่าตอนไหนเหมาะสม แต examples สอนสิ่งที่ไม่รู้มาก่อน และ decide ได้ดีว่าจะเรียนอะไรต่อ
เหมือน search ทุกอย่าง ต้อง practice เพื่อผลดี แตผมเรียนรู้เยอะจาก code ที่หา และรู้ว่าคุณจะเรียนรู้ได้มาก