กลับสู่คอร์สเรียน
AI035 Professional

การเขียนโปรแกรมรูบี: คู่มือสำหรับนักพัฒนาที่มีความเป็นผู้ปฏิบัติจริง (ฉบับที่สอง)

คู่มืออ้างอิงและบทเรียนที่ครอบคลุมเกี่ยวกับภาษาโปรแกรมเมอร์รูบี ครอบคลุมไวยากรณ์พื้นฐาน การออกแบบเชิงวัตถุ ฟีเจอร์ขั้นสูง เช่น การสะท้อน (reflection) และการจัดการหลายเธรด (threading) และการอ้างอิงไลบรารีครบถ้วนสำหรับเวอร์ชัน 1.8

4.9
45.0h
515 ผู้เรียน
0 การถูกใจ
ปัญญาประดิษฐ์
เริ่มเรียน

ภาพรวมคอร์สเรียน

📚 สรุปเนื้อหา

คู่มือและบทเรียนที่ครอบคลุมสำหรับภาษาโปรแกรม Ruby ครอบคลุมไวยากรณ์พื้นฐาน การออกแบบเชิงวัตถุ ฟีเจอร์ขั้นสูง เช่น การสะท้อน (reflection) และการจัดการหลายเธรด (threading) และคู่มือไลบรารีครบถ้วนสำหรับเวอร์ชัน 1.8

เชี่ยวชาญศิลปะของการเขียนโปรแกรมที่สวยงามและทรงพลังด้วยคู่มือที่เป็นที่ยอมรับอย่างเป็นทางการของภาษา Ruby

ผู้แต่ง: เดว์ โทมัส, ชัด ฟาวเลอร์, แอนดี้ ฮันต์

ขอบคุณ: ผู้ตรวจสอบจากกลุ่มเมลลิ่งของ Ruby, ยูกิฮิโร มัตซึโมโตะ (แมตซ์), ชัด ฟาวเลอร์, คิม วิมเพ็ตต์ และชุมชนผู้เขียนโปรแกรมเชิงปฏิบัติ (Pragmatic Programmers)

🎯 เป้าหมายการเรียนรู้

  1. ติดตั้งและตั้งค่าสภาพแวดล้อม Ruby โดยใช้วิธีต่างๆ (แบบไบนารี แหล่งโค้ด หรือ CVS) และใช้เครื่องมือโต้ตอบ เช่น irb และ ri
  2. ใช้กฎการตั้งชื่อของ Ruby และหลักการเชิงวัตถุในการกำหนดเมธอดและจัดการตัวแปร
  3. จัดการข้อมูลโดยใช้อาร์เรย์พื้นฐาน แฮช และการเรียกใช้สมการปกติ (regular expressions)
  4. กำหนดและนำไปใช้โครงสร้างคลาสโดยใช้การสืบทอดแบบเดียว คำสั่ง super และ mixin
  5. ควบคุมความเห็นของวัตถุและรักษาความสมบูรณ์ของข้อมูลโดยใช้การควบคุมการเข้าถึง (Public, Private, Protected) และแอตทริบิวต์
  6. สร้างคลาสตัวเก็บข้อมูลที่แข็งแรง (เช่น SongList) ที่ผสานการทดสอบหน่วยงาน (Unit Testing)
  7. ประยุกต์ตรรกะเลขฐานต่างๆ (ฐานสิบหก ฐานแปด ฐานสอง) และใช้ตัวนับจำนวน (numeric iterators) เพื่อควบคุมการไหลของโปรแกรม
  8. สร้างสตริงที่ซับซ้อนโดยใช้การแทนที่ (interpolation) heredocs และรูปแบบตัวแบ่งที่หลากหลาย
  9. ใช้ช่วง (Ranges) เป็น "สวิตช์เปิด-ปิด" ในการควบคุมเงื่อนไข และใช้เป็นเครื่องตรวจจับช่วงเวลา
  10. กำหนดและเรียกใช้เมธอดโดยใช้รายการอาร์กิวเมนต์ที่ยืดหยุ่น (สัญลักษณ์สปลาท), อาร์กิวเมนต์แบบแฮช "เหมือนคำสำคัญ", และการแปลงบล็อกเป็นโปรซ (block-to-proc)

