ข้ามไปยังเนื้อหา

เอกสารในฐานะผลิตภัณฑ์

Spec: ISO/IEC/IEEE 26514 Spec: ISO/IEC/IEEE 26513 Spec: ISO 24495-1 Evidence: Standard-backed

หน้าเหล่านี้สร้างขึ้นตามแบบจำลองคุณภาพเอกสาร เขียนภายใต้เกณฑ์พื้นฐานของภาษาที่เข้าใจง่ายและลำดับชั้นของสไตล์ และผ่านด่านตรวจอัตโนมัติแบบเดียวกับโค้ดของเอนจิน หน้านี้อธิบายแนวทางดังกล่าวและเหตุผลที่ NextPDF บันทึกข้อบกพร่องของเอกสารเป็นข้อบกพร่องทางวิศวกรรม

หน้านี้เขียนขึ้นสำหรับวิศวกรอาวุโสที่เคยประสบปัญหากับเอกสารที่เขียนอย่างมั่นใจแต่ตรวจสอบไม่ได้ และต้องการรู้ว่าอะไรทำให้เอกสารชุดนี้แตกต่างก่อนจะไว้วางใจ

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

วรรณกรรมด้านมาตรฐานกล่าวถึงความเสี่ยงในประเด็นนี้อย่างตรงไปตรงมา ข้อมูลสำหรับผู้ใช้ที่ออกแบบมาอย่างดีทำได้มากกว่าลดต้นทุนการสนับสนุน เพราะยังช่วยยกระดับชื่อเสียงของผลิตภัณฑ์และผู้ผลิต สิ่งนั้นเกิดขึ้นได้ด้วยการนำการทดสอบเพื่อทวนสอบและการตรวจสอบความสมเหตุสมผลเข้าไว้ในระหว่างการพัฒนา ไม่ใช่หลังจากนั้น Spec: ISO/IEC/IEEE 26513, §Foreword NextPDF ยึดถือหลักการนั้น อย่างตรงตัว นั่นคือเอกสารเป็นพื้นผิวของผลิตภัณฑ์ที่มีเกณฑ์คุณภาพ ไม่ใช่ ความเอื้อเฟื้อที่แนบมากับโค้ด

  • NextPDF วางเอกสารเหล่านี้บนแบบจำลองคุณภาพข้อมูลที่ชัดเจน ซึ่งได้มาจากเกณฑ์ข้อมูลสำหรับผู้ใช้ใน §8 นั่นคือ แต่ละหน้าต้องถูกต้องทางเทคนิค ใช้คำศัพท์ชุดเดียวกันอย่างสม่ำเสมอ ผู้อ่านที่ระบุไว้เข้าใจได้ บอกเฉพาะสิ่งที่จำเป็นโดยไม่ละเว้นสิ่งที่ต้องมี และยังคงเข้าถึงได้ด้วยเทคโนโลยีสิ่งอำนวยความสะดวก Spec: ISO/IEC/IEEE 26514, §8
  • โครงสร้างไม่ได้เกิดจากการด้นสด หัวข้อต่างๆ ถูกจัดระเบียบเป็นลำดับชั้นที่ตรึงไว้พร้อมเมทาดาทา (section, audience, evidence level) เพื่อให้ผู้อ่านค้นพบหัวข้อหนึ่งได้จากการจดจำ Spec: ISO/IEC/IEEE 26514, §9 และข้อความที่สำคัญที่สุดอยู่ใกล้ส่วนบนของแต่ละหน้า
Spec: ISO 24495-1, §5
  • น้ำเสียงถูกกำกับด้วยลำดับชั้นของสไตล์ที่ผ่านการให้สัตยาบัน — Apple สำหรับน้ำเสียง Microsoft สำหรับขั้นตอนปฏิบัติ Google สำหรับโค้ด และภาษาที่เข้าใจง่ายตลอดทั้งชุด — ซึ่งบันทึกไว้ในรีโพพร้อมข้อกำหนดต้นทางที่ถูกแทนที่ในทุกจุดที่มีการเบี่ยงเบน
  • คุณภาพถูกตรวจสอบด้วยเครื่อง Vale บังคับใช้ชุดน้ำเสียง ส่วนชุดด่าน composer docs:* บังคับใช้ความสมบูรณ์ของลิงก์ สุขอนามัยของการอ้างอิง การไม่มีข้อความมาตรฐานที่คัดลอกมาตรงตัว และการไม่รั่วไหลของรายละเอียดที่เป็นความลับ
  • เอกสารถูกพัฒนาไปพร้อมกับโค้ดแบบทำซ้ำเป็นรอบ — การเปลี่ยนแปลงแต่ละครั้งส่งมอบเอกสารของตนไปด้วย ไม่ใช่กองงานเอกสารค้าง Spec: ISO/IEC/IEEE 26515, §Introduction

