Codeigniter , jQuery , Ext-Js และ Adobe AIR
หัวข้อวันนี้ตั้งชื่อหัวข้อได้ไม่ตรงนักแต่ผมอยากจะมาพูดถึงเจ้า 4 ตัวนี้ให้ทุกท่านฟังสำหรับคนที่กำลังจะพัฒนา App ขนาดเล็กหรือกลาง แล้วทำไมเจ้า 4 ตัวนี้มันถึงดังมากๆโดยเฉพาะ jQuery ซึ่งตอนนี้เป็นที่กล่าวถึงของ Javascript Framework กันมากเลยทีเดียว ผมจะมาพูดถึงทีละตัวนะครับ พร้อมความสัมพันธุ์
- Codeigniter จะว่าผมโม้ก็ไม่ว่านะครับ เป็นตัวที่ผมว่าอนาคตยังอีกไกล แล้วก็ไกลกว่า KohanaPHP อีกด้วยความที่เรียบง่าย Document อ่านง่าย ต่อเติมได้ง่ายทำให้เจ้า Codeigniter นี้สามารถแปลงไปได้ในทุกระบบ ถึงแม้จะมี Function งานไม่ครบเหมือนพวก Symphony หรือ KonahaPHP แต่เจ้าตัวนี้ก็มาทดแทนด้วยความเร็ว , เข้าใจง่าย และ ต่อเติมง่าย แทนโดยเจ้า Codeigniter มีการวางโครงสร้างมาจาก Ruby on Rails (แต่เขียนด้วย PHP ซึ่งมันสุดยอดมาก)
- jQuery ตัวนี้ใครติดตามผมมานานจะรู้ว่าผมเชียร์ตัวนี้ แทบใจขาดดิ้นๆๆ เลยทีเดียวด้วยความสามารถที่จิ๋วแต่แจ๋ว จัดการ Data ได้อย่างยอดเยี่ยมแถมเปลี่ยนการ Coding ภาษา Javascript ให้ง่ายมากๆ แล้วตอนนี้มันดังจนไปเทียบเท่ากับพวก Prototype , Dojo , YUI ได้แล้ว แล้วมีทีท่าว่าจะดังต่อไป ด้วยหลักการเดิม เร็ว , เข้าใจง่าย และต่อเติมง่าย
- Ext-Js เป็นน้องใหม่ไฟแรงแถมตอนนี้ได้เปลี่ยน License เป็น GPL หรือนำไปใช้ได้ฟรีแต่ต้องเปิดเผย Source Code กระแสเลยยิ่งแรงขึ้นไปอีก (แต่ถ้าจะทำทางการค้าต้องซื้อนะครับ) โดยเจ้า Ext-JS วิธีการใช้จะคล้ายๆกับเป็น Component (แต่ก็ยังไม่สมบูรณ์) โดยเราสามารถได้ Component มาต่อเติม website ด้วยการ new Object เสร็จแล้วใส่ค่าอีกนิดหน่อยเราก็จะได้ Component ซึ่งมี User Interface ที่สวยงามพร้อมมาทันที แต่จนแล้วจนรอด มันก็เหมาะสำหรับคนที่ใช้ Javascript พื้นฐานมาคล่องพอตัวแล้วเหมือนกัน
- Adobe AIR เมื่อเจ้า Runtime ตัวนี้ออกมาพร้อม SDK ทำให้การสร้าง Desktop App เปลี่ยนไปทันที คนทำแต่ Web App ตอนนี้จะมีโอกาสได้โชว์ฝีมือในการทำ Desktop App กันแล้วด้วยภาษา HTML , Javascript , CSS 3 ภาษานี้
แล้วมันเกี่ยวกันยังไงหรอ ? ตอนนี้ผมใช้เจ้า Codeigniter กับ jQuery อยู่ซึ่งขอบอกว่า Work มากในระดับของฟรี เสร็จแล้วมีโครงการที่จะศึกษาการทำงานของเจ้า Adobe AIR ด้วยเหมือนกัน เลยศึกษามาพอสมควรโดยมันสามารถถูกเขียนได้ด้วย 3 แบบคือ AJAX , Flash , Flex แต่ผมขอเลือกทาง AJAX แทนที่จะเป็น Flash หรือ Flex เพราะผมมีพื้นด้านนี้มาเยอะแล้ว ไม่อยากเริ่มต้นใหม่ (ถึงแม้จะลงเรียน Adobe Flash ไปแล้วก็ตาม) แล้วคราวนี้ไอ้เจ้า Ext-Js นี้และที่จะมาทำให้การพัฒนา ออกมาสวยงามและมีประสิทธิภาพ โดยเสียเวลาเขียน code น้อยลง
แต่แล้วไอ้เรื่องการจัดการ Data ด้วย Javascript ปกติรวมถึงการท่อง DOM มักก็เป็นปัญหาพอควร
ดังนั้นช่วงเวลานี้กระแส jQuery + ExtJs กำลังมาแรงในการทำ Adobe AIR แต่ยังไม่มี App ที่มาจากเจ้า 2 ตัวนี้ + กันแบบดีๆเลย (เพราะกระแสมันพึ่งเริ่ม) แล้วดูจาก Document รวมถึงผมได้ลองเขียนเจ้า Ext-Js แล้วมัน ไม่ได้เขียนเข้าใจยากมากเมื่อมารวมกับ jQuery โดยผมใช้ jQuery ในการจัดการ Data , AJAX , Event Handler , Effect และท่อง DOM ส่วนที่เหลือก็ใช้ Ext-JS ในการสร้าง Component สวยๆมาใช้แบบง่ายๆ จะเห็นว่า jQuery จะเป็นฐานในการจัดการข้อมูลพื้นฐานส่วน Ext-JS มาเสริมและสุดท้าย