🔹 บทเรียนที่ 1: บทที่ 1–2: พื้นฐานและการเริ่มต้นกับ Ruby.new

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

ผลลัพธ์การเรียนรู้:

  • ติดตั้งและตั้งค่าสภาพแวดล้อม Ruby โดยใช้วิธีต่างๆ (แบบไบนารี แหล่งโค้ด หรือ CVS) และใช้เครื่องมือโต้ตอบ เช่น irb และ ri
  • ใช้กฎการตั้งชื่อของ Ruby และหลักการเชิงวัตถุในการกำหนดเมธอดและจัดการตัวแปร
  • จัดการข้อมูลโดยใช้อาร์เรย์พื้นฐาน แฮช และการเรียกใช้สมการปกติ (regular expressions)

🔹 บทเรียนที่ 2: บทที่ 3–4: คลาส วัตถุ ตัวแปร และตัวเก็บข้อมูล

ภาพรวม: บทเรียนนี้สำรวจกลไกพื้นฐานของระบบเชิงวัตถุใน Ruby โดยเน้นว่าวัตถุจัดเก็บสถานะผ่านการสืบทอด และกระบวนการค้นหาเมธอดทำงานอย่างไร บทเรียนนี้เปลี่ยนไปสู่การนำเอาแนวทางการจัดเก็บข้อมูลมาใช้จริงโดยใช้อาร์เรย์และตรรกะคล้ายแฮช แล้วจบลงด้วยการสำรวจโครงสร้างบล็อกที่ไม่เหมือนใครของ Ruby — ครอบคลุมตัวดำเนินการ (iterators) ปิด (closures) และการจัดการทรัพยากร

ผลลัพธ์การเรียนรู้:

  • กำหนดและนำไปใช้โครงสร้างคลาสโดยใช้การสืบทอดแบบเดียว คำสั่ง super และ mixin
  • ควบคุมความเห็นของวัตถุและรักษาความสมบูรณ์ของข้อมูลโดยใช้การควบคุมการเข้าถึง (Public, Private, Protected) และแอตทริบิวต์
  • สร้างคลาสตัวเก็บข้อมูลที่แข็งแรง (เช่น SongList) ที่ผสานการทดสอบหน่วยงาน (Unit Testing)

🔹 บทเรียนที่ 3: บทที่ 5: ความเชี่ยวชาญในประเภทมาตรฐานและ Regex

ภาพรวม: บทเรียนนี้เจาะลึกถึงประเภทสเกลาร์พื้นฐานของ Ruby — ตัวเลข สตริง และช่วง (Ranges) และเปลี่ยนไปสู่โลกอันทรงพลังของสมการปกติ (Regular Expressions) ผู้เรียนจะได้เรียนรู้ว่า Ruby จัดการกับการล้นของจำนวน (numeric overflow) ได้อย่างอัตโนมัติ วิธีจัดการสตริงผ่านการแทนที่และการใช้ตัวแบ่ง และวิธีใช้สมการปกติทั้งในฐานะรูปแบบเชิงฟังก์ชันและวัตถุเชิงวัตถุเพื่อประมวลผลข้อความซับซ้อน

ผลลัพธ์การเรียนรู้:

  • ประยุกต์ตรรกะเลขฐานต่างๆ (ฐานสิบหก ฐานแปด ฐานสอง) และใช้ตัวนับจำนวน (numeric iterators) เพื่อควบคุมการไหลของโปรแกรม
  • สร้างสตริงที่ซับซ้อนโดยใช้การแทนที่ (interpolation) heredocs และรูปแบบตัวแบ่งที่หลากหลาย
  • ใช้ช่วง (Ranges) เป็น "สวิตช์เปิด-ปิด" ในการควบคุมเงื่อนไข และใช้เป็นเครื่องตรวจจับช่วงเวลา

🔹 บทเรียนที่ 4: บทที่ 6–7: ตรรกะเมธอดและการควบคุมการประเมินค่า

