Sunday, May 29, 2005

Learning by Testing

ตอนนี้ว่างๆ ก็พยายามจะหัดใช้ ruby
ปกติเวลาผมหัดเขียนโปรแกรม ผมก็จะใช้วิธีเขียนโปรแกรม แล้วก็
dump ตัวแปร ออกมาดูว่าค่าต่างๆมีการเปลี่ยนไปอย่างไร
เช่น สมมติจะทดลองใช้ ruby array
ผมอาจจะเขียน
a = [1, 2, 3, 4, 5, 6]
a[1..2] = "pok"
puts a

พอเห็นผลลัพท์ทีได้ เราก็จะรู้ว่ามันตรงกับที่ใจเราคาดหวังไว้หรือไม่

วันนี้อ่านเจอ วิธีการเรียน ruby ของ Mike Clark
เขาใช้ unit testing เข้ามาช่วย
แทนที่จะเห็นผลลัพท์ด้วยตา
ก็เปลี่ยนมาใช้การ assert แทน
จากตัวอย่างข้างบน ก็เปลี่ยนมาเขียนแบบนี้แทน
require 'test/unit'
class MyTest < Test::Unit::TestCase
def test_array
a= [1, 2, 3, 4, 5, 6]
a[1..2] = "pok"
assert_equal(5, a.length)
assert_equal("pok", a[1])
assert_equal(4, a[2])
end
end


ซึ่งผมเห็นด้วยกับวิธีเรียนรู้แบบนี้เลยนะ
ลองเรียนรู้ด้วยวิธีนี้แล้ว รู้สึก productive ดี
นอกจากนั้นสิ่งที่เขียนเก็บไว้
ก็สามารถนำมาใช้อ้างอิงหรือทบทวนได้ง่ายกว่า
เนื่องจากมีค่า "ผลลัพท์ที่พึงได้" อยู่ใน source code ด้วยเลย

Related link from Roti

No comments: