Arthit Hongchintakul

Decompose Conditional

Decompose Conditional   Before Code [code language=”ruby”] if condition charge = quantity * _winterRate + _winterServiceCharge else charge = quantity * _summerRate; end [/code] After Code [code language=”ruby”] if condition charge = winterCharge(quantity) else charge = summerCharge(quantity) end def winterCharge(quantity) quantity * _winterRate + _winterServiceCharge end def summerCharge(quantity) quantity * _summerRate end [/code] Decompose Conditional

Decompose Conditional Read More »

MySQL vs Mongo

Mongodb(no sql) เป็นดาต้าเบสที่ข้อมูลไม่มีความสัมพันธ์กัน มีการเข้าถึงที่รวดเร็ว รวมทั้งสามารถขยายระบบได้ในอนาคต และ nosql นั้นสามารถเก็บข้อมูลได้หลายแบบ เช่น array hash (key/value) เป็นต้น MySql(sql)  เป็นภาษาที่ใช้ในการจัดการข้อมูลอย่างมีโครงสร้าง ซึ่งปัจจุบันมีโปรแกรมฐานข้อมูลมากมายถูกพัฒนาขึ้นให้รองรับกับ Sql เพื่อให้การจัดการข้อมูลนั้นทำได้ง่ายขึ้น และโปรแกรมที่ได้รับความนิยมก็คือโปรแกรม MySQL ซึ่งเป็น Open Source ที่ใช้งานได้ทั้งใน Linux และ Windows ตารางเปรียบเทียบคำสั่งระหว่าง MySQL  กับ Mongo SQL Statement Mongo Query Language Statement INSERT INTO USERS VALUES(1,1) db.users.insert({a:1,b:1}) SELECT a,b FROM users db.users.find({}, {a:1,b:1}) SELECT * FROM users db.users.find() SELECT * FROM

MySQL vs Mongo Read More »

เขียนโปรแกรมด้วย Rails ภายใน 5 นาที

เขียนโปรแกรมด้วย Rails ภายใน 5 นาที หลังจากที่ติดตั้ง Rvm แล้ว เรามาลองเขียนโปรแกรมเว็บแอพพลิเคชั่นด้วย Rails กันดีกว่าครับ ตามขั้นตอนต่อไปนี้ 1. สร้างโปรเจ็คใหม่ด้วยคำสั่งrails new ตามด้วยชื่อโปรเจ็ค โปรแกรมจะทำการสร้างไฟล์ต่างๆที่ต้องใช้ในโปรเจ็ค 2. เข้าไปในโปรเจ็ค cd/ชื่อโฟเดอร์โปรเจ็คที่สร้างไว้และพิมพ์ echo ‘gem “therubyracer”‘ >> Gemfile 3.สั่ง bundle install โปรแกรมจะทำการลง Gemfile หรือ library ต่างๆ ที่ต้องการใช้ 5.พิมพ์ rails generate scaffold post title:string body:text published:boolean เพื่อเป็นการสร้างตัวแปรเพื่อเก็บข้อมูล 6.พิมพ์ rake db:migrate เป็นการสร้าง ฐานข้อมูลขึ้นมา 7.รัน server ด้วยคำสั่ง rails s เท่านี้ก็จะได้เว็บแอพพลิเคชั่นพื้นฐาน ที่สามารถ

เขียนโปรแกรมด้วย Rails ภายใน 5 นาที Read More »

Decorator pattern Ruby