ภาพรวม: บทเรียนนี้สำรวจความยืดหยุ่นของเมธอดใน Ruby และอำนาจของการเขียนโปรแกรมแบบขึ้นอยู่กับการแสดงออก (expression-based programming) ผู้เรียนจะเชี่ยวชาญการกำหนดเมธอดที่มีอาร์กิวเมนต์เปลี่ยนแปลงได้ การรวมบล็อกอย่างไดนามิก และการใช้โครงสร้างควบคุมขั้นสูง เช่น การมอบหมายแบบขนานและคำสั่งตรวจสอบรูปแบบ (pattern-matching case expressions) บทเรียนเน้นว่าใน Ruby แทบทุกอย่างเป็นการแสดงออกที่ส่งค่ากลับ ทำให้สามารถเขียนตรรกะที่กระชับและอ่านง่ายได้

ผลลัพธ์การเรียนรู้:

  • กำหนดและเรียกใช้เมธอดโดยใช้รายการอาร์กิวเมนต์ที่ยืดหยุ่น (สัญลักษณ์สปลาท), อาร์กิวเมนต์แบบแฮช "เหมือนคำสำคัญ", และการแปลงบล็อกเป็นโปรซ (block-to-proc)
  • ดำเนินตรรกะซับซ้อนผ่านการมอบหมายแบบขนาน/ซ้อนกัน และตรรกะบูลีนที่ซับซ้อน
  • ใช้การควบคุมการไหลโดยใช้เงื่อนไขแบบแสดงออก (if, unless, case) และตัวแก้ไขลูปขั้นสูง (break, redo, next)

🔹 บทเรียนที่ 5: บทที่ 8–9: การจัดการข้อผิดพลาดและสถาปัตยกรรมแบบโมดูลาร์

ภาพรวม: บทเรียนนี้ครอบคลุมการจัดการข้อผิดพลาดอย่างมั่นคงและการออกแบบโครงสร้างใน Ruby สำรวจลำดับข้อผิดพลาดและกลไกการจัดการข้อผิดพลาด (rescue, retry) หรือการควบคุมการไหลข้ามขอบเขต (catch, throw) นอกจากนี้ยังอธิบายว่าโมดูลช่วยให้สามารถนำโค้ดกลับมาใช้ใหม่ได้ผ่านชื่อพื้นที่ (namespaces) และ mixin รวมถึงการผสานโมดูล Enumerable และกลไกการรวมไฟล์ภายนอก

ผลลัพธ์การเรียนรู้:

  • ใช้การจัดการข้อผิดพลาดที่ทนทานโดยใช้โครงสร้างลำดับข้อผิดพลาด (Exception class hierarchy) และโครงสร้างควบคุมแบบไม่เฉพาะที่ (non-local control structures)
  • สร้างโครงสร้างโค้ดแบบโมดูลาร์โดยใช้โมดูลเพื่อจัดการชื่อพื้นที่ (namespacing) และการผสมผสาน (mixins) เพื่อให้ฟังก์ชันการทำงานข้ามคลาส
  • ใช้โมดูล Enumerable กับคลาสที่กำหนดเอง และแก้ไขความคลุมเครือของชื่อเมธอดในสภาพแวดล้อมที่มีโมดูลหลายตัว

🔹 บทเรียนที่ 6: บทที่ 10–11: การดำเนินการอินพุต-เอาต์พุต (I/O) และการขนาน

ภาพรวม: บทเรียนนี้ครอบคลุมพื้นฐานของระบบอินพุต-เอาต์พุต (I/O) ของ Ruby และแบบจำลองการขนาน ผู้เรียนจะเรียนรู้การจัดการทรัพยากรภายนอกผ่านวัตถุ I/O — ทั้งไฟล์ สตริง และพอร์ตเครือข่าย — พร้อมสำรวจการเขียนโปรแกรมหลายเธรด (multi-threaded programming) หลักสูตรเปลี่ยนจากเทคนิคการจัดการไฟล์เบื้องต้น ไปสู่เทคนิคการซิงโครไนซ์ที่ซับซ้อน (มอนิเตอร์ คิว) และการจัดการกระบวนการภายนอกเพื่อจัดการงานขนานได้อย่างมีประสิทธิภาพ

