Rspec Ruby on Rails

Rspec Ruby on Rails

  Rspec คือการเขียนทดสอบในกรณีต่างๆ ที่สมมุติขึ้นกับตัว Application ของเราว่าการทำงานถูกต้องตามที่เราต้องการหรือไม่ เพราะเมื่อเราเขียน Application ไปมากๆแล้ว เราไม่สามารถตรวจสอบการทำงานได้เลย ถ้าไม่มี Spec เขียนไว้ทดสอบการทำงานต่างๆ ของ Application ภาพรวมของการเขียน Rspec ดังนี้   ให้มอง Application เป็นกล่องดำโดยไม่ต้องเข้าใจว่าข้างในคืออะไร โดยที่เราใส่ข้อมูลอะไรลงไป เราจะสามารถคาดเดาผลลัพท์ได้นั่นเองยกตัวอย่างเช่น เราสร้างมา 1 Class ชื่อว่า Bowling และมี Method hit และ score   โดยที่เราสามารถเขียนทดสอบได้ดังนี้เมื่อเรียก Method: score จะสามารถคาดเดาได้ว่าค่าที่ได้จะต้องเป็น 0 เสมอ จึงเขียนทดสอบ “bowling.score.should eq(0)” เพื่อบอกว่าผลลัพท์ที่ได้นั้นเท่ากับ 0 เสมอ Rspec Ruby on Rails สามารถติดตามได้ที่ https://github.com/rspec/rspec

การติดตั้ง Docker Mac OS X

การติดตั้ง Docker Mac OS X

การติดตั้งบน Mac OSX นั้นสามารถติดตั้งโดยใช้ Boot2Docker เพื่อที่ใช้ docker command ได้สามารถเลือกวิธีนี้ได้ถ้าเราคุ้นเคยกับ Command line มีอีกหนึ่งทางเลือกในการติดตั้ง docker บน Mac OSX คือ https://kitematic.com จะเป็น graphical user interface (GUI) ให้สามารถใช้งานได้ง่ายขึ้น ในที่นี้ผมจะแนะนำ Boot2Docker เพราะการใช้งานจะสะดวกและรวดเร็วกว่า (ความเห็นส่วนตัวครับ) เราสามารถ download และติดตั้งได้ที่ https://github.com/boot2docker/osx-installer/releases/tag/v1.6.2 เลือก download Boot2Docker-x.x.x.pkg จากนั้น Dubble Click เพื่อทำการติดตั้ง โดยลากไปวางไว้ที่ Applications Directory ในการติดตั้งไฟล์ binary ได้นำไปไว้ที่ /usr/local/bin เรียบร้อยแล้ว เรียนรู้ key concept กันก่อน การติดตั้ง docker บน linux สามารถทำได้เลย โดยสามารถทำงานได้ทั้ง localhost และ docker host เช่น …

Docker คืออะไร ?

Docker คืออะไร ?

ก่อนที่เราจะรู้จัก docker ได้นั้น เราต้องมาทำความรู้จักกับ linux containers กันก่อน linux containers คืออะไร? (LXC) เป็นวิธีการทำงานแบบเสมือนระดับ OS สำหรับทำงานแยกจากระบบปฎิบัติการหลัก แต่ไม่ใช่แบบเดียวกับ Virtual machine โดย LXC จะทำการแชร์ Linux Kernel  กับ OS หลักและทำงานเสมือนว่าตัวเองเป็น OS   จากรูป จะแสดงถึงลักษณะของ LXC มาถึง Docker กันบ้าง docker เป็น lightweight container ซึ่งแน่นอนว่าต้องมี Size ที่น้อยกว่า LXC แน่นอน เพราะ docker ทำงานในระดับ Process เช่นถ้าต้องการโปรแกรม 1 ตัวนำไปใส่ใน Container ก็จะทำการเก็บคำสั่งทุกคำสั่งที่ได้พิมพ์ไว้ เพราะฉะนั้นถ้า เราพิมพ์คำสั่งอะไรที่ไม่เกี่ยวกับการทำงานใน Container นั้นๆ จะทำให้ …

The basic system monitoring

The basic system monitoring

