Programming

อัดรูปดิจิตอล ทำสมุดภาพของคุณเอง
รอรับได้. ท่องเที่ยว แต่งงาน ฯลฯ

www.tanabutr.co.th/photobook


4. รวมเข้าด้วยกัน

เราดูอ็อบเจคที่ต่างๆกันไปแล้ว (ตัวเลขและสตริงก์), และเราก็สร้างตัวแปรให้ชี้ไปที่มัน; สิ่งที่เราจะทำต่อไปคือทำให้สิ่งเหล่านั้นทำงานด้วยกัน.

เรารู้แล้วว่าถ้าเราต้องการให้โปรแกรมพิมพ์ 25, โค้ดต่อไปนี้ไม่เวิร์ก, เพราะเราไม่สามารถรวม(บวก)ตัวเลขเข้ากับสตริงก์.

3. ตัวแปรและการตั้งค่า

เท่ีาที่ผ่านมา เวลาที่เราใช้ puts แสดงตัวเลขหรือสตริงก์, สิ่งที่เราแสดงจะแสดงแล้วหายไป. ผมหมายความว่า, ถ้าเราต้องแสดงอะไรสองครั้ง, เราต้องพิมพ์สองครั้ง

puts '...you can say that again...'
puts '...you can say that again...'

2. ตัวอักษร

เราเรียนเรื่องเกี่ยวกับตัวเลขไปแล้ว, แล้วตัวอักษรล่ะ? คำ? เท็กซ์?

เราเรียกกลุ่มตัวอักษรในโปรแกรมว่าสตริงก์ (strings). (ให้คุณนึกถึงตัวอักษรที่นำมารวมกันบนป้าย) เพื่อที่จะให้ดูสตริงก์ง่ายขึ้นในโค้ด, ผมจะใช้สีแดง. ต่อไปนี้เป็นตัวอย่างของสตริงก์:

1. ตัวเลข

ถึงตอนนี้คุณก็ผ่านขั้นเรื่องของการติดตั้งเรียบร้อยแล้ว, เรามาเริ่มเขียนโปรแกรมกันดีกว่า! เปิดบรรณาธิกรณ์ที่คุณชอบใช้แล้วพิมพ์สิ่งต่อไปนี้:

puts 1 + 2

เซฟโปรแกรม (ใช่แล้ว, นี่คือโปรแกรม!) ชื่อ calc.rb (.rb มักจะใช้ระบุว่าเป็นโปรแกรมที่เขียนด้วยภาษา Ruby). ตอนนี้ก็รันโปรแกรมโดยการพิมพ์ ruby calc.rb ในบรรทัดคำสั่ง. มันควรจะแสดงผลลัพธ์ 3 บนหน้าจอ. เห็นไหมว่าการเขียนโปรแกรมไม่ยากใช่ไหม.

0. เริ่มต้น

ถ้าคุณจะเขียนโปรแกรมคอมพิวเตอร์, คุณต้อง "พูด" ด้วยภาษาที่คอมพิวเิตอร์เข้าใจ: คือภาษาโปรแกรม. มีโปรแกรมหลายภาษามากมาย, และหลายภาษาก็เป็นภาษาที่เยี่ยมยอด. ในติวทอเรียลนี้จะใช้ภาษาที่ผมชอบได้แก่, Ruby.

นอกจากจะเป็นภาษาที่ผมชอบแล้ว, Ruby ยังเป็นภาษาโปรแกรมภาษาหนึ่งที่เขียนได้ง่ายที่สุดที่เคยเห็นมา (ซึ่งผมอาจจะพบเห็นมาน้อย). ในความเป็นจริงแล้วสำหรับการเขียนติวทอเรียลครั้งนี้: ผมไม่ได้ตัดสินใจเขียนติวทอเรียล, และเลือก Ruby เพราะว่าเป็นภาษาโปรแกรมที่ผมชอบ; ในทางตรงกันข้าม, ผมพบว่า Ruby มันง่ายมากจนกระทั่งตัดสินว่าควรจะเขียนติวทอเรียลดีๆสำหรับคนที่เริ่มเขียนโปรแกรม. มันเป็นความเรียบง่ายของภาษา Ruby ที่ทำให้เริ่มต้นติวทอเรียลนี้, ไม่ใช่เพราะว่าเป็นภาษาโปรแกรมที่ผมชอบ (การเขียนติวทอเรียลทำนองเดียวกันเช่น C++ หรือ Java อาจจะทำให้ต้องเขียนเป็นร้อยๆหน้า) แต่กรุณาอย่าคิดว่า Ruby เป็นภาษาสำหรับคนที่เริ่มมเรียนโปรแกรมมิ่งเพราะว่ามันง่าย! มันเป็นภาษาที่มีพลัง, ภาษาแบบมืออาชีพเท่าที่เคยมีมา.

Object Oriented ใน ruby

รู้สึกว่าจะหลีกเลี่ยงที่จะไม่พูดถึง object oriented ไม่ได้ (ต้องพูด) เพราะใช้ ruby ไปแล้วมันต้องไปเกี่ยวข้องกับเรื่องนี้, ก็ต้องมีความรู้ปูพื้นเรื่องนี้ไว้ด้วย.