ผลลัพธ์การเรียนรู้:

  • ดำเนินการเกี่ยวกับไฟล์โดยใช้การจัดการทรัพยากรแบบแมนนวลและแบบบล็อก เพื่อให้มั่นใจในความสมบูรณ์ของข้อมูล
  • ประมวลผลกระแสข้อมูลโดยใช้ตัวดำเนินการ (iterators) และไลบรารี StringIO เพื่อการจัดการอินพุต-เอาต์พุตที่ยืดหยุ่น
  • ตั้งค่าการสื่อสารผ่านพอร์ต TCP และโปรโตคอลระดับสูง เช่น HTTP

🔹 บทเรียนที่ 7: บทที่ 12–13: การทดสอบ การดีบัก และการปรับปรุงประสิทธิภาพ

ภาพรวม: บทเรียนนี้ให้แนวทางครอบคลุมเพื่อให้มั่นใจในคุณภาพและประสิทธิภาพของโค้ดใน Ruby ครอบคลุมหลักการทดสอบหน่วยงานโดยใช้เฟรมเวิร์ก Test::Unit เทคนิคการดีบักอย่างเป็นระบบโดยใช้ตัวดีบักของ Ruby และวิธีการระบุจุดที่ทำให้ประสิทธิภาพลดลงโดยใช้การวัดผล (benchmarking) และการวิเคราะห์ประสิทธิภาพ (profiling) ผู้เรียนจะได้เรียนรู้วิธีจัดวางการทดสอบ แก้ไขปัญหาตรรกะที่พบบ่อย และปรับปรุงโค้ดตามข้อมูลเชิงประจักษ์

ผลลัพธ์การเรียนรู้:

  • ใช้ Test::Unit framework ในการทดสอบหน่วยงานอัตโนมัติ และใช้ประเภทการยืนยัน (assertion types) ต่างๆ
  • วินิจฉัยและแก้ไขข้อผิดพลาดในโค้ดโดยใช้ตัวดีบักไลน์คำสั่งของ Ruby และกลยุทธ์การแก้ปัญหาทั่วไป
  • วิเคราะห์ประสิทธิภาพโค้ดโดยใช้โมดูล Benchmark และโปรไฟเลอร์ เพื่อระบุและแก้ไขจุดที่ทำให้การทำงานช้า

🔹 บทเรียนที่ 8: บทที่ 14–16: ระบบนิเวศของ Ruby และกระบวนการทำงาน

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

ผลลัพธ์การเรียนรู้:

  • ควบคุมพฤติกรรมโปรแกรม Ruby โดยใช้พารามิเตอร์บรรทัดคำสั่ง ตัวแปรสภาพแวดล้อม และวิธีการสิ้นสุด
  • ปรับปรุงกระบวนการทำงานของ Interactive Ruby (irb) โดยใช้ prompt ที่กำหนดเอง ฟังก์ชันการเติมอัตโนมัติ (tab completion) และการจัดการเซสชันย่อย
  • สร้างเอกสารที่มีโครงสร้างโดยใช้รูปแบบการจัดรูปแบบ (markup) ของ RDoc ตรรกะไฮเปอร์ลิงก์ และตัวบ่งชี้ เพื่อสร้างไฟล์ HTML และข้อมูล ri

🔹 บทเรียนที่ 9: บทที่ 17–18: การแจกจ่ายและบริการเว็บ

ภาพรวม: บทเรียนนี้ครอบคลุมกลไกพื้นฐานในการแจกจ่ายโค้ด Ruby และการสร้างแอปพลิเคชันเว็บ สำรวจระบบ RubyGems สำหรับการจัดการแพ็กเกจและการควบคุมเวอร์ชัน ความเป็นไปได้ในการสร้างอินเทอร์เฟซเว็บผ่าน CGI และระบบจัดรูปแบบ (templating systems) และการผสานระบบกระจายโดยใช้ SOAP และบริการเว็บ

ผลลัพธ์การเรียนรู้:

  • กำหนดและแพ็กเกจไลบรารี Ruby โดยใช้ Gem Specification และ Rake
  • พัฒนาแอปพลิเคชันเว็บไดนามิกโดยใช้ cgi.rb เพื่อจัดการพารามิเตอร์คำถาม คุกกี้ และเซสชัน
  • ใช้ระบบจัดรูปแบบ (ERB, Amrita) เพื่อแยกตรรกะแอปพลิเคชันออกจากส่วนการแสดงผล

