Isriya Paireepairit / mk / markpeak
A Thai tech geek. Co-founder of Blognone and SIU. Blogging on almost everything.
ช่วงนี้รู้สึก information overload เลยกลับมาหัดเขียนโปรแกรมดีกว่า ด้วยชื่อเสียงของ Ruby on Rails ก็ทำให้ Ruby เป็นภาษาถัดไปของเรา
ต้องบอกก่อนว่านี่ไม่ใช่ tutorial สำหรับ Ruby เป็นแค่สมุดจดบันทึกของผมเท่านั้น ดังนั้นอะไรที่ผมรู้อยู่แล้ว ก็จะข้ามไป อยากรู้ก็ไปขวนขวายกันเอาเองนะครับ ประสบการณ์ในการเขียนโปรแกรมของผมมีดังนี้
แอบดู
Ruby เป็นภาษาแบบ interpreter ยุคใหม่เช่นเดียวกับ Python ตอนดูแวบแรกก็ เฮ้ย นี่มัน Python แบบไม่ใช้ indent นี่หว่า (Ruby ใช้ end ในการกำหนดขอบเขตบล็อก) แต่อ่านจาก Wikipedia เค้าบอกว่าได้แรงบันดาลใจมาจาก Perl ตะหาก
หนังสือเรียน
แรกสุดก็หาเอกสารประกอบการศึกษาก่อน เนื่องจากว่าผมมีพื้นในการเขียนโปรแกรมมาพอสมควร เลยขี้เกียจอ่านหนังสือเต็มรูปแบบอย่าง Programming Ruby (มีเวอร์ชันออนไลน์ให้อ่านฟรี) ส่วน Reference Manual ก็เอาไว้เปิดเวลาสงสัยมากกว่า
สิ่งที่ผมอยากได้คือ คู่มือง่ายๆ แบบ learning by example ดูตัวอย่างโค้ดแล้วสังเกตการเปลี่ยนแปลงเอา มีอธิบายตรงคำสั่งสำคัญๆ สุดท้ายมาจบที่ Ruby in Highlight ที่เขียนโดย Matz คนสร้างภาษา Ruby นี่เอง (Matz เป็นญี่ปุ่น ฉบับนี้เป็นแปลอังกฤษ)
เพิ่งเคยเจอ tutorial ที่ regexp มาก่อน array ก็ใน Ruby นี่ล่ะ
เตรียมของ
apt-get install ruby บน Debian ทีเดียวจบ ส่วนเรื่อง syntax highlight ภาษาแปลกๆ vi ยังทำได้ นับประสาอะไรกับ Ruby ฉลุย!
ลองรัน
Ruby จะคล้ายกับ Python มาก สามารถเขียนโค้ดลง console หรือลงไฟล์แล้วค่อยเรียกก็ได้ นามสกุลไฟล์เป็น .rb
การรันก็
ruby filename.rb
ช็อตโน้ต
ข้อสังเกต
(ก็ยัง)คาใจ
วันแรกพอแค่นี้ก่อน
Comments
LewCPE
28 November, 2005 - 20:52
Permalink
พอเจอมึงบอกว่ามี Special Variable นี่กูถอยเลย โคตรเกลียดอ่ะ
pphetra
28 November, 2005 - 21:25
Permalink
ตอนผมเรียนรู้ ผมเรียนมาจากฝั่ง RoR ก่อน
(คือมีประสบการณ์ mvc framework อยู่แล้ว
ก็เพียงแต่หัด syntax ของภาษาเพิ่มอีกนิดหน่อย)
ตอนนั้น ก็รู้สึกว่าภาษามัน clean กว่า perl
ในแง่ เขียนง่าย อ่านไม่ยาก (นัก)
ต่อมา พอหัดมาดู syntax จริงๆจัง
เข้าไปอ่านตาม ruby blog ต่างๆ
ก็ชักเห็นด้วยกับ mk แล้วว่า
ถ้าเขียนให้อ่านยากแล้ว
ruby ก็น้องๆ perl นี่เอง
ส่วนผมเวลาเขียน ruby
เนื่องจากติดมาจาก java แล้ว
ก็เลยเขียนทื่อๆ ไม่นิยม magic syntax นัก
(แต่ไม่แน่ พอชำนาญแล้ว อาจเปลี่ยนใจ)
mk
28 November, 2005 - 21:52
Permalink
lew:
ยังจำตอนเขียน Perl ได้อยู่เลย $@ ตามหลอกหลอน
pphetra:
ผมค่อนข้างนิยม Python ตรงมัน clean นี่ล่ะครับ แต่เรื่อง indent ของ Python จะมองให้เป็นจุดอ่อนก็ได้เหมือนกัน เท่าที่เขียนมาก็คิดว่าการใช้วงเล็บ { } ในสายตระกูล C นี่ค่อนข้างจะ fault-tolerant มากที่สุด
bact'
30 November, 2005 - 00:14
Permalink
regular
regular expression
ตอนแรกพยายามเขียนให้เป็น Regexp.new
ติดจาก Python มา แล้วมันก็ดูง่ายดี
แต่ทำไปทำมา มันดูเยอะ ๆ พิกล ยาว ๆ
เลยเปลี่ยนมาใช้ / /
ก็สั้นดี แต่ก็ไม่ค่อยชอบใจ ไม่ชอบน่ะ
เลยเปลี่ยนมาเป็น %r{}
อยู่ตรงกลาง ๆ .. มั้ง
นี่ว่าจะกลับไปใช้ Regexp.new ใหม่
bact'
30 November, 2005 - 00:17
Permalink
พวก foreach, each,
พวก foreach, each, each_line นี่
เปิดดู api doc เอา
ใช้เครื่องหมาย | | คิดซะว่ามันคือ argument สำหรับ code block นั้นน่ะ
อย่าง a.each { |item| print item }
ก็ ข้อมูลแต่ละ'ก้อน'ใน a จะกลายมาเป็น item แล้วเราก็ print item
เพิ่งหัดเขียนเหมือนกัน เมื่อสุดสัปดาห์ที่ผ่านมา / ยังไม่ได้บล็อก
ทำไปทำมาจะกลายเป็นโครงการใหญ่ แก้ LEXiTRON :P
Add new comment