(ส่งบทความนี้ให้รายชื่อจดหมายไปเมื่อสักพัก ถ้าชอบ สมัครรับนิวส์เลเตอร์ได้เลย!)
Ecosystem Rails เคลื่อนไหวเร็วเกินไปสำหรับหนังสือพิมพ์ ถ้าคุณแบบผม อยากเรียนรู้ version ล่าสุดของ frameworks gems แตทรัพยากรที่ดีที่สุดมักจะเก่ากว่าไม่กี่ version
ทรัพยากรเหล่านี้ยังมีประโยชน์ ไม่มีอะไรเทียบเท่าหนังสือ screencast tutorial ที่แก้ไขดี สำหรับเรียนรู้ API philosophy และโครงสร้างของ library
เช่น หนังสือ Rails ดีที่สุดอธิบายแค่ Rails 4.0 คุณควรเริ่มจากนั้น ตอนเรียน gem/framework ใหม่ สำคัญคือเรียน ทำไม มันถูกออกแบบ כך และชิ้นส่วนเข้ากันยังไง ยากได้จาก reference docs และ blog posts แต่ง่ายจากหนังสือ
แต่สะสมประสบการณ์ version เก่าแล้ว จะตามทันยังไง?
ตามทันการเปลี่ยนแปลง
Gems ยอดนิยมส่วนใหญ่มี CHANGELOG ใน git repository เช่น bundler: https://github.com/bundler/bundler/blob/master/CHANGELOG.md วิธีดีนี่จับการเปลี่ยนแปลงใหญ่ version-to-version ปกติเป็นสรุปสั้นๆ แตให้จุดเริ่มต้น ไป research การเปลี่ยนแปลงน่าสนใจต่อ
Changelogs อ้างอิง bug numbers บน GitHub เห็น entry ที่มี bug number ไปดูใน Issues จะเข้าใจเปลี่ยนอะไร ยังไง ทำไม
หา changelogs ยังไง? ปกติ google bundler github (ถ้าหา bundler changelog) มักอยู่หน้า GitHub แรก
ถ้าไม่มี changelog ดู README หรือ wiki บน GitHub แต่มักนานกว่าเพราะไม่ได้ออกแบบมาเพื่อตามทัน version-to-version
ใช้ reference documentation ล่าสุด
ทำงานกับ gems ต้องมี reference docs ล่าสุด ไว้ lookup API usage และ examples ตอนเขียนแอป
หา API docs ทุก version ทุก gem ได้ที่ rdoc.info แตสำหรับ doc lookup เร็วกว่า ควรลอง Dash หรือ Zeal
ผมใช้ Dash ตอนต้องการ API docs กด option-Space เริ่มพิมพ์ docs ทุก gem โชว์ทันที เปลี่ยน workflow ที่คุ้มค่ามาก
เคล็ดลับเฉพาะ Rails
Rails โปรเจกต์ใหญ่ ผู้มีส่วนร่วมดูแล changelogs และ docs ดี
Rails guides ดี และสร้างจาก git repository เดียวกับ Rails จึง up-to-date เสมอ
อยากตามทัน Rails ล่าสุด release notes เริ่มต้นดีที่สุด เช่น release notes Rails 4.1: https://guides.rubyonrails.org/4_1_release_notes.html
กระบวนการที่ผมทำปกติ
รวมทั้งหมด นี่คือสิ่งที่ผมทำตอนอยาก up-to-date gem ใหม่:
- อ่านหนังสือ tutorial docs เกี่ยว gem หา resource ใหม่ที่สุด ตอนอ่าน สร้างแอป ฝึก ฯลฯ ด้วย version ที่เรียน
- หาโปรเจกต์บน GitHub
- อ่าน changelog readme wiki จาก version ที่รู้ ไป version ล่าสุด
- สนใจการเปลี่ยนแปลงไหน google หา หรือดู issues เพื่อเรียนรู้เพิ่ม
- Upgrade gem เป็น version ใหม่
- ติดตั้ง docs gem ใหม่ใน Dash
- เขียนโค้ดกับมัน!
ไม่ทำทุกขั้นตอนทุกครั้ง แตเป็นลำดับทั่วไป กระบวนการแบบนี้ช่วยตอนติดขั้นไหน หรือไม่รู้ไปต่อไหน
ถ้าหา changelog ไม่เจอ หรือ docs ไม่เข้าใจ?
บางครั้งไม่ได้ข้อมูลจาก GitHub repo หรือ API docs ต้องดำดิ่งอ่านโค้ดเอง
น่าประหลาด อ่านโค้ดไม่เหมือนอ่านหนังสือ แทนอ่านไฟล์ต้นจนจบ ต้อง สำรวจ (explore) โค้ด นี่เป็นศิลปะมากกว่าวิทยาศาสตร์ แตทักษะสำคัญ ต้องเรียนรู้ ผมจะเขียนเพิ่มภายหลัง!
คุณมีเคล็ดลับอะไรบ้างสำหรับตามทัน gem changes? อยู่ up-to-date ยังไง?