Topic 11
Topic 11
โค้ด Ruby ใช้ร่วมจากโฟลเดอร์ en/ ของต้นฉบับ เพื่อให้สองภาษาผูกกับชุดทดสอบเดียวกัน
ภาพรวม
ทำไมหัวข้อนี้จึงสำคัญ
งานกับ CSV โผล่ขึ้นมาในซอฟต์แวร์สายธุรกิจตลอดเวลา ทั้งการ import, export, รายงาน ฝั่งแอดมิน และการส่งต่อข้อมูลระหว่างระบบ หัวข้อนี้จึงอยากให้ผู้เรียนมองงาน CSV เป็น งานข้อมูลขนาดเล็กที่มีลำดับชัด: อ่านข้อมูล เขียนข้อมูล แล้วค่อยค้นหามันผ่าน service ที่ โฟกัสงานเดียว
สิ่งที่ผมอยากให้คุณทำได้เมื่อจบหัวข้อนี้
เมื่อจบหัวข้อนี้ คุณควรจะ:
จุดที่ผมใช้ดูความเข้าใจ
ผมอยากให้คุณอธิบายได้ว่าทำไมการเข้าถึงไฟล์กับ logic การค้นข้อมูล จึงไม่ควรถูกรวมไว้ใน method ใหญ่อันเดียว
โน้ตสั้น
หลายคนเริ่มต้นมอง CSV เป็นงาน utility ง่าย ๆ แค่ว่า "เปิดไฟล์แล้ววนอ่านทีละบรรทัด" มุมมองนั้นแคบเกินไป งาน CSV มักมีความกังวลอยู่สามชั้น:
Ruby ทำงานกับเรื่องนี้ได้สบาย เพราะ:
จุดที่ Ruby ทำได้ดีในหัวข้อนี้:
จุดที่ต้องระวังในหัวข้อนี้:
คำถามชวนคิด:
ตัวอย่างแบบลงมือดู
Example 1: นำเข้า inventory จากไฟล์ CSV
การนำเข้า inventory เป็นตัวอย่างสอนที่ดี เพราะโครงสร้างของไฟล์เข้าใจง่าย และผลลัพธ์ก็ แปลงเป็น arrays ของ hashes ได้ตรงไปตรงมา
reader . load ( "inventory.csv" ) # => [{ "sku" => "B100" , "name" => "Ruby Book" , "price" => "30" , "category" => "books" }] worked_examples.md ruby นี่เป็น sprint แรกที่ดี เพราะมันแยกการอ่านไฟล์ออกจาก business logic ที่จะตามมา
Example 2: ค้นข้อมูลที่นำเข้าแล้ว
พอโหลดแถวข้อมูลเข้ามาแล้ว ทีมก็มักถามคำถามแบบนี้ต่อ:
เหตุผลที่ตัวอย่างนี้มีประโยชน์: