หนึ่งคำต่อหนึ่งสิ่ง
มีหกคำในผลิตภัณฑ์นี้ที่เคยถูกใช้กับสิ่งมากกว่าหนึ่งอย่าง และความซ้ำซ้อนแต่ละครั้งทำให้ใครสักคนเสียเวลาไปหนึ่งชั่วโมง เอกสารนี้คือทะเบียนคำศัพท์ คำที่ไม่อยู่ในรายการนี้ไม่ใช่คำศัพท์ของผลิตภัณฑ์ และคำที่อยู่ในรายการนี้มีความหมายตรงตามที่เขียนไว้ที่นี่เท่านั้น — ทั้งใน UI, ใน CLI, ในสเปก และใน commit message
Installation
หัวข้อที่มีชื่อว่า “Installation”การ deploy Dee Wan หนึ่งชุด ประกอบด้วย admin Worker, admin UI, control database และบัญชีกับ credential ที่อยู่เบื้องหลังสิ่งเหล่านี้ สร้างขึ้นครั้งเดียวโดยตัวติดตั้ง (installer)
- สิ่งที่
npm run setupสร้างขึ้น - มี control database หนึ่ง ชุด, claim link หนึ่ง ลิงก์, superadmin หนึ่ง ชุด
- ให้บริการ ไซต์ จำนวนมาก
- ไม่ใช่ “การติดตั้งไซต์” ไซต์ไม่ได้ถูกติดตั้ง แต่ถูกสร้างขึ้น
เกี่ยวข้องกันแต่แยกจากกัน: installer คือ engine และมีสองอินเทอร์เฟซ — web installer และ CLI installer ทั้งสองขับเคลื่อน engine ตัวเดียวกัน
tenant หนึ่งตัวภายใน installation (การติดตั้ง Dee Wan หนึ่งชุด) มีชื่อ, slug, hostname, เนื้อหาของตัวเอง, ภาษาของตัวเอง, บทบาท (role) และ grant ของตัวเอง
- สร้างผ่าน
POST /api/sitesไม่ใช่ผ่านตัวติดตั้งเด็ดขาด - ภายใต้ topology แบบแยกต่อไซต์ (per-site) ไซต์มี content database ของตัวเองด้วย
ภายใต้ topology แบบใช้ร่วม (shared) ไซต์ใช้ content database ชุดเดียวของ installation ร่วมกัน ว่าไซต์มีแบบใด
เป็นแถวหนึ่งใน
site_bindingไม่ใช่คุณสมบัติของคำนี้ - ไม่ใช่ “site” ของ Cloudflare หรือ zone เมื่อหมายถึงออบเจกต์ของ Cloudflare ให้ใช้คำว่า zone
การเผยแพร่
หัวข้อที่มีชื่อว่า “การเผยแพร่”การทำให้เนื้อหาชิ้นหนึ่งอ่านได้โดย public read worker เป็นการเปลี่ยนสถานะใน lifecycle ของเนื้อหา ไม่เกี่ยวข้องกับโครงสร้างพื้นฐานใด ๆ
publish/unpublishต่อรายการเนื้อหา ต่อกลุ่ม locale- เปลี่ยนสิ่งที่
/api/…บน public hostname ตอบกลับ ไม่เปลี่ยนโค้ด ไม่เปลี่ยน binding ไม่เปลี่ยน deployment - ไม่ใช่ “การเผยแพร่ไซต์” ไซต์ไม่ได้ถูกเผยแพร่ เนื้อหาของไซต์ต่างหากที่ถูกเผยแพร่
Graduation
หัวข้อที่มีชื่อว่า “Graduation”การสร้างโปรเจกต์แบ็กเอนด์แบบ standalone ที่มี type จากโมเดลเนื้อหาของไซต์ เป็นการสร้างซอร์สโค้ด และเป็นแค่นั้นเท่านั้น
ใน UI ที่ลูกค้าเห็น ให้ใช้คำว่า “GENERATE STANDALONE BACKEND” ไม่มีใครนอก
repository นี้รู้ว่าการที่ไซต์ graduate หมายถึงอะไร และคำนี้อธิบาย
กลไกแทนที่จะอธิบายสิ่งที่ผู้ใช้ได้รับ graduation ยังคงเป็นคำศัพท์ทางเทคนิคภายใน —
ชื่อโมดูล, CLI script (npm run graduate), สเปก, commit
message, ทะเบียนนี้ — และจะไม่ปรากฏบนหน้าจอ, ปุ่ม, toast หรือประโยค error
ที่ผู้รับไปดูแล (adopter) อ่านเลย scripts/check-vocabulary.mjs ทำให้ CI ล้มเหลวเมื่อพบ
ข้อความที่ผู้ใช้มองเห็นซึ่งละเมิดกฎนี้
npm run graduateเขียนโปรเจกต์หนึ่งชุด: Prisma schema, migration, Worker หนึ่งตัว,wrangler.jsoncและ route ที่มี type- ผลลัพธ์ถูก แยกตัว (detach) — ไม่รู้อะไรเลยเกี่ยวกับ installation ที่ สร้างมันขึ้นมา และไม่เรียกกลับไปหาสิ่งใด (SPEC.md §13.1)
- Graduation ไม่ deploy อะไรเลย
graduate:allก็ไม่ deploy อะไรเช่นกัน - ไม่ใช่ migration, ไม่ใช่ export, ไม่ใช่ deployment มันคือการสร้างโค้ด
Deployment
หัวข้อที่มีชื่อว่า “Deployment”การทำให้ revision ที่ระบุหนึ่งตัวทำงานอยู่บน Cloudflare มีสองสิ่งที่ใช้ คำนี้ และแยกออกจากกันด้วยสิ่งที่แต่ละอย่างกระทำต่อ:
| คำศัพท์ | กระทำต่อ | คำสั่ง |
|---|---|---|
| installation deployment | admin Worker และ admin UI | npm run deploy |
| site deployment | Worker และ D1 ของไซต์ที่ graduate แล้วหนึ่งไซต์ | ปุ่ม Deploy ผ่าน CI |
- site deployment คือ CI pipeline ตาม SPEC.md §13.1: ออก build
credential, สร้างไฟล์ที่ generator เป็นเจ้าของใหม่, เพิ่ม migration ต่อท้าย, migrate D1,
deploy revision นั้น, ตรวจสอบ, รายงานกลับ
site_deploymentคือแถวที่ บันทึกสิ่งนี้ - ไม่ใช่ graduation Graduation สร้างโค้ดที่ deployment นำไปรัน
Provisioning
หัวข้อที่มีชื่อว่า “Provisioning”การสร้างทรัพยากร Cloudflare ที่สิ่งหนึ่งต้องใช้ และบันทึกว่าทรัพยากรนั้นมีอยู่
- Installation provisioning: D1, R2 หรือ Images, Pages, DNS — สิ่งที่
setupทำ - Site provisioning:
create → migrate → bind → redeploy → verifyสำหรับ content database ของไซต์เอง บันทึกไว้ในprovision_attempt/provision_ledger - บันทึกลง ledger เสมอ ทำต่อจากจุดที่ค้างได้เสมอ และไม่อนุมานจากชื่อเด็ดขาด
- ไม่ใช่ installation, ไม่ใช่ deployment Provisioning สร้างทรัพยากร ส่วน deployment นำโค้ดไปวางบนทรัพยากรนั้น
คำที่เราไม่ใช้
หัวข้อที่มีชื่อว่า “คำที่เราไม่ใช้”| หลีกเลี่ยง | เพราะ | ให้ใช้ |
|---|---|---|
| “tenant” ใน UI | เป็นคำระดับ implementation ผู้ดูแลระบบ (operator) คิดเป็นไซต์ | site |
| “instance” สำหรับ deployment | content_instance เป็นแถวหนึ่ง และมีอยู่ทุกที่ |
installation |
| “migrate” สำหรับการนำเข้าเนื้อหา | migrate คือ schema migration |
import |
| “export” สำหรับ graduation | export คือเนื้อหาที่ออกไป ส่วน graduation คือโค้ดที่เข้ามา | graduate |
| “sync” | เคยมีความหมายถึงสี่อย่าง | ระบุทิศทาง |
| “graduate” ใน UI | เป็นชื่อกลไก ไม่ใช่สิ่งที่ adopter ได้รับ | generate standalone backend |
| “workflow” สำหรับไซต์ที่ปิด review | ไม่มี review ให้อยู่ในนั้น | publish / unpublish |