รู้จักกับ CommonJS


อย่างที่เราทราบกันนะครับว่า JavaScript นั้นสามารถทำงานได้อย่างรวดเร็ว แต่ด้วยข้อจำกัด ทำให้ JavaScript API นั่นสามารพัฒนาอยู่บน Web Browser เท่านั้นและด้วยตัว มาตรฐานของมัน ไม่เหมาะกับการใช้พัฒนาในระยะยาวอีกด้วย ซึ่ง Common JS เป็น API ที่เข้ามาเพื่อรองรับกับปัญหาดังกล่าวนี้ โดยตัว API ของ Common JS นั้นได้ทำการร รวบรวม Library ของ Python, Ruby และ Java มาไว้ด้วยกัน ทำให้สามารถเข้าถึง Application ที่ถูกพัฒนา Complier ด้วย Javascript API ที่แตกต่างกันได้อีกด้วย นั่นหมายความว่า เราสามารถนำ Java script มาใช้พัฒนา Application ต่าง ๆ ได้เช่น
  • Server-side JavaScript applications
  • Command line tools
  • Desktop GUI-based applications
  • Hybrid applications (Titanium, Adobe AIR)
หรือหมายความว่าเราสามารถเขียน Javascript เพื่อไปรันที่อื่น ๆ โดยที่เราไม่จำเป็นต้องใช้ Web Browser เพื่อ รัน Script นั่นเอง



เอาหล่ะครับ ทำไมเราถึงต้องรู้จักกับ Common JS เนื่องจาก API นี้ จะช่วยให้เราเขียนโปรแกรม ในรูปแบบของ OOP และการจัดการ Code ที่มีประสิทธิภาพมากยิ่งขึ้นด้วย ใน Titanium Studio เอง นั้นมีการ นำเอา API นี้ฝังอยู่ใน Framework มาเป็นที่เรียบร้อยแล้ว เราไปดูกันครับ ว่าเราจะใช้งาน CommonJS ใน Titanium Studio นี้อย่างไร

ก่อนอื่นเรามาทำความเข้าใจกับคำจำกัดความของ Common JS กันก่อนครับ
  • Module - ใน Titnaium นั้นจะหมายถึงไฟล์​ที่มี นามสกุลเป็น .js
  • Resources - Folder Resource ใน Titanium Studio นั่นเองครับ
  • exports – เป็นตัวแปรหรือ Function ที่อยู่ใน module เอาไว้เพื่อสร้างเป็นลักษณะของ Public
  • module.exports -  เป็นคำสั่งเพื่อประกาศให้ทุก Object ที่อยู่ใน Module นั่น อยู่ในรูปแบบของ Public
ในการใช้งาน Common JS ใน Titanium นั้น เราต้องใช้ function require เพื่อทำการกำหนด module ที่เราต้องการใช้

var module = require('MyModule');

โดย Parameter ที่ส่งให้กับ function require นั้นจะบ่งบอกให้ที่อยู่ของ module ที่เราต้องการเรียกใช้หาร function โดย function require นี้จะ return ค่ากลับมาเป็น javascript object พร้อมด้วย Property , functions และ สิ่งต่าง ๆ ที่อยู่ใน module ที่ประกาศไว้ เป็น Public  ออกมาด้วย ยกตัวอย่างเช่น ใน  module  ที่ชื่อว่า MyModule นี้มี function ที่ชื่อว่า  sayHello โดย function นี้จะทำการ return คำว่า 'Hello ' + paremeter ที่ส่งเข้ามาใน function ก็ สามารถเขียนได้แบบนี้
var module = require('MyModule'); module.sayHello('Titanium'); //ตรงนี้สิ่งที่ได้กลับมาก็คือ คำว่า 'Hello Titanium'
ในกรณีที่มีการเรียกใช้ module อื่น ๆ ที่ทำการ คอมไพล์​เป็นที่เรียบร้อยแล้วนั้นก็สามารถทำได้ โดยการแก้ไข file tiapp.xml โดยเพิื่ม module เข้าไป แล้วทำการ require module นั้น ๆ
<modules>    <module version="1.0">ti.paypal</module> </modules>
จากนั้นใน Code ที่ต้องการเรียกใช้ก็ใช้เพียงแค่

var paypal = require('ti.paypal');

โดย Titanium ก็จะทำการ โหลด Module ti.paypal แต่จะไม่ไปหาไฟล์ชื่อ ti.paypal ใน folder resource แต่อย่างใด แต่ถ้าในกรณีที่ ไปหา module ที่ require แต่ไม่ได้ทำการเพิ่มลงไปใน tiapp.xml ตัว Titanium จะพยายามหาใน Folder Resource ซึ่งนั่นจะทำให้ไม่สามารถรันได้นั่นเองครับ ส่วนวิธีการอ้างอิง javascript module path นั้น อ้างอิงจากไฟล์ที่ผมมี คือ

[Project Folder]/Resource/lib/MyModule.js

ก็สามารถที่จะเรียกใช้ได้แบบนี้ครับ
var mymodule = require('lib/MyModule');

จะเห็นได้ว่า Common JS นี้จะช่วยให้เราพัฒนาโปรแกรมได้อย่างมีระเบียบและสามารถแก้ไขได้โดยง่าย ในบทความหน้าเราจะมาเริ่มเขียน Module เพื่อใช้ใน Application ต่อ ๆ ไปครับ 

0 ความคิดเห็น:

แสดงความคิดเห็น