พื้นฐานการตรวจสอบระบบสิ่งที่ง่านที่สุดคือ ทำให้ระบบใช้งานได้จะแบ่งออกเป็น 2 อย่าง คือ ความพร้อมใช้งาน (Availability) ความน่าเชื่อถือ (Reliability) ซึ่ง 2 อย่างนี้แตกต่างกันชัดเจน สามารถอ่านได้ที่นี่ http://arnon.hongklay.com/node/server-hardware-and-availability/ การเริ่ม monitoring เราควรดูว่าปัญหานั้นมาจากอะไรก่อนเป็นอันดับแรก เช่น ERROR 404 เป็น http status ที่มีข้อความสั้นๆว่า “หาไม่เจอ” คำถามคือ แล้วอะไรละที่หาไม่เจอ? ERROR 500 เป็น http status ที่มีข้อความสั้นๆว่า “ภายในเซิฟเวอร์ผิดผลาด” แล้วอะไรละที่ผิดผลาด? จะเห็นได้ว่าสิ่งเหล่านี้จะบอกว่า error เหล่านั้นเป็น error ประเภทอะไร เพื่อให้นักพัฒนาหรือผู้ดูแลระบบทราบว่าจะต้องไปแก้ไขอย่างไร เพราะการเกิด error แต่ละแบบเกิดได้หลายสาเหตุ และการแก้ไขต่างกันออกไป ซึ่งเป็นหน้าที่ที่นักพัฒนาและผู้ดูแลระบบควรจะทราบ มาเริ่มกับสิ่งที่ผมจะแนะนำ TOP display and update sorted information about process คือ โปรแกรมที่ใช้ในการแสดงข้อมูลเกี่ยวกับ process …

Ruby on Rails – Basic

Ruby on Rails – Basic

Ruby on Rails คืออะไร Rails คือ web development framework ที่เขียนด้วยภาษา Ruby แลพเป็นที่นิยมอย่างรวดเร็วโดยเว็บไซต์ดังๆหลายเว็บไซต์ อย่าง Twitter, Github, Kickstarter ใช้ framework ตัวนี้ในการพัฒนาว็บไซต์ และด้วยลักษณะโครงสร้างทางภาษา Ruby ทำให้เขียนโปรแกรมน้อยแต่ได้งานที่เยอะมาก และมีลักษณะโครงสร้างต่างๆ ที่สามารถเข้าใจง่าย เป็นแบบ Object-Oriented Scripting Language Ruby on Rails มีพื้นฐานบนหลักการของ MVC ด้วยหลักการนี้ทำให้การเขียนโปรแกรมจะมีองค์ประกอบด้วยกัน 3 ส่วนคือ Models Views Controllers (โดยรายละเอียดต่างๆ จะนำไปอธิบายในส่วนต่อไป) เบื้องหลังความง่ายบนหลังการของ M-V-C ของ Ruby on Rails คือ Module หลัก 3 ส่วน ได้แก่ Active Record …

Git

Git

โครงสร้างภาพรวมการทำงาน Git คืออะไร Git คือ Version Control System ตัวหนื่งที่นิยมมากในสมัยนี้ Version Control คือ ระบบที่จัดเก็บการเปลี่ยนแปลงที่เกิดขึ้นกับไฟล์หนึ่งหรือหลายไฟล์เพื่อที่สามารถเรียกเวอร์ชั่นใดเวอร์ชั่นหนึ่งกลับมาดูเมื่อไรก็ได้ การใช้ Version Control System (VCS) เป็นสิ่งที่ชาญฉลาดมาก เพราะช่วยให้เราสามารถย้อนไฟล์บางไฟล์หรือแม้กระทั่งทั้งโปรเจคกลับไปเป็นเวอร์ชั่นเก่าได้ นอกจากนั้นระบบ VCS ยังจะช่วยให้เราเปรียบเทียบการแก้ไขที่เกิดขึ้นในอดีต ดูว่าใครเป็นคนแก้ไขคนสุดท้ายที่อาจทำให้เกิดปัญหา แก้ไขเมื่อไร ฯลฯ และยังช่วยให้เราสามารถกู้คืนไฟล์ที่เราลบหรือทำเสียโดยไม่ตั้งใจได้อย่างง่ายดาย โดยสิ่งที่เราเอาไปฝากไว้บน Git เราจะเรียกว่า Repository และวิธีการทำงานจะมี Git Server รันอยู่บน Server เราสามารถเข้าถึง Git ได้ผ่าน URL ที่สร้างขึ้นมาตอนเราสร้าง Repository บน Server เช่น Git ไม่ใช่ตัวแรกที่ทำแบบนี้ได้ จะมียุคหนึ่งที่ SVN (Subversion) รุ่งเรือง ถือว่าเป็นจุดเริ่มต้นของ Version Control แบบกว้างขวางของโลก แต่ …