ในการเขียนโปรเเกรมเชิงวัตถุ decorator pattern เป็น design pattern ที่ช่วยให้พฤติกรรมที่จะเพิ่มในแต่ละ วัตถุ ทั้งแบบคงที่หรือแบบไดนามิกโดยไม่มีผลต่อการทำงานของวัตถุอื่นๆ จาก class เดียวกัน Stucture Component  กำหนดการทำงานสำหรับวัตถุที่สามารถเพิ่มให้หน้าที่การทำงานได้แบบไดนามิก ConcreteComponent  สามารถเพิ่มการทำงานสำหรับวัตถุ  ที่สืบทอดมาจาก Component Decorator เป็น Class ที่สืบทอดมาจาก Component และภายในยังมี Object ที่สืบทอดมาจาก Component ConcreateDecorator เพิ่มการทำงานไปยัง Component  ที่สืบทอดมาจาก Decorator อีกทีหนึ่ง โค้ดตัวอย่าง ภาษา Ruby [code] class Chicken # คลาส Chicken def initialize # constructer @cost = 10 end def cost @cost end end

Decorator pattern Ruby Read More »

Ruby caching

เขียนโดย วุฒิไกร ลิ่มสกุล :: 04 สิงหาคม 2558         ruby caching คือการจัดเก็บ output ไว้เป็น file โดยจะทำการบันทึก ในรูปแบบของ html โดยค่าตั้งต้นจะเก็บไว้ที่ public/ ซึ่งเราสามารถที่จะปรับเปลี่ยนตำแหน่งได้ เมื่อมีการร้องขอข้อมูล ของ file ที่มีอยู่ในแคชที่จัดเก็บไว้มันก็จะวิ่งเข้ามาที่ ไฟล์ที่จัดเก็บเป็นแคชไว้แทน ที่จะวิ่งไปที่เราเรียกหาไฟล์เช่น ฐานข้อมูล ruby caching จะช่วยลดภาระการทำงานของ server ลงได้มาก เช่น แทนที่จะต้องร้องขอข้อมูลจาก ฐานข้อมูล ก็เปลี่ยนไปเป็นการเรียกข้อมูลจาก cache file แทน ช่วยในการ แสดงผลที่รวดเร็ว เป็นต้น การใช้งาน ruby caching ก็มีหลากหลายรูปแบบที่ ruby มีให้ใช้ เช่น ActiveSupport::Cache::Store ActiveSupport::Cache::MemoryStore ActiveSupport::Cache::FileStore

Ruby caching Read More »

background job

Background Jobs ด้วย Active Job ของ Rails

โดย แสงเดือน จันทร์ใหม่ – 3 สิงหาคม 2558 Background Jobs คืออะไร Background Jobs คือการทำงานของ process ใดๆ ที่เราต้องการ ให้ดำเนินการอยู่เบื้องหลัง หรือสามารถทำงานไปพร้อมๆ กับการทำงานของระบบที่ผู้ใช้สัมผัส หรือสามารถอธิบายอีกนัยหนึ่งคือ ในขณะที่ผู้ใช้มองเห็นการทำงานต่างๆ ผ่านหน้าจออยู่นั้น เบื้องหลังจะมีบาง process กำลังดำเนินการอยู่ โดยไม่รบกวนการทำงานของผู้ใช้ ดังนั้นข้อดีของ Background Jobs คือ สามารถจัดการการทำงานบาง process ที่อาจล่าช้า ให้ทำงานอยู่เบื้องหลัง เพื่อไม่ให้การแสดงผลต่อ user เกิดการล่าช้า หรือ user friendly นั่นเอง มีการทำงานเป็น parallel ทำให้สามารถทำงานที่ไม่ขึ้นต่อกันพร้อมๆ กันได้ ซึ่งส่งผลให้ระบบมีประสิทธิภาพมากยิ่งขึ้น Active Job คืออะไร Active Job เป็น framework หนึ่งของ rails

Background Jobs ด้วย Active Job ของ Rails Read More »

Sublime keyboard shortcuts