🔹 บทเรียนที่ 10: บทที่ 19–20: แอนดรอยด์และการผสานกับแพลตฟอร์ม

ภาพรวม: บทเรียนนี้ครอบคลุมการสร้างอินเทอร์เฟซผู้ใช้กราฟิก (GUI) ใน Ruby โดยใช้ไลบรารี Tk ตั้งแต่การตั้งค่าวัตถุพื้นฐานไปจนถึงการจัดการแค้นวาสขั้นสูงและการเลื่อนสครอลล์ นอกจากนี้ยังสำรวจการผสานกับแพลตฟอร์มเฉพาะในระบบ Windows โดยเน้นการวัดประสิทธิภาพสำหรับการอัตโนมัติ และการใช้ไลบรารี DL เพื่อเชื่อมต่อโดยตรงกับ DLL ของ Windows

ผลลัพธ์การเรียนรู้:

  • สร้างแอปพลิเคชัน Ruby Tk ที่ใช้งานได้จริงโดยใช้วัตถุและตัวจัดการเรียงตำแหน่งต่างๆ (pack, place, grid)
  • ใช้การผูกเหตุการณ์ (event binding) และการสื่อสารแบบสองทิศทางผ่านการเลื่อนสครอลล์
  • แปลงเอกสาร Perl/Tk ที่มีอยู่ให้กลายเป็นโค้ด Ruby ที่ถูกต้อง และใช้ไลบรารี DL สำหรับการเรียกใช้ฟังก์ชันระดับต่ำของ Windows

🔹 บทเรียนที่ 11: บทที่ 21: การขยายความสามารถของ Ruby (API ภาษา C)

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

ผลลัพธ์การเรียนรู้:

  • เข้าใจและจัดการประเภท VALUE ของ Ruby และวัตถุที่เป็นค่าเริ่มต้น (immediate objects) ภายในสภาพแวดล้อมภาษา C
  • ใช้ขั้นตอนการจัดสรรและเริ่มต้นที่มีหลายขั้นตอนสำหรับคลาสของ Ruby ที่รองรับภาษา C
  • ทำให้กระบวนการสร้างส่วนขยายของ Ruby ทำงานอัตโนมัติโดยใช้ mkmf และ extconf.rb

🔹 บทเรียนที่ 12: บทที่ 22: ข้อกำหนดภาษาแบบครอบคลุม

ภาพรวม: บทเรียนนี้ให้การเจาะลึกเชิงเทคนิคเกี่ยวกับข้อกำหนดภาษา Ruby ครอบคลุมองค์ประกอบพื้นฐานที่จำเป็นต่อการพัฒนาในระดับมืออาชีพ ผู้เรียนจะสำรวจรายละเอียดของประเภทข้อมูลพื้นฐานของ Ruby กฎที่เข้มงวดเกี่ยวกับขอบเขตของตัวแปรและค่าคงที่ และกลไกของการแสดงออกและอาร์กิวเมนต์เมธอด

ผลลัพธ์การเรียนรู้:

  • แยกแยะประเภทข้อมูลต่างๆ (จำนวนเต็ม สตริง สัญลักษณ์) และใช้สัญลักษณ์ย่อ เช่น %w และ %q
  • จัดการขอบเขตของตัวแปรและความมองเห็นของค่าคงที่ ทั้งระดับโลก คลาส ตัวแปรอินสแตนซ์ และท้องถิ่น
  • ใช้ตรรกะการควบคุมที่ซับซ้อนโดยใช้ตรรกะบูลีน คำสั่งกรณี (case statements) และตัวแก้ไขลูป

🔹 บทเรียนที่ 13: บทที่ 23–24: การพิจารณาตามลักษณะวัตถุ (Duck Typing) และการเรียกใช้วัตถุ

ภาพรวม: บทเรียนนี้สำรวจกลไกการประมวลผลโค้ดของ Ruby ผ่านการเรียกใช้เมธอด การกำหนดวัตถุ และการจัดการข้อผิดพลาด ซึ่งนำไปสู่ปรัชญาของ "การพิจารณาตามลักษณะวัตถุ" (Duck Typing) ผู้เรียนจะได้เรียนรู้วิธีการกำหนดอินเทอร์เฟซที่ยืดหยุ่นโดยใช้บล็อกและโปรซ และสร้างระบบที่มั่นคงโดยใช้กลไกการจัดการข้อผิดพลาดและข้อเสนอแนะ (coercion) ของ Ruby

