electron/docs-translations/th-TH/glossary.md

151 lines
12 KiB
Markdown
Raw Normal View History

2017-01-19 19:35:50 +00:00
# อภิธานศัพท์ (Glossary)
2017-01-19 19:35:50 +00:00
เพจนี้จะบ่งบอกคำศัพท์ที่ถูกใช่บ่อยๆในการพัฒนา Electron
### ASAR
2017-01-19 19:35:50 +00:00
[ASAR (Atom Shell Archive Format)][asar] เป็น extension ของไฟล์ที่มีลักษณะความคล้ายครีง `tar` ที่รวมหลายไฟล์ลงไปในไฟล์เดียว Electron สามารถอ่านไฟล์ได้เลยโดยที่ไม่ต้อง unpack ไฟล์
2017-01-19 19:35:50 +00:00
กำลังทำ: ไฟล์ประเภท ASAR นั้น สร้างมาเพื่อเพิ่มประสิทธิถาพบนระบบปฎิบัติการ Windows
### Brightray
2017-01-19 19:35:50 +00:00
[Brightray][brightray] เป็น static library ที่ทำให้ [libchromiumcontent] ใช้ได้ง่ายขึ้นในแอพพิเคชั่น
มันถูกสร้างขึ้นมาเพื่อ Electron โดยเฉพาะ แต่ว่ามันสามารถเปิดใช้ในแอพที่ใช้ Chromium's render ซึ่งไม่ถูกสร้างจาก Electron ได้
2017-01-19 19:35:50 +00:00
Brightray เป็น dependency ของ Electron ที่ไม่ค่อยได้ใช้งานสำหรับผู้ใช้ Electron ทั่วไป
### DMG
2017-01-19 19:35:50 +00:00
DMG เป็นรูปแบบไฟล์ที่ใช้กับ Apple Disk Image
โดยส่วนมากไฟล์ DMG จะถูกใช้ในการแจกแจงตัวติดตั้งของแอพพิเคชั่น
คุณสามารถใช้ [electron-builder] ในการสร้างไฟล์ขึ้นมาได้
### IPC
2017-01-19 19:35:50 +00:00
IPC ย่อมาจาก Inter-Process Communication ซึ่ง Electron ใช้ IPC
ในการที่จะส่งข้อความ JSON ระหว่าง [โปรเซสหลัก][main] และ [ตัวเรนเดอร์][renderer]
### libchromiumcontent
2017-01-19 19:35:50 +00:00
เป็น library รวมที่มี Chromium Content โมดูลและ dependencies ต่างๆเข้าไปด้วย
(อาทิเช่น Blink, [V8], ฯลฯ)
### โปรเซสหลัก
2017-01-19 19:35:50 +00:00
โปรเซสหลักในส่วนมากจะเป็นไฟล์ `main.js` ซึ่งเป็นจุดเริ่มต้นของทุกๆแอพของ Electron
โปรเซสหลักเป็นตัวที่กำหนดการทำงานของแอพตั้งแต่ต้นจนจบ มันจะควบคุมองค์ประกอบของแอพเช่น
Menu, Menu Bar, Dock, Tray, ฯลฯ โปรเซสหลักนั้นจะรับผิดชอบการสร้างตัวเรนเดอร์ใหม่ในแอพ
2017-01-19 19:35:50 +00:00
Node API นั้นมาพร้อมกับ Electron
2017-01-19 19:35:50 +00:00
`package.json` จะสามารถใช้ระบุโปรเซสหลักของทุกๆแอพบน Electron ได้ นี้คือเหตุผลที่ `electron .` รู้ว่าไฟล์ไหนควรจะรันตอนเริ่มต้น
2017-01-19 19:35:50 +00:00
เพิ่มเติม: [process](#process), [renderer process](#renderer-process)
### MAS
2017-01-19 19:35:50 +00:00
MAS เป็นตัวย่อของ Mac App Store ในการที่จะส่งไฟล์ลง MAS นั้นโปรดดู [การแนะนำการส่ง Mac App Store](Mac App Store Submission Guide)
### native modules
2017-01-19 19:35:50 +00:00
Native โมดูล (อีกชื่อคือ [addons]) คือโมดูลที่เขียนด้วย C หรือ C++
ที่สามารถจะโหลดอยู่ใน Node.js หรือ Electron โดยการใช้ฟังค์ชั่น require()
และใช้แบบเดียวกับโมดูล Node.js ธรรมดา
โดยส่วนมากมันถูกใช้เป็นอินเตอร์เฟสระหว่าง JavaScript และ Node.js ผ่านทาง C/C++
2017-01-19 19:35:50 +00:00
Native Node โมดูลจะได้รับการสนับสนุนจาก Electron
แต่ว่ามีความเป็นไปได้ว่า Electron นั้นจะใช้ V8 คนละเวอร์ชั่นกับ Node ที่มีอยู่ในระบบ
คุณจะต้องเป็นคนเลือก Electron's header ด้วยตนเอง
2017-01-19 19:35:50 +00:00
เพิ่มเติม: [วิธีการใช้ Native Node โมดูล][Using Native Node Modules]
## NSIS
2017-01-19 19:35:50 +00:00
NSIS ย่อมาจาก Nullsoft Scriptable Install System คือตัวติดตั้งที่ขับเคลื่อนด้วยสคริปท์
สำหรับระบบปฎิบัติการ Windows มันได้รับการจดลิขสิทธ์สำหรับใช้ทุกๆคน
มันถูกใช้แทนสินค้าเชิงพาณิชย์เช่น InstallShield
[electron-builder] นั้นรองรับการสร้าง NSIS
### process
2017-01-19 19:35:50 +00:00
โปรเซสคือ instance ของโปรแกรมที่กำลังทำงานอยู่
Electron แอพนั้นใช้ [โปรเซสหลัก][main] และ [ตัวเรนเดอร์][renderer] หนึ่งตัวขึ้นไปที่รัน
หลายๆโปรเกรมพร้อมๆกัน
2017-01-19 19:35:50 +00:00
ใน Node.js และ Electron นั้น แต่ละโปรเซสที่กำลังรันอยู่จะมี `process` object
Object ตัวนี้เป็น global ที่ให้ข้อมูลและการควบคุมของตัวโปรเซสนั้นๆ
2017-01-19 19:35:50 +00:00
เพราะว่ามันเป็น global ดังนั้นจึงไม่จำเป็นที่จะเรียก `require()` เพื่อใช้งาน
เพิ่มเติม: [โปรเซสหลัก](#main-process), [ตัวเรนเดอร์](#renderer-process)
### renderer process
2017-01-19 19:35:50 +00:00
ตัวเรนเดอร์ คือ หน้าต่างบราวเซอร์ของแอพพิเคชั่นของคุณ
มันแตกต่างจากโปรเซสหลักโดยที่มันจะสามารถมีอยู่พร้อมกันหลายตัวได้
และแต่ละตัวนั้นใช้ โปรเซส ที่ต่างกันออกไป
นอกจากนั้นมันยังสามารถซ่อนได้อีกด้วย
ใน บราวเซอร์ ทั่วๆไป เว็ปเพจจะได้รับการรันด้วยสภาพแวดล้อมจำกัดและจะไม่สามารถใช้ทรัพยากร native ได้
2017-01-19 19:35:50 +00:00
แต่ว่าสำหับผู้ใช้ Electron นั้นเราสามารถให้
เว็ปเพจมีการปฏิสัมพันธ์กับระบบปฎิบัติการได้โดยผ่านทาง API ของ Node.js
2017-01-19 19:35:50 +00:00
เพิ่มเติม: [โปรเซสหลัก](#main-process), [ตัวเรนเดอร์](#renderer-process)
### Squirrel
2017-01-19 19:35:50 +00:00
Squirrel เป็น open-source framework ที่ทำให้แอพ Electron นั้น
อัพเดทได้อย่างอัตโนมัดเมื่อมีเวอร์ชั่นใหม่เข้ามา
เพิ่มเติม: [autoUpdater] API เพื่อการใช้งาน Squirrel เบื้องต้น
### userland
2017-01-19 19:35:50 +00:00
userland แต่แรกทีมาจากสังคม unix ซึ่งหมายถึงโปรแกรมที่รันข้างนอก kernel ของระบบปฎิบัติการ
ภายหลังนี้ "userland" ได้รับความสนใจจากสังคม Node และ npm เพื่อใช้ในการอธิบายความแตกต่าง
ของ feature ที่พร้อมไช้งานใน "node core" กับ แพ็คเกจที่ได้รับการแจกจ่ายถายใน npm registry
ซึ่งมาจากเหล่าคนใช้ที่กว้างขวาง
2017-01-19 19:35:50 +00:00
Electron นั้นมีความคล้ายคลึงกับ Node ตรงที่มี API ที่ไม่เยอะแต่ว่ามีความสามารถเพียงพอ
ในการพัฒนา multi-platform แอพพิเคชั่น
ด้วยปรัชญาการออกแบบนี้เองที่ทำให้ Electron นั้นเป็นเครื่องมือที่มีความยืดหยุ่นโดยที่ไม่กำหนดให้ผู้ใช้
ใช้งานได้เพียงตามที่ออกแบบไว้
Userland ได้เปิดโอกาสให้ผู้ใช้สามารถสร้างและแบ่งปันเครื่องมือนอกเหนือจากอะไรก็ตามที่มีอยู่ใน "core"
### V8
2017-01-19 19:35:50 +00:00
V8 เป็น JavaScripe engine ของ Google ที่เป็น open source
มันถูกเขียนขึ้นด้วย C++ และถูกใช้ใน Google Chrome
Google Chrome เป็น open source บราวส์เซอร์ของ Google
V8 สามารถรันแยกเองต่างหากได้ หรือจะสามารถนำไปใช้กับแอพพิเคชั่น C++ อะไรก็ได้
### webview
2017-01-19 19:35:50 +00:00
`webview` เป็นแท็กที่ใช้ในการใส่ข้อมูลสำหรับคนใช้ทั่วไป (เช่นเว็ปภายนอก) ใน Electron แอพของคุณ
มันมีความคล้ายครึงกับ `iframe` แต่ว่าต่างกันโดยที่ webview รันโดยโปรเซสคนละตัว
มันไม่มี permission เหมือนกับเว็ปเพจของคุณและการมีปฏิสัมพันธ์ระกว่าง แอพของคุณ กับ สิ่งที่ฝังอยู่จะเป็นไปโดยราบลื่นโดยที่ไม่ต้องซิ้งค์ (asynchronous)
ด้วยเหตุนี้เองทำให้ แอพของคุณปลอกภัยจากสิ่งที่ถูกฝัง
[addons]: https://nodejs.org/api/addons.html
[asar]: https://github.com/electron/asar
[autoUpdater]: api/auto-updater.md
[brightray]: https://github.com/electron/brightray
[electron-builder]: https://github.com/electron-userland/electron-builder
[libchromiumcontent]: #libchromiumcontent
[Mac App Store Submission Guide]: tutorials/mac-app-store-submission-guide.md
[main]: #main-process
[renderer]: #renderer-process
[Using Native Node Modules]: tutorial/using-native-node-modules.md
[userland]: #userland
[V8]: #v8