Codeigniter เอะแล้วมาเกี่ยวอะไรกับการใช้ Adobe AIR ละ Web Service ไงครับเจ้า Codeigniter ไม่น่าเชื่อว่าจะทำ Web Service ได้ง่ายโคตรๆ (ขอไม่บอกรายละเอียดในตอนนี้) ด้วยการที่เราสามารถเข้าถึง Method ของ Controller ได้ผ่าน URL รวมกับ function พื้นๆของ PHP อย่าง Array แล้วก็ Json_encode ทำให้มันกลายเป็น Web Service แบบ RESTful โดยง่ายเลยทีเดียว แล้วเราก็ใช้ jQuery เรียก Web Service ของ Codeigniter แล้วรับมันมาแบบ JSON แล้วนำมาใช้ประโยชน์ต่อได้ !
ขอสรุปของการทำงานแบบง่ายๆในอีกมุมหนึ่งที่ผมมา Trend นี้มาแรงในกลุ่มรายย่อยแบบเราๆทำกัน
- (X)HTML + CSS ทำงานในส่วนของโครงสร้าง User Interface
- Javascript ทำงานในการดึง Data จาก Web Service และนำมาใส่ใน User Interface รวมถึงทำ Effect ต่างๆด้วย
- PHP-OOP ใช้ในการนำ Data จาก Database มาประมวลผลต่างๆแล้วนำไปให้ Javascript เรียกใช้ Web Service
- Database ใช้สำหรับการจัดเก็บ Data แบบง่ายๆเพื่อให้ PHP นำไปประมวลผลต่อ
จุดเด่นของการใช้ Driven แบบนี้
- ปรับปรุง , บำรุงรักษาและจัดการง่าย เพราะมีการแยกส่วนอย่างชัดเจน
- ไม่จำเป็นต้องรู้ภาษา SQL ให้ลึกซึ้งเราใช้ PHP-OOP ในการจัดการ Data แทน
- มี Framework รองรับแล้วเป็น Open-Source ทุกอย่างทั้ง Codeigniter , jQuery , ExtJS รวมถึง Database ที่เป็น Open-Source อย่าง MySQL , PostgreSQL
- ถอดเข้าถอดออกได้อย่างง่ายดาย
- เขียน , ออกแบบ และเข้าใจได้ง่าย
จุดด้อยของการใช้ Driven แบบนี้
- Performance ขึ้นอยู่กับเครื่องของ User มากกว่าของ Server ยกเว้นใช้ Jaxer Server (AJAX at Server)
- ยังไม่เหมาะสำหรับงานระดับ Enterprise
- ใช้หลายภาษาทำให้ Curve ในการเรียนรู้สูง (แล้ว J2EE ละ??)
- ใช้การเชื่อมต่อจากหลายจุด ไม่เป็นหนึ่งเดียวอาจเกิดปัญหาเรื่องการเชื่อมต่อได้
วันนี้ผมก็ลาไปแค่นี้ก่อนละครับเขียนเหนื่อยเลยมีอะไรแนะนำ หรือมาเสนอความคิดเห็นก็ลง Comment กันไว้ได้เลยครับ ![]()
| Tweet |
เนื้อหาคล้ายกันที่น่าสนใจ