ผลลัพธ์การเรียนรู้:

  • ดำเนินการค้นหาเมธอดที่ซับซ้อนและปรับเปลี่ยนพฤติกรรมของเมธอดโดยใช้ super และ alias
  • สร้างโครงสร้างโค้ดที่มีโครงสร้างโดยใช้คำสั่งกำหนดคลาส/โมดูล และการประกาศแอตทริบิวต์
  • ใช้รูปแบบการเขียนโปรแกรมเชิงฟังก์ชันโดยใช้บล็อก ปิด (closures) และวัตถุ Proc

🔹 บทเรียนที่ 14: บทที่ 24–25: วัตถุขั้นสูงและด้านความปลอดภัย

ภาพรวม: บทเรียนนี้สำรวจสถาปัตยกรรมภายในของวัตถุใน Ruby โดยเน้นความสัมพันธ์ที่ซับซ้อนระหว่างอินสแตนซ์ คลาส และเมตาคลาส ผู้เรียนจะเชี่ยวชาญพฤติกรรมที่เปลี่ยนแปลงได้ผ่านคลาสเฉพาะตัววัตถุ และเทคนิคการเขียนโปรแกรมแบบเมตา (metaprogramming) พร้อมเรียนรู้การรักษาความปลอดภัยแอปพลิเคชันโดยใช้ระดับความปลอดภัย (safe levels) และกลไกการติดฉลากข้อมูล (data-tainting) ที่มีอยู่ในตัว Ruby

ผลลัพธ์การเรียนรู้:

  • วาดแผนผังโครงสร้างตัวชี้ภายใน (klass และ super) ที่ควบคุมวิธีที่คลาสและวัตถุสื่อสารกัน
  • ใช้คลาสเฉพาะตัว (singleton classes) เพื่อสร้างพฤติกรรมเฉพาะตัวของวัตถุ และจัดการสถานะผ่านตัวแปรอินสแตนซ์ของคลาส
  • ใช้เทคนิคเมตาโปรแกรมมิ่งและวัตถุที่ถูกแช่แข็ง (object freezing) เพื่อสร้างโค้ดที่มั่นคง ไม่เปลี่ยนแปลง หรือสร้างได้แบบไดนามิก

🔹 บทเรียนที่ 15: บทที่ 26–28: การสะท้อน (Reflection) และไลบรารีมาตรฐาน

ภาพรวม: โมดูลนี้สำรวจความสามารถในการสะท้อน (introspective) ที่ทรงพลังของ Ruby ซึ่งช่วยให้ผู้พัฒนาสามารถดูเข้าไปในวัตถุและคลาส โทรเมธอดแบบไดนามิก และจัดการการซีรีอาไลซ์วัตถุผ่านการจัดเก็บ (Marshaling) และ YAML ยังรวมถึงคู่มือและแนวทางการใช้งานอย่างครอบคลุมสำหรับไลบรารีมาตรฐานของ Ruby ครอบคลุมคลาสหลัก โปรโตคอลเครือข่าย ระบบจัดเก็บข้อมูล และเครื่องมือระบบ

ผลลัพธ์การเรียนรู้:

  • ใช้การสะท้อน (Reflection): ใช้ ObjectSpace, respond_to?, และ send เพื่อตรวจสอบและจัดการวัตถุในขณะทำงาน
  • จัดการการซีรีอาไลซ์ (Serialization): ใช้กลยุทธ์การจัดเก็บ (Marshaling) และ YAML เพื่อคงสถานะวัตถุและสนับสนุนการสื่อสารผ่าน Distributed Ruby (DRb)
  • ใช้ไลบรารีมาตรฐาน: นำทางและใช้โมดูลเฉพาะสำหรับเครือข่าย (Net::HTTP), ข้อมูลเว็บ/XML (REXML, CGI), และการจัดเก็บข้อมูล (PStore, CSV, SDBM)