ผลต่างระหว่างรุ่นของ "418342 ภาคปลาย 2552/ปฏิบัติการที่ 3"
Cardcaptor (คุย | มีส่วนร่วม) |
|||
(ไม่แสดง 2 รุ่นระหว่างกลางโดยผู้ใช้ 1 คน) | |||
แถว 35: | แถว 35: | ||
ถ้าคุณต้องการสร้าง instance ของคลาส RatNum ที่แทนจำนวน 17/3 คุณสามารถสร้างมันขึ้นมาอย่างใดได้บ้าง? | ถ้าคุณต้องการสร้าง instance ของคลาส RatNum ที่แทนจำนวน 17/3 คุณสามารถสร้างมันขึ้นมาอย่างใดได้บ้าง? | ||
</blockquote> | </blockquote> | ||
+ | |||
+ | หลังจากตอบคำถามที่ 2 และ 3 แล้วให้คุณเปิดไฟล์ RatNum.rb ขึ้นมาดู แล้วศึกษาวิธีการเขียนเมธอดต่างๆ โดยเฉพาะเมธอด +, -, *, /, -@, และ initialize | ||
+ | |||
+ | ภาษา Ruby มีไลบรารีสำหรับการทำ unit testing ติดมาพร้อมกับตัวภาษาเลย คุณสามารถ run unit test ของคลาส RatNum ได้ด้วยการ run คำสั่ง | ||
+ | ruby test_RatNum.rb | ||
+ | คุณจะพบว่าเมื่อ run unit test แล้วจะ run ผ่านทั้งหมด | ||
+ | |||
+ | ต่อไปให้คุณเปิดไฟล์ TestRatNum.rb ขึ้นมาอ่านเพื่อศึกษาว่า unit test ของภาษา ruby เขียนขึ้นมาได้อย่างไร คุณสามารถหารายละเอียดเพิ่มเติมของการสร้าง unit test ในภาษา Ruby ได้ที่ [http://ruby-doc.org/stdlib/libdoc/test/unit/rdoc/classes/Test/Unit.html http://ruby-doc.org/stdlib/libdoc/test/unit/rdoc/classes/Test/Unit.html] | ||
+ | |||
+ | You Sir/Madam are the enemy of confusion everyhwere! | ||
+ | |||
+ | == RatPoly == | ||
+ | หลังจากคุณเติม RatTerm ได้สมบูรณ์แล้วให้ไปเติมคลาส RatPoly ซึ่งอยู่ในไฟล์ RatPoly.rb ให้สมบูรณ์บ้าง คุณจะแน่ใจว่าคุณเติมคลาสได้สมบูรณ์แล้วก็ต่อเมื่อคุณ run | ||
+ | ruby test_RatPoly.rb | ||
+ | แล้วผ่าน test ทุก test แล้วเท่านั้น | ||
+ | |||
+ | == Commit และ Push == | ||
+ | หลังจากเติม RatPoly ให้สมบูรณ์แล้วให้สั่ง | ||
+ | hg commit | ||
+ | เพื่อ commit ความเปลี่ยนแปลงต่างๆ ที่คุณได้สร้างขึ้น แล้วจึงสั่ง | ||
+ | hg push | ||
+ | เพื่อส่งผลงานของคุณไปเกิดที่เซิร์ฟเวอร์กลางต่อไป |
รุ่นแก้ไขปัจจุบันเมื่อ 20:20, 28 กันยายน 2554
ในปฏิบัติการที่สามนี้คุณจะได้เขียนคลาสสำหรับจัดการพหุนามที่มีสัมประสิทธิ์เป็นจำนวนตรรกยะ นอกจากนี้ยังจะได้เรียนรู้เรื่องการใช้เครื่องมือสร้าง documetation ชื่อ RDOC และการเขียนใช้ unit testing ในภาษา Ruby ด้วย
เนื้อหา
Clone, Pull, และ Update
ถ้าเครื่องคุณยังไม่มี repository ส่วนตัวของคุณ ให้คุณทำการ clone repository ของตัวเองจาก
https://theory.cpe.ku.ac.th/418342_<<ชื่อ account เกษตรของคุณ>>
หลังจากนั้นให้ทำการ pull จาก master repository โดยสั่ง
hg pull https://theory.cpe.ku.ac.th/418342_master
คุณอาจจะพบว่า pull มาแล้วอาจจะเกิด conflict ซึ่งถ้าเกิดเหตุการณ์เช่นนี้ ให้คุณสั่ง
hg merge
แล้วจึงสั่ง
hg commit
แล้วจึง update ด้วยการสั่ง
hg update
คุณจะพบว่าใน repository ของตัวเองจะมี directory ชื่อ lab-03 อยู่
สร้าง API Documentation ด้วย RDOC
RDOC เป็นเครื่องมีใช้สร้าง API documentation ของภาษา Ruby ซึ่งมีลักษณะคล้ายๆ กับ javadoc ให้คุณเข้าไปใน directory ชื่อ lab-03 ที่เพิ่งถูก pull เข้ามาใหม่
cd lab-03
แล้วจึีงสั่ง
rdoc RatNum.rb RatTerm.rb RatPoly.rb --all
คุณจะเห็นว่า RDOC จะทำการสร้าง directory ชื่อ doc ขึ้นใน directory lab-03 ให้คุณเข้าไปสำรวจ directory นี้ แล้วเปิดไฟล์ชื่อ index.html ในเบราเซอร์ที่คุณชอบ
คำถามที่ 1
ใน API documentation ที่สร้างขึ้นมามีคลาสอะไรปรากฏอยู่บ้าง? คลาส String เป็นคลาสที่ใช้ทำอะไร? ทำไมมีเมธอดแค่ 3 เมธอดในคลาสสตริง? จริงๆ แล้วคลาส String มีเมธอดแค่ 3 เมธอดนี้หรือเปล่า? ในภาษา Java หรือ C# คุณจะสามารถทำอย่างนี้กลับคลาส String ได้หรือไม่? เพราะอะไร?
RatNum
คำถามที่ 2
ให้อ่าน API ของคลาสที่ชื่อ RatNum คลาสนี้มีไว้ทำอะไร? มันมีฟีลด์อยู่กี่ฟีลด์และแต่ละฟีลด์แทนค่าอะไร?
คำถามที่ 3
ถ้าคุณต้องการสร้าง instance ของคลาส RatNum ที่แทนจำนวน 17/3 คุณสามารถสร้างมันขึ้นมาอย่างใดได้บ้าง?
หลังจากตอบคำถามที่ 2 และ 3 แล้วให้คุณเปิดไฟล์ RatNum.rb ขึ้นมาดู แล้วศึกษาวิธีการเขียนเมธอดต่างๆ โดยเฉพาะเมธอด +, -, *, /, -@, และ initialize
ภาษา Ruby มีไลบรารีสำหรับการทำ unit testing ติดมาพร้อมกับตัวภาษาเลย คุณสามารถ run unit test ของคลาส RatNum ได้ด้วยการ run คำสั่ง
ruby test_RatNum.rb
คุณจะพบว่าเมื่อ run unit test แล้วจะ run ผ่านทั้งหมด
ต่อไปให้คุณเปิดไฟล์ TestRatNum.rb ขึ้นมาอ่านเพื่อศึกษาว่า unit test ของภาษา ruby เขียนขึ้นมาได้อย่างไร คุณสามารถหารายละเอียดเพิ่มเติมของการสร้าง unit test ในภาษา Ruby ได้ที่ http://ruby-doc.org/stdlib/libdoc/test/unit/rdoc/classes/Test/Unit.html
You Sir/Madam are the enemy of confusion everyhwere!
RatPoly
หลังจากคุณเติม RatTerm ได้สมบูรณ์แล้วให้ไปเติมคลาส RatPoly ซึ่งอยู่ในไฟล์ RatPoly.rb ให้สมบูรณ์บ้าง คุณจะแน่ใจว่าคุณเติมคลาสได้สมบูรณ์แล้วก็ต่อเมื่อคุณ run
ruby test_RatPoly.rb
แล้วผ่าน test ทุก test แล้วเท่านั้น
Commit และ Push
หลังจากเติม RatPoly ให้สมบูรณ์แล้วให้สั่ง
hg commit
เพื่อ commit ความเปลี่ยนแปลงต่างๆ ที่คุณได้สร้างขึ้น แล้วจึงสั่ง
hg push
เพื่อส่งผลงานของคุณไปเกิดที่เซิร์ฟเวอร์กลางต่อไป