“เอกสารที่ดี” เป็นคำกล่าวที่พิสูจน์ว่าผิดไม่ได้ จนกว่าจะระบุคุณลักษณะออกมา NextPDF นำเกณฑ์ข้อมูลสำหรับผู้ใช้ใน §8 มาเรียบเรียงด้วยถ้อยคำของตนเองให้เป็นเกณฑ์สำหรับวัดทุกหน้าของ Insider_ นั่นคือ แต่ละหน้าต้องถูกต้องทางเทคนิค ยึดคำศัพท์ชุดเดียวกันอย่างสม่ำเสมอ ผู้อ่านที่ระบุไว้เข้าใจได้ มีเฉพาะสิ่งที่ผู้อ่านนั้นจำเป็นต้องรู้โดยไม่ละเว้นสิ่งที่ต้องมี และยังคงเข้าถึงได้ด้วยเทคโนโลยีสิ่งอำนวยความสะดวก Spec: ISO/IEC/IEEE 26514, §8 สิ่งเหล่านี้ไม่ใช่คำคุณศัพท์ แต่เป็นเกณฑ์สำหรับการทบทวน การทดสอบ “จำเป็นแต่ครบถ้วน” คือเหตุผลที่หน้าหนึ่งระบุขอบเขตของตนแล้วหยุด แทนที่จะเติมเนื้อหาให้ยืดยาว ความสม่ำเสมอของคำศัพท์คือเหตุผลที่คำศัพท์ถูกกำกับดูแล (ด้านล่าง) การเข้าถึงได้คือเหตุผลที่ทุกคอมโพเนนต์ปลอดภัยทั้งสำหรับแป้นพิมพ์และโปรแกรมอ่านหน้าจอ และไม่เคยสื่อความหมายด้วยสีเพียงอย่างเดียว

ระบบหมวดหมู่ของ Insider_ ถูกตรึงไว้ก่อนที่จะเขียนหน้าใดๆ นั่นเป็นความตั้งใจ ISO 26514 กำหนดว่าการวิเคราะห์ผู้อ่านและงานต้อง มาก่อน การออกแบบข้อมูล Spec: ISO/IEC/IEEE 26514, §9 อีกทั้งยังกำหนดให้หัวข้อต่างๆ ถูกจัดระเบียบเป็นลำดับชั้นหรือกลุ่ม โดยแต่ละหัวข้อมีเมทาดาทาที่ระบุผู้อ่านและชนิดของข้อมูล เพื่อให้ผู้ใช้ค้นหาสิ่งที่ต้องการได้อย่างรวดเร็ว Spec: ISO/IEC/IEEE 26514, §9 ในรีโพนี้ เมทาดาทาดังกล่าวคือ front-matter ที่เป็นรูปธรรม — section, audience, evidence_level, tags — และแผนผังคลัสเตอร์คือไฟล์ที่ตรึงไว้เพียงไฟล์เดียว ผู้อ่านเลือกหน้าด้วยการจดจำ ไม่มีใครต้องจำ slug

ภายในแต่ละหน้า ลำดับถูกกำหนดไว้ตายตัวและเหมือนกันทุกที่ และข้อความที่มีประโยชน์ที่สุดถูกวางไว้ในจุดที่ผู้อ่านจะพบก่อน — โดยทั่วไปคือตอนต้น Spec: ISO 24495-1, §5 นั่นคือเหตุผลที่ทุกหน้าของ Insider_ วาง ฉบับย่อ ไว้ก่อนรายละเอียด เพื่อให้ผู้อ่านหยุดอ่านได้หลังจากสาม ส่วน แล้วยังคงได้คำตอบที่ปกป้องได้ติดตัวไป