“ยังไม่เหมาะสำหรับงานระดับ Enterprise”
ทำไมถึงคิดว่ายังไม่เหมาะกับงานระดับนั้นหรอครับ?
เพราะผมคิดว่า Driven แบบนี้ในระดับ Enterprise ยังไม่เป็นที่ยอมรับส่วนหนึ่ง.. แล้วใน Blog Entry นี้ผมพูดถึง PHP Javascript (X)HTML CSS แต่ในระดับ Enterprise Backend ส่วนใหญ่จะเป็น Java , Python , C ถ้ามองเรื่องของภาษาแล้วที่ผมยกมาแล้วนั้นยังไม่เหมาะจริงๆ แต่ถ้ามองในระดับ approach ละก็มันก็พอจะไป Implement ระดับงาน Enterprise ได้ทีเดียว
จริงๆผมน่าจะเขียน “ยังไม่เป็นที่ยอมรับสำหรับงานระดับ Enterprise” มากกว่าเนอะ
ผมเข้าใจผิดหรอเนี้ย ต้องขอโทษมากๆเลยครับ ผมยัง งงพวก License อยู่เลยขอบคุณ คุณ Bcoe ที่มาให้ความกระจ่าง เดียวผมจะรีบแก้ไข้ Content เลยครับ และก็ขอบคุณสำหรับความรู้ที่นำมาฝากนะครับ ^-^
adobe flash 4 พอจะ export air มันจะให้ใส่ลายเซ็นดิจิตอล แก้ไงอ่ะครับ แค่จะลองหัดเท่านั้นอ่ะ คงไม่ต้องไปซื้อลายเซ็นนะ
ผมไม่ได้จับนานแล้วเหมือนกันคุ้นๆว่าถ้าไม่มี Adobe Flex เลยก็ต้องไปทำผ่าน DOS หรือไม่ก็ Eclipse นะครับ แต่ผมลืมไปละนานมาก
รับ เขียน Ext JS สามารถสอบถามรายละเอียด ที่ 0878242032 อาร์ท
ไม่ค่อยเข้าใจเกี่ยวกับ License ของ Extjs ครับ คือนำไปใช้ได้ฟรี ถ้าทำการค้าต้องเสียเงิน หมายถึงว่าเขียน web เกี่ยวกับการค้าขายหรือเปล่าครับ แล้วถ้าเขียนเพื่อการจัดการบริหารข้อมูล ต้องเสียเงินหรือเปล่า
ถ้าพูดจริงๆแล้ว คือเอา ExtJS ไปทำอะไรก็ตามที่ได้เงินหรือสิ่งตอบแทน นั้นคือ Commercial ครับ (ยกเว้นขอ Donate เน้อ) ก็คือไม่ว่าจะเอาไปทำงาน Freelance , ทำระบบ subscription , ระบบค้าขายถ้าคุณมีการเก็บเงินหรือหัก % ก็ถือว่าเป็น commercial ครับ
ส่วนถ้าเป็นเพื่อการจัดการบริหารข้อมูลก็ต้องดูว่า ระบบนั้นทำเพื่อการค้ารึเปล่าอยู่ดีครับ (คือได้สิ่งตอบแทนรึเปล่า)