Meteor Vocabulary

บทแทรก 14.5

แปลไปแล้ว

ในบทนี้ คุณจะได้

  • ทบทวนความหมายของศัพท์ที่ใช้กันบ่อยใน Meteor
  • ไคลเอนต์ (Client)

    เมื่อเราพูดถึงไคลเอนต์ เราหมายถึง โค้ดที่ทำงานใน เว็บเบราว์เซอร์ ของผู้ใช้งาน ไม่ว่าจะเป็นเบราว์เซอร์แบบธรรมดา เช่น ไฟร์ฟ็อกซ์ หรือ ซาฟารี หรือ บางอย่างที่ซับซ้อน เช่น UIWebView ในแอปพลิเคชั่นของ iPhone

    คอลเลกชั่น (Collection)

    คอลเลกชั่นของ Meteor คือ ที่จัดเก็บข้อมูลซึ่งทำการซิงโครไนซ์ระหว่างไคลเอนต์กับเซิร์ฟเวอร์โดยอัตโนมัติ คอลเลกชั่นมีชื่อ (เช่น ‘posts`) และโดยทั่วไปจะอยู่ทั้งบนไคลเอนต์และเซิร์ฟเวอร์ ถึงแม้ว่ามันจะทำงานแตกต่างกัน แต่พวกมันก็มี API ร่วมกัน โดยมีพื้นฐานมาจาก API ของ Mongo

    ส่วนประมวลผล (Computation)

    ส่วนประมวลผล คือ บล็อกของโค้ดที่ทำงานทุกครั้งเมื่อแหล่งข้อมูลแบบรีแอคทีฟที่มันเชื่อมโยงอยู่มีการเปลี่ยนแปลงอย่างน้อยหนึ่งตัว ซึ่งถ้าคุณมีแหล่งข้อมูลรีแอคทีฟ (เช่น ตัวแปรเซสชั่น) และต้องการให้ตอบสนองแบบรีแอคทีฟกับมัน คุณก็ต้องสร้างส่วนประมวลผลให้มัน

    เคอร์เซอร์ (Cursor)

    เคอร์เซอร์ คือ ผลลัพธ์จากการทำงานของการสอบถามข้อมูลกับคอลเลกชั่น Mongo โดยในฝั่งไคลเอนต์ เคอร์เซอร์ไม่ได้เป็นแค่อาร์เรย์ของผลลัพธ์เท่านั้น แต่ยังเป็นอ็อบเจกต์แบบ รีแอกทีฟ ซึ่งสามารถติดตามได้ว่า มีการเพิ่ม ลบ และอัพเดท อ็อบเจกต์ที่สัมพันธ์กับคอลเลกชั่นหรือไม่

    DDP

    DDP คือ โปรโตคอลการกระจายข้อมูล (Distributed Data Protocol) ของ Meteor เป็นโปรโตคอลเพื่อใช้ซิงโครไนซ์คอลเลกชั่น และเรียกใช้เมธอด ซึ่ง DDP ถูกวางตัวให้เป็นโปรโตคอลพื้นฐาน ใช้ทำงานแทน HTTP กับแอปพลิเคชันแบบเรียลไทม์ที่มีการใช้ข้อมูลมาก

    Tracker

    Tracker คือ ระบบรีแอคทีฟของ Meteor ซึ่ง Tracker ถูกใช้งานอยู่เบื้องหลัง เพื่อทำให้ HTML มีความสอดคล้องกับโมเดลข้อมูลข้างหลังอย่างอัตโนมัติ

    เอกสาร (Document)

    Mongo คือ ฐานข้อมูลแบบเอกสาร (document-based) ทำให้อ็อบเจกต์ที่ออกมาจากคอลเลกชั่นถูกเรียกว่า “เอกสาร” ซึ่ง ก็คือ อ็อบเจกต์จาวาสคริปต์พื้นฐาน (แม้ว่ามันจะไม่สามารถมีฟังก์ชันข้างในได้ก็ตาม) ที่มีค่าคุณสมบัติพิเศษ _id ซึ่ง Meteor ใช้ติดตามคุณสมบัติต่างๆของมันทาง DDP

    ตัวช่วย (Helpers)

    เมื่อเทมเพลทต้องการสร้างอะไรบางอย่างที่ซับซ้อนกว่าค่าคุณสมบัติของเอกสาร มันจะเรียกใช้ ตัวช่วย ที่เป็นฟังก์ชันซึ่งช่วยในการสร้างข้อมูล

    การชดเชยความล่าช้า (Latency Compensation)

    คือ เทคนิคที่ยอมให้มีการจำลองการเรียกใช้เมธอดบนไคลเอนต์ เพื่อหลีกเลี่ยงการเกิดความล่าช้า ในขณะที่รอคอยการตอบสนองจากเซิร์ฟเวอร์

    Meteor Development Group (MDG)

    บริษัทที่พัฒนา Meteor โดยไม่เกี่ยวข้องกับเฟรมเวิร์คที่ใช้

    เมธอด (Method)

    เมธอดของ Meteor คือ การเรียกใช้กระบวนงานแบบระยะไกล (remote procedure call) จากไคลเอนต์ไปที่เซิร์ฟเวอร์ ด้วยการใช้ตรรกะพิเศษบางอย่าง เพื่อเก็บค่าคอลเลกชั่นที่เปลี่ยนไป และยอมให้มีการชดเชยความล่าช้า

    MiniMongo

    คอลเลกชั่นฝั่งไคลเอนต์ที่เก็บข้อมูลลงหน่วยความจำ จะมี API คล้ายๆของ Mongo ซึ่งไลบรารี่ที่รองรับการทำงานนี้ถูกเรียกว่า “MiniMongo” เพื่อแสดงถึงเวอร์ชันย่อมๆของ Mongo ที่ทำงานอยู่บนหน่วยความจำอย่างเดียว

    แพ็คเกจ (Package)

    แพ็คเกจของ Meteor จะประกอบด้วย โค้ดจาวาสคริปต์ที่ทำงานบนเซิร์ฟเวอร์ โค้ดจาวาสคริปต์ที่ทำงานบนไคลเอนต์ วิธีการดำเนินการกับทรัพยากร (เช่น SASS หรือ CSS) และทรัพยากรที่นำมาใช้งาน
    แพ็คเกจจะเหมือนกับไลบราลี่แบบ super-powered โดย Meteor จะมาพร้อมชุดแพ็คเกจหลัก (core package) หลายตัว และยังหาเพิ่มได้จากที่ Atmosphere ซึ่งมีคอลเลกชั้นของแพ็คเกจที่พัฒนาโดยชุมชนผู้ใช้

    การเผยแพร่ (Publication)

    การเผยแพร่ คือ ขื่อของชุดข้อมูลที่ถูกปรับแต่งให้กับผู้ใช้งานแต่ละคนที่บอกรับข้อมูลกับมัน คุณสามารถสร้างการเผยแพร่ไว้บนเซิร์ฟเวอร์

    เซิร์ฟเวอร์ (Server)

    เซิร์ฟเวอร์ Meteor เป็น เซิร์ฟเวอร์แบบ HTTP และ DDP ทำงานผ่าน Node.js มันประกอบด้วยไลบรารี่ทั้งหมดของ Meteor และโค้ดจาวาสคริปต์ฝั่งเซิร์ฟเวอร์ของคุณ เมื่อคุณเริ่มการทำงานของเซิร์ฟเวอร์คุณ มันจะเชื่อมต่อไปยังฐานข้อมูล Mongo (ที่มันจะสั่งให้เริ่มทำงานโดยอัตโนมัติในตอนพัฒนาแอพ)

    เซสชั่่น (Session)

    เซสชั่นใน Meteor จะอ้างถึงแหล่งข้อมูลรีแอคทีฟที่ฝั่งไคลเอนต์ ซึ่งถูกใช้โดยแอปพลิเคชั่นของคุณ เพื่อติดตามสถานะที่ผู้ใช้ทำงานอยู่

    การบอกรับ (Subscription)

    การบอกรับ คือ การติดต่อไปที่การเผยแพร่จากไคลเอนต์ การบอกรับเป็นโค้ดที่ทำงานในเบราว์เซอร์ ซึ่งคุยกับการเผยแพร่บนเซิร์ฟเวอร์ และคอยปรับปรุงข้อมูลให้ตรงกันอยู่เสมอ

    เทมเพลท (Template)

    เทมเพลท คือ วิธีการสร้าง HTML ใน จาวาสคริปต์ โดยปกติ Meteor รองรับ Spacebars ระบบเทมเพลทที่ไม่มีตรรกะ (logic-less) และมีแผนรองรับตัวอื่นๆมากขึ้นในอนาคต

    ชุดข้อมูลย่อยในเทมเพลท (Template Data Context)

    เมื่อเทมเพลทกำลังสร้างข้อมูล มันจะใช้อ็อบเจกต์จาวาสคริปต์เพื่อนำข้อมูลที่ระบุมาสร้าง โดยทั่วไปแล้ว อ็อบเจกต์พวกนี้เป็นได้ทั้ง อ็อบเจกต์จาวาสคริปต์แบบเดิมๆ (POJO) และบ่อยครั้งเป็นเอกสารจากคอลเลกชั่น ซึ่งมันอาจจะซับซ้อนมากขึ้น และมีฟังก์ชันให้ใช้งานติดมาด้วย