น้ำเสียงไม่ได้ถูกปล่อยให้ขึ้นอยู่กับอารมณ์ของผู้เขียน รีโพนี้มีเอกสารการแทนที่ที่ผ่านการให้สัตยาบัน (docs/style/nextpdf-overrides.md) ซึ่งวาง Apple (น้ำเสียง), Microsoft MSTP (ขั้นตอนปฏิบัติและคำศัพท์ UI) และ Google DDSG (โค้ดและ CLI) ไว้เหนือเกณฑ์พื้นฐานของภาษาที่เข้าใจง่ายและคำศัพท์ควบคุม พร้อมตารางแก้ไขความขัดแย้งแยกตามโหมด กฎที่เข้มงวดที่สุดของเอกสารนี้มีผลเหนือกฎทั้งหมด นั่นคือ ห้ามใช้ข้อความที่คัดลอกมาตรงตัวจากองค์กรมาตรฐานที่มีลิขสิทธิ์ ทุกจุดที่ NextPDF เบี่ยงเบนจากคู่มือต้นทางจะถูกบันทึกไว้ พร้อมข้อกำหนดต้นทางที่ถูกแทนที่และเหตุผล เอกสารสไตล์อ้างแหล่งที่มาของตนเองในแบบเดียวกับที่หน้าเอกสารหนึ่งหน้าทำ

แนวทางนี้ถูกบังคับใช้ด้วยเครื่องมือ ไม่ใช่ด้วยความตั้งใจที่ดี

  1. Scaffold The page starts from a populated front-matter and section skeleton.
  2. Vale packs Apple, MSTP, Google, and controlled-vocabulary rules run on the prose.
  3. Link check docs:link-check rejects link rot against the built site.
  4. NDA scan docs:nda-scan rejects private FQCNs and internal artefact names.
  5. Quote fingerprint docs:jaccard-fingerprint flags verbatim standards-text reuse.
  6. Citation audit docs:rag-citation-check / docs:rag-fallback-check guard the digests.
  7. Review A reviewer confirms the page's declared evidence level holds.
ด่านคุณภาพของเอกสาร เรียงตามลำดับที่หน้าหนึ่งผ่าน นั่นคือ โครงร่างที่เติมข้อมูลแล้วจะกำหนดโครงสร้าง Vale บังคับใช้ชุดน้ำเสียง ด่าน docs:* บังคับใช้ความสมบูรณ์ของลิงก์ สุขอนามัยของการอ้างอิง การไม่มีข้อความมาตรฐานคัดลอกตามต้นฉบับ และการไม่รั่วไหลของข้อมูลที่เป็นความลับ การทบทวนยืนยันฐานหลักฐาน หน้าที่ไม่ผ่านด่านหนึ่งคือข้อบกพร่อง ซึ่งถูกจัดการเหมือนการทดสอบที่ล้มเหลว

สิ่งเหล่านี้สอดคล้องกับรายการจริงใน composer.json ของรีโพนี้ docs:lint รันด่าน NDA และด่านลิงก์ในเครื่อง docs:jaccard-fingerprint ตั้งค่าสถานะการนำข้อความมาตรฐานที่คัดลอกมาตรงตัวมาใช้ซ้ำเกินเกณฑ์ความคล้ายคลึง docs:rag-fallback-check เป็นตัวบังคับใช้โปรโตคอลความสมบูรณ์ของการอ้างอิงที่นำไปใช้งานได้ครบถ้วน ทำงานแบบออฟไลน์ และให้ผลแบบกำหนดได้ ส่วนการทวนสอบ RAG แบบสด (docs:rag-citation-check) และตัวสแกนบางตัวถูกเชื่อมต่อไว้เป็นด่านแล้ว ขณะที่ตัวรันที่ลึกกว่ายังอยู่ระหว่างการสร้าง ข้อความที่ต้องพูดให้ตรงคือ ข้อกำหนด ได้รับการให้สัตยาบันแล้ว และการตรวจสอบเชิงโครงสร้างถูกบังคับใช้แล้วในวันนี้ ส่วนความพยายามให้ทุกการตรวจสอบครอบคลุมครบถ้วนยังดำเนินอยู่ Insider_ ไม่อ้างแดชบอร์ดสีเขียวที่ตนยังไม่ได้พิสูจน์ — ซึ่งนั่นเองคือเกณฑ์ “ถูกต้อง” ของแบบจำลองคุณภาพที่นำมาใช้กับหน้านี้

