ทุกวันนี้เราเขียน JS กันอย่างไร ?
จากประสบการณ์การทำงานของผมคือเวลาเราเขียน JavaScript จำนวนมากๆจะมีปัญหาหนึ่งในการเขียน JavaScript ก็คือการจัดการเรื่องของการขึ้นตรงต่อกัน (dependencies) ของ javascript ครับ
สมมติเราจะใช้ plugin ของ jQuery ก็จะได้ว่า Dependency ของ plugin นี้ก็คือ jQuery นั่นเองเพราะถ้าไม่มีมัน plugin ตัวนี้ก็จะไม่สามารถทำงานได้
ดังนั้น เวลาเราเขียนโค้ด เราก็จะต้องโหลด jQuery เข้ามาก่อน jQuery plugin เสมอ แบบนี้ครับ <script type="text/javascript" src="js/jquery.js"></script>
<script type="text/javascript" src="js/jquery.plugin.js"></script>
จะสังเกตว่าเราจะต้องมาพะวงพะวังกับลำดับการโหลด File JavaScript ครับ
บางคนอาจมองว่าไม่เห็นเปนไรเลย ก็แค่โหลด Dependency มาก่อนไง
แต่ลองนึกดูว่า หาก scale ของงานเรานั้นใหญ่เอามากๆ Dependency
มันไม่ได้มีแค่นี้หรอกนะครับ และยิ่ง Script บางตัว อาจใช้ Dependency ร่วมกันด้วย
เช่น file A ขึ้นตรงต่อ file B ถ้า file A ไม่ถูก load มา file B ก็ จะ error
เพราะไม่สามารถเรียกใช้งาน module ที่อยู่ใน file A ได้
เราก็จะยิ่งปวดเฮดเข้าไปใหญ่
ตอนนี้มี Tool หลายๆตัวที่โปรแกรมเมอร์หลายๆท่านหรือระดับโลกเขาเขียนขึ้นมา เพื่อช่วยในการจัดการ
ปัญหานี้ (facebook ก็ใช้ในการจัดการ javascript เหมือนกัน) Tool ตัวนี้คือ AMD
เป็น Javascript Design Pattern สมัยใหม่ (AMD : Asynchronous Module Definition)
ที่เอาไว้ประกาศ (Define) Module แบบ Asynchronous แล้วก็เรียกใช้งาน Module ที่ประกาศไว้แบบ
Asynchronous เช่นกัน คือ มันจะทำการ Load Module ต่างๆ ที่เราได้ประกาศไว้มาให้เอง ครับ
จึงเกิดรูปแบบการเขียน JavaScript Module แบบใหม่ที่เรียกว่า AMD ขึ้นมานั่นเองครับ โดยการเขียนรูปแบบนี้จะทำให้ทั้งตัวโมดูลเองและ Dependency สามารถโหลดแบบ asynchronous ได้
ถ้าใครสนใจ ก็ลองหาศึกษาดูครับ ซึ่งตอนนี้ตัวที่ผมกำลังมองๆ อยู่ก็จะเป็น require js ตาม link นี้
http://requirejs.org/
ไม่มีความคิดเห็น:
แสดงความคิดเห็น