การเขียนโปรแกรมรูบี: คู่มือสำหรับนักพัฒนาที่มีความเป็นผู้ปฏิบัติจริง (ฉบับที่สอง)
คู่มืออ้างอิงและบทเรียนที่ครอบคลุมเกี่ยวกับภาษาโปรแกรมเมอร์รูบี ครอบคลุมไวยากรณ์พื้นฐาน การออกแบบเชิงวัตถุ ฟีเจอร์ขั้นสูง เช่น การสะท้อน (reflection) และการจัดการหลายเธรด (threading) และการอ้างอิงไลบรารีครบถ้วนสำหรับเวอร์ชัน 1.8
ภาพรวมคอร์สเรียน
📚 สรุปเนื้อหา
คู่มือและบทเรียนที่ครอบคลุมสำหรับภาษาโปรแกรม Ruby ครอบคลุมไวยากรณ์พื้นฐาน การออกแบบเชิงวัตถุ ฟีเจอร์ขั้นสูง เช่น การสะท้อน (reflection) และการจัดการหลายเธรด (threading) และคู่มือไลบรารีครบถ้วนสำหรับเวอร์ชัน 1.8
เชี่ยวชาญศิลปะของการเขียนโปรแกรมที่สวยงามและทรงพลังด้วยคู่มือที่เป็นที่ยอมรับอย่างเป็นทางการของภาษา Ruby
ผู้แต่ง: เดว์ โทมัส, ชัด ฟาวเลอร์, แอนดี้ ฮันต์
ขอบคุณ: ผู้ตรวจสอบจากกลุ่มเมลลิ่งของ Ruby, ยูกิฮิโร มัตซึโมโตะ (แมตซ์), ชัด ฟาวเลอร์, คิม วิมเพ็ตต์ และชุมชนผู้เขียนโปรแกรมเชิงปฏิบัติ (Pragmatic Programmers)
🎯 เป้าหมายการเรียนรู้
- ติดตั้งและตั้งค่าสภาพแวดล้อม Ruby โดยใช้วิธีต่างๆ (แบบไบนารี แหล่งโค้ด หรือ CVS) และใช้เครื่องมือโต้ตอบ เช่น irb และ ri
- ใช้กฎการตั้งชื่อของ Ruby และหลักการเชิงวัตถุในการกำหนดเมธอดและจัดการตัวแปร
- จัดการข้อมูลโดยใช้อาร์เรย์พื้นฐาน แฮช และการเรียกใช้สมการปกติ (regular expressions)
- กำหนดและนำไปใช้โครงสร้างคลาสโดยใช้การสืบทอดแบบเดียว คำสั่ง super และ mixin
- ควบคุมความเห็นของวัตถุและรักษาความสมบูรณ์ของข้อมูลโดยใช้การควบคุมการเข้าถึง (Public, Private, Protected) และแอตทริบิวต์
- สร้างคลาสตัวเก็บข้อมูลที่แข็งแรง (เช่น SongList) ที่ผสานการทดสอบหน่วยงาน (Unit Testing)
- ประยุกต์ตรรกะเลขฐานต่างๆ (ฐานสิบหก ฐานแปด ฐานสอง) และใช้ตัวนับจำนวน (numeric iterators) เพื่อควบคุมการไหลของโปรแกรม
- สร้างสตริงที่ซับซ้อนโดยใช้การแทนที่ (interpolation) heredocs และรูปแบบตัวแบ่งที่หลากหลาย
- ใช้ช่วง (Ranges) เป็น "สวิตช์เปิด-ปิด" ในการควบคุมเงื่อนไข และใช้เป็นเครื่องตรวจจับช่วงเวลา
- กำหนดและเรียกใช้เมธอดโดยใช้รายการอาร์กิวเมนต์ที่ยืดหยุ่น (สัญลักษณ์สปลาท), อาร์กิวเมนต์แบบแฮช "เหมือนคำสำคัญ", และการแปลงบล็อกเป็นโปรซ (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)