ทุกอย่างใน ruby เป็นอ็อบเ็จค (วัตถุ) หมด. อ็อบเจ็คหรืออินสแตนซ์ (instance) เกิดมาจากคลาส (class). ให้คิดว่าคลาสเป็นแม่พิมพ์ต้นแบบหรือเป็นประเภท (type) สำหรับแยกแยะวัตถุ (อ็อบเจค) ต่างๆ. คลาสหรือตัวแม่พิมพ์จะมีการกำหนดไว้ล่วงหน้าแล้วว่าอ็อบเจคที่จัดอยู่ในคลาสนั้นๆจะมีคุณสมบัติอะไร, ทำอะไรได้บ้าง. สมมติว่าเราตั้งคลาสที่ชื่อว่า Car. รถยนต์ก็ต้องมีล้อ, มีพวงมาลัย. นอกจากพวกส่วนประกอบแล้วก็ยังต้องมีกริยาหรือการกระทำ. เช่นรถยนต์ก็ต้องวิ่งได้. เวลาเขียนโปรแกรมพวกคุณสมบัติก็มักจะเก็บอยู่ในตัวแปร, ส่วนกริยาก็เป็นฟังก์ชัน. แต่ฟังก์ชันของคลาสเรามักจะเรียกว่าเมตธอต (method). การควบคุมอ็อบเจคนั้นมักจะเกิดจากการส่ง message ให้อ็อบเจคซึ่งก็คือการเรียกใช้เมตธอตนั่นเอง. เช่นมีตัวแปรชื่อ var เก็บอ็อบเจคของคลาส String. เราก็สามารถสั่งอ็อบเจคนั้นให้ทำงานต่างๆได้ถ้าเรารู้ว่าอ็อบเจคนั้นทำอะไรได้บ้าง. สมมติว่าเราต้องการสั่งให้ var มันแสดงจำนวนอักขระที่มีอยู่ในตัวมันก็ต้องรู้ว่าต้องใช้เมตธอต length. แล้วสั่ง

ruby เบื้องต้น

ไม่รู้ว่าจะเริ่มยังไงดี. เอาเป็นว่าเริ่มจาก built-in method เบื้องต้นก็แล้วกัน. built-in method นี่ก็คือ private method ที่แนะนำไปในครั้งที่แล้วหรือเรียกอีกอย่างว่า kernel method.

สคริปต์ต่อไปนี้สมมติว่าชื่อ inout.rb. เวลารันมันจะถามให้คนใช้พิมพ์อะไรเข้าไปแล้วส่งสิ่งที่พิมพ์นั้นกลับมาทางหน้าจอ. ตัวเลขที่อยู่หน้าทุกบรรทัดนั้นเพื่อความสะดวกในการอ้างอิง, ไม่ต้องพิมพ์ตาม.

ติดตั้ง ruby แล้ว Hello world!

ว่าจะข้ามตรงนี้ไปเลยก็อดไม่ได้ที่จะเขียนให้. วันนี้เป็นเรื่องของการติดตั้ง ruby.

สำหรับคนที่ใช้ิลินุกซ์ตระกูล debian ก็ apt-get. พวกที่ใช้ fedora ก็ใช้ yum, พวกที่ใช้ gentoo ก็ emerge. หรือดาว์นโหลดรหัสต้นฉบับจาก ruby-1.8.3 จากเว็บไซด์ต้นตำหรับ. ถ้าจะใช้บนวินโดวส์ก็ลง cygwin หรือ RubyForge ก็ได้.

กระแส Ruby

เห็นคุณ bact's กับลังใช้ ruby เลยอยากปลุกกระแสบ้างโดยมาเรียน Ruby กันเถอะ. วันนี้เอาเรื่องคุณสมบัติของ ruby ก่อนแล้วกัน.

  • ruby เป็นโปรแกรมแปลภาษา (intepreter)

    ruby เป็นพวกเดียวกับ bash, awk, perl, python ฯลฯ ในแง่ที่ว่าเป็นโปรแกรมแปลภาษา. โปรแกรมภาษาพวกนี้เหมาะสำหรับเขียนสคริปต์เพราะการสร้างโปรแกรมด้วยตัวแปลภาษาพวกนี้ทำได้เร็ว, ไม่ยุ่งยากเมื่อเทียบกับภาษาคอมพิวเตอร์ที่ต้องคอมไพล์. สรุปง่ายๆคือใช้ง่ายและทำอะไรได้หลายอย่างด้วยการเขียนโค้ดสั้นๆ.

  • เป็นภาษาแบบ object oriented

Joel on Software

ไม่ได้เขียนบล็อกเกือบเดือน, วันนี้เริ่มได้เขียนก็จะจบเดือนไปแล้ว.

หลายคนคงเคยอ่านเว็บล็อก Joel On Software เป็นเว็บล็อกยอดนิยมของคนในวงการซอฟต์แวร์ที่เขียนโดย Joel Spolsky. เขาเขียนบ่อยและเขียนที่ยาวด้วย. เคยอ่านเนื้อหาที่เขาเขียนจาก slashdot เรื่อง How Microsoft Lost the API War แล้วยังติดใจมาตลอด.