Axioms Studio Systems

Systems

Cross-product axioms for building software systems — the portable spine: representation loss, finite resources, an independent world, context, and clarity. AX1–AX5 plus the theorems and corollaries that follow.

Axioms
AX1–AX5 · theorems · corollaries
Version
working
Status
validated against the nectarserve build
Last updated

Overview

ทุกระบบที่เราสร้างทำสิ่งเดียวกัน — จดของจริงลงเป็นข้อมูล แล้วลงมือจากสิ่งที่จดไว้ · แต่ byte ที่จำค่า 74 ลืมไปแล้วว่ามันเคยแปลว่าอะไร · ระหว่างสิ่งที่จดกับของจริงที่มันชี้ไป มีรอยห่างที่ปิดไม่ลง — และทุกอย่างในหน้านี้ตามมาจากรอยห่างนั้น

ห้า axiom ข้างล่างจริงกับทุกระบบที่ต้อง ตัดสินใจแล้วลงมือกับของจริง ไม่ว่าจะสร้าง product ตัวไหน · ชุดนี้ derive ระหว่างสร้าง nectarserve — ซอฟต์แวร์ตัวแรกของสตูดิโอ — แต่ axiom เองไม่ผูกกับมัน · ส่วนที่เป็นของ nectarserve โดยเฉพาะอยู่ที่ Continuum ซึ่ง derive ลงมาจากชุดนี้

ขอบเขต: AX1–AX5 · T1·T3·T4·T5·T7·T8·T9 · C6·C7·C10·C11 — axiom ที่พกพาได้กับทุกระบบที่ตัดสินใจแล้วลงมือกับของจริง

Axioms

ห้าข้อนี้เราเลือกตั้งเป็นจุดเริ่มเอง แล้วสร้างทุกอย่างในหน้านี้ขึ้นจากมัน

AX1 · ทุก representation สูญเสียข้อมูลบางส่วนเสมอ

การบันทึกสิ่งใดลงในรูปแบบใด ย่อมเสียข้อมูลในมิติที่ไม่ได้บันทึก — คานเสียรูปเมื่อรับน้ำหนัก นั่นคือธรรมชาติ ไม่ใช่ความบกพร่อง · representation ที่ดีไม่ใช่อันที่สมบูรณ์ แต่คืออันที่ loss เล็กกว่า threshold ของ decision ที่ต้องทำ

เกณฑ์ — “ผิดแล้ว decision เปลี่ยนไหม?” · ไม่เปลี่ยน = พอแล้ว · เปลี่ยน = ต้องปรับ รองรับ — T1 · T3 · T4 · C11

AX2 · ณ เวลาหนึ่ง ทรัพยากรมีจำกัด

ไม่ว่า moment ใดของการตัดสินใจ ทรัพยากรที่ใช้ได้จริง ณ ขณะนั้นไม่มี infinity

รองรับ — T1 · T5 · C10

AX3 · ของจริงเปลี่ยนเองได้ โดยไม่ขึ้นกับระบบ

“ส่งงานสำเร็จ” ≠ “ผลสำเร็จ” — พนักงานวางพัสดุหน้าบ้าน ถ่ายรูป กลับไป = ส่งแล้ว · แต่ถ้าลมพัดพัสดุหาย ผู้รับยังไม่กลับบ้าน = ไม่รู้ผล · state ที่ถูกคือ pending ไม่ใช่ delivered

รองรับ — T7 · T8 · C6

AX4 · ความหมายเชิงปฏิบัติของ message ขึ้นกับ context ที่สะสมมาก่อน

“โอนเงินไปแล้วครับ” — รู้ว่าเป็นการแจ้งโอนเงิน (semantic) แต่ไม่รู้โอนให้ใคร เพื่ออะไร (pragmatic) → ระบบที่ต้อง act on ทำอะไรไม่ได้ · หน่วยที่ระบบ act on ได้คือ thread ไม่ใช่ message เดี่ยว

รองรับ — T11 · T14 · C8 (ที่ Continuum)

AX5 · ข้อมูลไม่พอ แก้ปัญหาไม่ได้ — ไม่ว่า resolver จะแรงแค่ไหน

clarity ≥ threshold → แก้ได้ · clarity < threshold → ต้องถามหรือ drop ไม่ใช่เดา · threshold ไม่ใช่ตัวเลขสากล ขึ้นกับ decision: “ไม่รู้ field นี้ → resolver ตัดสินใจผิดในแบบที่รับไม่ได้ไหม?”

รองรับ — T9 · C7 · C11