เขียนโดย นายวุฒิไกร ลิ่มสกุล – 20 กรกฎาคม 2558 สำหรับชาวโปรแกรมเมอร์ หนึ่งอย่างที่จะต้องเลือกใช้งานคือ เครื่องมือที่ใช้ในการเขียนโปรแกรม ที่ดีๆสักตัวหนึ่ง ให้ง่ายต่อการเขียนโปรแกรม ความถูกต้องสูง และรวดเร็ว สำหรับเครื่องมือที่ผมเลือกใช้คือ Sublime text 3 ซึ่งเป็นเครื่องมือที่ใช้งานง่ายและไฟล์มีขนาดเล็กเมื่อเทียบกับ Eclipse หรือ Netbean และไม่ต้องลงโปรแกรมเสริมอื่นๆอีกด้วยสามารถติดตั้ง Package เพิ่มเติมได้ภายในโปรแกรมได้เลยและสามารถที่จะ Set syntax ได้หลายภาษาอีกด้วย วันนี้จะเสนอ คุณสมบัติเด่น ของ Sublime ที่จะทำให้โปรแกรมเหม่อ เอ้ย โปรแกรมเมอร์ หลายๆคนต้องตกหลุมรักมันก็เป็นได้ มันคือ Sublime keyboard shortcuts นั่นเอง ซึ่งทำให้คุณเขียนโปรแกรมได้รวดเร็วขึ้นมากๆๆๆๆๆๆๆ และแทบไม่ต้องจับ หรือ ไม่จับ Mouse เลย โดย Sublime ก้จะมีค่า key ที่เป็น default ให้อยู่แล้ว เยอะมากๆ และสามารถที่จะปรับแต่งเองได้อีกด้วย

Sublime keyboard shortcuts Read More »

Google Map API คืออะไร ?

        Google Maps API เป็นชุด API ของ Google สำหรับพัฒนา web application และ mobile application (Android, iOS)ไว้สำหรับเรียกใช้แผนที่และชุด service ต่าง ๆ ของ Google เพื่อพัฒนา Application ได้เหมือนกับที่ Google โดยแผนที่ยัง features ต่าง ๆ มากมายให้เรียกใช้ – การปรับแต่งแผนที่ (Styled Map) – ชุดควบคุมแผนที่ (Map Control) – ชุดเครื่องมือวาดภาพบนแผนที่ (Drawing) – การนำทางจากจุดหนึ่งไปยังอีกจุดหนึ่ง (Directions Service) – การคำนวณความสูงของจุดพิกัด (Elevation Service) – การแปลงที่อยู่เป็นพิกัด Lattitude

Google Map API คืออะไร ? Read More »

Duck Typing คืออะไร

Posted on July 17, 2015 By Karun Siritheerathamrong …Duck Typing คืออะไร?… Duck Typing เป็นลักษณะหนึ่งของการเขียนโปรแกรม ที่ไม่ได้พึ่งการทำงานแบบ Strong Typing มักปรากฏในภาษาโปรแกรมสมัยใหม่ที่เป็น Dynamic Language สำหรับ Strong Typing  ความเหมาะสมของออบเจ็กต์หรือตัวแปรในการใช้งาน จะถูกพิจารณาจากประเภทของออบเจ็กต์นั้น แต่สำหรับ Duck Typing แล้ว ความเหมาะสมของออบเจ็กต์หรือตัวแปรจะถูกพิจารณาจาก สิ่งที่ออบเจ็กต์นั้น “ทำได้” (method) และข้อมูลภายในที่ออบเจ็กต์นั้น “ถืออยู่” (attributes) คำว่า Duck Typing นี้มีที่มาจากคำว่า Duck Test ซึ่งเป็นการให้เหตุผลแบบ “อุปมาน” ที่อาจมีที่มาจากงานเขียนของ James Whitcomb Riley ที่ว่า “เมื่อฉันเห็นนกที่เดินแบบเป็ด ว่ายน้ำแบบเป็ด และร้องแบบเป็ด ฉันเรียกนกตัวนั้นว่า เป็ด” ตัวอย่างของโค้ดที่เป็นแบบ

Duck Typing คืออะไร Read More »