GWEB: เครื่องมือการเขียนโปรแกรมเชิงวรรณกรรมสำหรับภาษา Go
(github.com/sjnam)GWEB เป็นระบบการเขียนโปรแกรมเชิงวรรณกรรม (Literate Programming) สำหรับภาษา Go โดยพัฒนาขึ้นจากการจำลองโครงสร้างของ CWEB ของ Donald Knuth อย่างใกล้ชิด
นักพัฒนาจะเขียนทั้งเอกสาร TeX (คำอธิบาย) และโค้ด Go ควบคู่กันในไฟล์ซอร์ส .w ไฟล์เดียว จากนั้นไฟล์นี้จะถูกแปลงเป็นผลลัพธ์ 2 แบบสำหรับทั้งเครื่องและมนุษย์
เครื่องมือและความสามารถหลัก
ระบบ GWEB ทำงานหลักผ่านคำสั่งสำคัญ 2 ตัว
- gtangle: รวบรวมเฉพาะส่วนของโค้ด Go โดยตัดคำอธิบายในเอกสารออก แล้วสร้างไฟล์ .go ที่สามารถคอมไพล์ได้ โดยผลลัพธ์จะถูกจัดรูปแบบตามสไตล์ gofmt โดยอัตโนมัติ
- gweave: สร้างเอกสารจัดพิมพ์ที่สวยงามและอ่านง่ายสำหรับมนุษย์ (.tex ➡️ PDF) โดยคำสงวนจะแสดงเป็นตัวหนา ตัวระบุจะแสดงเป็นตัวเอียง และมีการสร้างดัชนีอ้างอิงข้ามโดยอัตโนมัติ
คุณลักษณะเด่นและข้อดี
- รูปแบบที่เข้าใจง่าย: รองรับคำสั่ง
//lineในตัว ทำให้เมื่อเกิดข้อผิดพลาดระหว่างคอมไพล์หรือเกิด panic ระบบจะระบุตำแหน่งบรรทัดในไฟล์ต้นฉบับ.wได้อย่างแม่นยำ แทนที่จะอ้างอิงจากไฟล์.go - ระบบ Self-Hosting: ตัว GWEB เองก็พัฒนาด้วยแนวทางการเขียนโปรแกรมเชิงวรรณกรรมเช่นกัน โดยไฟล์
.wภายในโฟลเดอร์lit/คือซอร์สต้นฉบับจริงของ GWEB - รองรับเอดิเตอร์: มีการตั้งค่าสำหรับ syntax highlighting ให้กับผู้ใช้ VS Code, Vim และ Emacs มาพร้อมกัน
การใช้ GWEB ช่วยให้คุณบันทึกและจัดการเจตนาในการออกแบบและอัลกอริทึมของโปรเจกต์ Go ที่ซับซ้อนได้อย่างสง่างาม ราวกับกำลังเขียนหนังสือหนึ่งเล่ม
ยังไม่มีความคิดเห็น