หน้านี้เป็น Evidence: Standard-backed สำหรับข้ออ้างด้านคุณภาพของเอกสาร และอ้างฐานจากรีโพสำหรับข้ออ้างด้านการบังคับใช้ ฐานสองด้านนี้เป็นความตั้งใจ นั่นคือ หลักการ มาจากมาตรฐาน ส่วน การบังคับใช้ ทวนสอบได้ด้วยการอ่านรีโพ

ข้ออ้างฐานจุดยึด
เอกสารมีเกณฑ์คุณภาพที่กำหนดไว้มาตรฐานถูกต้อง คำศัพท์ชุดเดียว ผู้อ่านเข้าใจได้ จำเป็นแต่ครบถ้วน เข้าถึงได้ด้วยเทคโนโลยีสิ่งอำนวยความสะดวก Spec: ISO/IEC/IEEE 26514, §8
คำศัพท์ถูกกำกับดูแลมาตรฐานคำศัพท์ที่สม่ำเสมอตลอดทั้งชุดข้อมูล Spec: ISO/IEC/IEEE 26514, §8
โครงสร้างมาก่อนการเขียนมาตรฐานการวิเคราะห์ผู้อ่านและงานก่อนการออกแบบ Spec: ISO/IEC/IEEE 26514, §9
ข้อความที่มีประโยชน์ที่สุดมาก่อนมาตรฐานข้อความที่สำคัญที่สุดอยู่ตอนต้น Spec: ISO 24495-1, §5
เอกสารส่งมอบไปพร้อมกับโค้ดมาตรฐานสิ่งส่งมอบของแต่ละรอบรวมถึงข้อมูลสำหรับผู้ใช้ Spec: ISO/IEC/IEEE 26515, §Introduction
คุณภาพถูกตรวจสอบด้วยเครื่องในรีโพcomposer.jsondocs:* เป็นด่าน เอกสารที่ผ่านการให้สัตยาบัน docs/style/nextpdf-overrides.md และการตั้งค่า Vale ที่ใช้งานอยู่

แนวทางนี้เห็นได้แม้ในระดับเล็กที่สุด นั่นคือ ข้อมูลคุณภาพจะไม่ถูกพิมพ์ด้วยมือลงในเนื้อหา เพราะตัวเลขในเนื้อหาจะล้าสมัยได้อย่างเงียบๆ ข้อมูลนั้นถูกเรนเดอร์โดยคอมโพเนนต์ที่ ปฏิเสธการสร้างค่าขึ้นมาเอง และมีฐานหลักฐานของหน้านั้นรองรับ

examples/docs-quality-signal.php
<?php
declare(strict_types=1);
// Illustrative: the documentation build's contract for a quality datum.
// The component throws if no real value is supplied — a metric is never
// allowed to live as a hardcoded literal that can drift out of date.
final class QualityDatum
{
public function __construct(
public readonly string $label,
public readonly string $value,
) {
if ($this->value === '') {
throw new \InvalidArgumentException(
'A quality datum must carry a verified value; '
. 'documentation never invents a metric.',
);
}
}
}
$phpstanLevel = new QualityDatum(label: 'PHPStan', value: 'Level 10');

ประเด็นสำคัญอยู่ที่ throw เกณฑ์ “ถูกต้อง” ของแบบจำลองคุณภาพข้อมูลในที่นี้ไม่ใช่เพียงคำแนะนำ โครงสร้างบังคับใช้เกณฑ์นั้นเพื่อไม่ให้ตัวเลขที่ล้าสมัยหลุดออกไปได้อย่างเงียบๆ