บันทึกคือภาพนิ่ง · ของจริงไม่เคยนิ่ง

รอยห่างเมื่อกี้ไม่ได้แค่ มีอยู่ — มันยัง กว้างขึ้นเรื่อยๆ หลังจากที่เราจด เพราะ AX3 บอกว่าของจริงเดินต่อตลอดเวลา ส่วนบันทึกหยุดค้างอยู่กับที่

ตอนจด บันทึกตรงกับของจริงพอดี · จากวินาทีนั้นของจริงก็เดินจากไป ส่วนบันทึกยังค้างอยู่ที่เดิม · สิ่งที่เราถือจึงไม่ใช่ “ความจริงตอนนี้” แต่เป็น ภาพนิ่ง ณ เวลาที่เห็นล่าสุด — ยิ่งนานนับจากตอนนั้น ของจริงยิ่งเดินห่างออกไป

และเรารู้ของจริงแค่ ตอนที่มองมัน · ช่วงที่ไม่ได้มอง เราไม่รู้เลยว่ามันเดินไปไกลแค่ไหน — จะถือว่า “ค่านี้ยังตรงอยู่” ก็เป็นได้แค่ การเดาที่ดีที่สุดเท่าที่มี ไม่ใช่สิ่งที่ยืนยันได้ · (จะยืนยันต้องกลับไปมองใหม่ และการกลับไปมองก็เปลี่ยนสิ่งที่มอง)

∴ บันทึกทุกชิ้นมาพร้อมคำถามเดียว: ของจริงเดินห่างไปแค่ไหนแล้ว? — ยิ่งห่าง ยิ่งไม่แน่ใจ · ตอบได้คร่าวๆ จาก เวลาที่ผ่าน × ความเร็วที่ของชนิดนั้นเปลี่ยน — ชื่อร้านเดินช้า (ห่างเป็นปี) ยอดสต็อกเดินเร็ว (ห่างเป็นชั่วโมง) · สิ่งที่เราถือจริงๆ จึงไม่ใช่แค่ ค่า แต่เป็น ค่า + เวลาที่เห็น + ความเร็วที่มันเปลี่ยน

สรุปได้แล้ว — บันทึกคือภาพนิ่งของของจริงที่ยังเดินอยู่ · “เห็นเมื่อไหร่” สำคัญพอ ๆ กับ “ค่าอะไร” ยังสรุปไม่ได้ — แต่ละชนิดเดินเร็วแค่ไหน และจะทำให้ “ระยะที่ห่าง” โผล่ให้คนเห็นและจัดการยังไง · ยังเป็นรอยต่อที่เปิดอยู่ — nectarserve ลงมือกับมันใน Continuum (T17 + รอยต่อความแน่ใจของความจำ)

Theorems

Theorem ในที่นี้ = ข้อที่ตามมาจาก axiom อย่างสอดคล้อง ไม่ใช่บทพิสูจน์เชิงรูปนัย · เลขคือรหัส ไม่ใช่ลำดับอ่าน — มีช่องว่างได้ (ไม่มี T2, T6 อยู่ที่ Continuum) และไม่ไล่เลขใหม่เพราะรหัสถูกอ้างฝังในโค้ดแล้ว

รหัสใจความจาก
T1ต้นทุนเกิดที่การทำ ไม่ใช่ที่การมีอยู่AX1 · AX2
T3งานต่างชนิดมีขอบเขตต่างกัน — เลือก resolver ให้ตรงAX1
T4คุณค่าเกิดจาก action ที่ทำไปแล้วAX1
T5ระบบที่ดีรู้ขอบเขตตัวเอง เข้าใกล้อย่างตั้งใจT1 · T3 · AX2
T7ส่งแล้ว ≠ ได้รับแล้ว — external มีสอง completionAX3
T8blast radius กำหนด authority ที่ต้องการAX3 · T7
T9clarity ต่ำกว่า threshold → ไม่ควร executeAX5

T5 ขยายความ: เมื่อ constraint active จุด optimal มักถูกผลักไปชนขอบของ feasible region · ขอบเขตจึงเป็นสิ่งที่ต้องรู้จักและเข้าถึงได้แม่นยำ ไม่ใช่สิ่งที่ต้องหลีกเลี่ยง

Corollaries

รหัสใจความจาก
C6internal fail fast · external fail neverT8 · AX3
C7เพิ่ม clarity ก่อน execute ดีกว่า retry ทีหลังAX5 · T9
C10เงียบคือ default สื่อสารคือ exceptionAX2
C11sufficient fidelity ไม่ใช่ perfect fidelityAX1 · AX5