ความเข้าใจผิดข้อแรกคือการอ่าน “เอกสารในฐานะผลิตภัณฑ์” เป็นเพียงคำขวัญเกี่ยวกับความเรียบเนียน — สำนวนที่ดีขึ้น หน้าเอกสารที่ดูดีขึ้น แท้จริงแล้วตรงกันข้ามกับเรื่องผิวเผิน หมายความว่าเอกสารมีเกณฑ์คุณภาพที่กำหนดไว้ คำศัพท์ที่ถูกกำกับดูแล โครงสร้างที่ตรึงไว้ และด่านที่ตรวจสอบด้วยเครื่อง หน้าที่ไม่ผ่านสิ่งใดในนั้นคือ ข้อบกพร่องที่มีวิธีแก้ ซึ่งจัดการเหมือนการทดสอบที่ล้มเหลว ความเรียบเนียนเป็นผลพลอยได้ของแนวทางนี้ ไม่ใช่จุดมุ่งหมายของมัน

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

หน้านี้อธิบาย แนวทาง ของเอกสาร ไม่ใช่เอกสารสไตล์ ไฟล์ระบบหมวดหมู่ หรือด่านที่นำไปใช้จริง และไม่ได้ยืนยันพฤติกรรมของเอนจินใดๆ แหล่งอ้างอิงที่เชื่อถือได้อยู่ในรีโพ (docs/style/nextpdf-overrides.md ระบบหมวดหมู่ที่ตรึงไว้ และสคริปต์ composer.json docs:*) และจะมีผลเหนือบทสรุปใดๆ ในที่นี้หากเกิดความแตกต่างกัน

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

  • วินัยการอ้างอิง — กฎที่เข้มงวดที่สุดในลำดับชั้นของสไตล์ และระบบระดับหลักฐานที่หน้านี้พึ่งพา
  • ภูมิทัศน์ของมาตรฐาน — มาตรฐานที่แนวทางนี้อ้างถึง และวิธีที่ข้อกำหนดข้อหนึ่งกลายเป็นพฤติกรรมที่มีเอกสารกำกับ
  • ปรัชญาการออกแบบของ NextPDF — รสนิยมทางวิศวกรรมที่จัดการข้อบกพร่องของเอกสารเหมือนข้อบกพร่องของโค้ด
  • แบบจำลองคุณภาพข้อมูล — การที่ NextPDF เรียบเรียงเกณฑ์ข้อมูลสำหรับผู้ใช้ใน ISO 26514 §8 ใหม่ (ถูกต้อง คำศัพท์ชุดเดียว ผู้อ่านเข้าใจได้ จำเป็นแต่ครบถ้วน เข้าถึงได้ด้วยเทคโนโลยีสิ่งอำนวยความสะดวก) เพื่อใช้เป็นเกณฑ์การทบทวนสำหรับทุกหน้าของ Insider_
  • ภาษาที่เข้าใจง่าย — การสื่อสารที่ถ้อยคำ โครงสร้าง และการออกแบบช่วยให้ผู้อ่านเป้าหมายค้นหา เข้าใจ และใช้เนื้อหาได้ เป็นเกณฑ์พื้นฐานที่ใช้ข้ามโหมดต่างๆ ไม่ใช่ชนิดของเนื้อหา
  • ลำดับชั้นของสไตล์ — ชุดคู่มือสไตล์ต้นทางที่จัดเป็นชั้นและผ่านการให้สัตยาบัน (Apple, Microsoft, Google รวมถึงเกณฑ์พื้นฐานของภาษาที่เข้าใจง่ายและคำศัพท์ควบคุม) โดยบันทึกการเบี่ยงเบนทุกจุดของ NextPDF เทียบกับแหล่งที่มา
  • ด่านคุณภาพ — การตรวจสอบอัตโนมัติ (ชุด Vale หรือสคริปต์ composer docs:*) ที่หน้าหนึ่งต้องผ่าน การล้มเหลวคือข้อบกพร่องของเอกสาร ไม่ใช่เรื่องเล็กน้อย
  • เมทาดาทา front-matter — ส่วนหัวที่เครื่องอ่านได้ (section, audience, evidence_level, tags) ที่ทำให้หน้าเอกสารหนึ่งหน้าค้นหาได้และจัดประเภทได้ ตามข้อกำหนดเรื่องการจัดระเบียบหัวข้อ