3 คะแนน โดย GN⁺ 2025-01-07 | 1 ความคิดเห็น | แชร์ทาง WhatsApp
  • htmx กำเนิดมาจาก intercooler.js ซึ่งเดิมเป็นไลบรารีบนฐานของ jQuery ที่ให้ความสามารถแบบไดนามิกด้วยเฉพาะแอตทริบิวต์ HTML
  • สาเหตุที่ jQuery ถูกใช้ในเว็บไซต์จำนวนมากเป็นเวลานานรวมถึงความง่ายในการเริ่มต้น, API ที่สอดคล้องกัน, และความยืดหยุ่นในการใช้งานบางส่วนได้

htmx คือ jQuery รุ่นใหม่

  • htmx ก็มุ่งเป็นไลบรารีที่เสถียรและใช้งานได้อย่างยาวนานเช่นเดียวกับ jQuery
  • ตั้งเป้าหมายเป็น “บริการเว็บที่สามารถคงอยู่ได้ 100 ปี” โดยออกแบบมาให้ยังคงใช้งานได้ผลและยั่งยืนแม้มีการเปลี่ยนแปลงครั้งใหญ่เพียงเล็กน้อย
  • ความเสถียรคือคุณสมบัติ
    • นโยบายอัปเดตหลักของ htmx คือการรักษา เสถียรภาพของ API และการใช้งาน
    • เมื่ออัปเกรดจากเวอร์ชันเดิมเป็นเวอร์ชันใหม่ ให้แน่ใจว่าการทำงานคงเดิม โดยยึดผู้ใช้คนเดิมเป็นศูนย์กลาง
  • ไม่มีฟีเจอร์ใหม่เป็นเอกลักษณ์
    • htmx มุ่งไม่เพิ่มฟังก์ชันใหม่เข้าไปในแกนหลักแบบสุ่มสี่สุ่มห้า
    • หากจำเป็นจะจัดการผ่าน API ใหม่ที่เบราว์เซอร์รองรับหรือส่วนขยาย (extensions) และคงความเรียบง่ายของแกนหลักไว้
  • การปล่อยเวอร์ชันรายไตรมาส
    • วางแผนปล่อยเวอร์ชันใหม่ตามรอบไตรมาส (ประมาณทุก 3 เดือน)
    • ไม่บังคับให้อัปเกรด และหากใช้งานเวอร์ชัน 1.x ได้อย่างไม่มีปัญหาก็สามารถคงไว้ได้

ส่งเสริมไฮเพอร์มีเดีย

  • เป้าหมายหลักของ htmx ไม่ใช่การเป็นโซลูชันเว็บแอปพลิเคชันแบบครบวงจร แต่เป็นการทำให้ การควบคุมไฮเพอร์มีเดีย กลายเป็นเรื่องทั่วไป
  • เพื่อให้ทำได้ ต้องปรับปรุงการเชื่อมต่อกับเครื่องมือภายนอกของ htmx เช่น เทมเพลตเอนจิน, แบ็กเอนด์, ฐานข้อมูล เป็นต้น
  • แม้จะไม่เพิ่มฟีเจอร์ใหม่ให้ htmx เอง หากเครื่องมือรอบข้างช่วยทำให้ระบบนิเวศไฮเพอร์มีเดียสมบูรณ์ขึ้น ก็จะทำให้ htmx ใช้ได้กว้างขวางขึ้น
  • สนับสนุนเครื่องมือเสริม
    • htmx ให้บางฟีเจอร์ผ่านแอตทริบิวต์ HTML เท่านั้น แต่การเลือกแบ็กเอนด์หรือฐานข้อมูลเป็นการตัดสินใจของผู้ใช้ทั้งหมด
    • ออกแบบให้เข้ากันได้กับแบ็กเอนด์หลากหลายเพื่อสนับสนุนรูปแบบการพัฒนาที่เน้นไฮเพอร์มีเดีย
    • เน้นแนวคิด “template fragments” ที่ทำให้การแทนที่บางส่วนของหน้าเว็บทำได้ง่าย และช่วยผลักดันให้ระบบนิเวศเทมเพลตเอนจินพัฒนา
    • ขณะนี้มีกรณีมากขึ้นที่เทมเพลตเอนจินหลายตัวมีฟังก์ชัน fragment
    • ยังมีแนวทางมากมายที่ช่วยยกระดับประสบการณ์การเขียนเว็บแอปพลิเคชันบนพื้นฐานไฮเพอร์มีเดีย
    • htmx เน้นการขับเคลื่อนการพัฒนาเครื่องมือและเทคโนโลยีเสริมมากกว่าฟีเจอร์แกน เพื่อโฟกัสการเติบโตของระบบนิเวศโดยรวม
  • การเขียน การวิจัย และการมาตรฐาน
    • htmx วางแผนที่จะเผยแพร่และพัฒนาความคิดเรื่อง ไฮเพอร์มีเดีย โดยรวม มากกว่าการขยายฟีเจอร์ของตัวเอง
    • ผ่านโครงการ Triptych และโครงการอื่นเพื่อให้ไอเดียของ htmx ถูกสะท้อนในมาตรฐาน HTML
      • เป้าหมายในที่สุดคือให้แพลตฟอร์มเว็บรองรับฟังก์ชันที่คล้ายกับ htmx ในรูปแบบมาตรฐาน
    • แม้โค้ด htmx ที่เขียนในวันนี้ยังคงเข้ากันได้อย่างต่อเนื่อง แต่ในอนาคตหนึ่งโลกที่สามารถสร้างแพทเทิร์น UI ที่คล้ายกันได้โดยไม่ต้องใช้ไลบรารีย่อมเป็นไปได้

Intercooler ทำถูกต้อง

  • ตั้งแต่ยุค intercooler.js มากิได้ใช้แนวทาง stewardship ที่หลีกเลี่ยงการเปลี่ยนแปลงรุนแรง และไม่ทำลายสิ่งที่มีอยู่
  • htmx ก็รับช่วงปรัชญานี้เช่นกัน โดยมุ่งเป็น “เครื่องมือที่แข็งแกร่งและน่าเชื่อถือ” ที่จะอยู่รอดได้อย่างยาวนาน

1 ความคิดเห็น

 
GN⁺ 2025-01-07
ความคิดเห็นจาก Hacker News
  • ฉันได้แชร์ประสบการณ์ที่ย้ายโปรเจกต์จาก HTMX ไปยัง Hotwire สำเร็จแล้ว และประเมินว่าคอนเซปต์ของ HTMX น่าสนใจ แต่การใช้งานจริงยังไม่รัดกุม กล่าวถึงมีบั๊กจำนวนมาก และเข้ากันได้ไม่ดีนักกับฟีเจอร์ของเว็บและเบราว์เซอร์ อีกทั้งเอกสารยังไม่เพียงพอ หลังจากย้ายไปใช้ Turbo และ Stimulus แล้วได้โค้ดฐานที่เสถียรกว่าและเข้าใจง่ายกว่า

  • เห็นด้วยกับแนวโน้มที่ให้ความสำคัญกับเสถียรภาพ และชี้ว่าการสร้างระบบบนพื้นฐานของ abstraction ที่ไม่เสถียรจะทำให้มีโอกาสเกิดบั๊กในอนาคตสูงขึ้น โครงการขนาดเล็กอาจไม่เป็นปัญหา แต่หากพิสูจน์แล้วว่ามีประโยชน์ อาจพัฒนาไปสู่โครงการขนาดใหญ่ได้

  • แบ่งปันประสบการณ์ในการพัฒนาแอปพลิเคชันด้วย Django และ HTMX อธิบายว่าถึงแม้จะชื่นชอบ React หรือ Vue แต่ HTMX อาจเหมาะกับนักพัฒนาฝั่งแบ็กเอนด์ได้ โดยประเมินว่า HTMX ยากต่อการทดสอบไม่ต่างจากไลบรารีฝั่งฟรอนต์เอนด์สมัยใหม่

  • แสดงความกังวลเกี่ยวกับความเข้าถึงได้ (accessibility) ของ HTMX และระบุว่าต้องการให้มั่นใจว่ามันเข้ากันได้กับ screen reader ได้ดี มองว่าควรให้ความสำคัญกับประสบการณ์ผู้ใช้จริงมากกว่าการใช้คุณสมบัติ ARIA อย่างถูกต้อง

  • ขอบคุณ HTMX ที่ช่วยลดงานนักพัฒนาโดยจัดการงาน JavaScript บางอย่างด้วยการแสดงนามธรรมที่สวยงาม และให้บทเรียนที่ดีในการจัดการความซับซ้อน

  • กำลังพยายามนำ HTMX เข้าสู่บริษัทพัฒนาซอฟต์แวร์ขนาดใหญ่ และระบุว่ากำลังใช้มันเป็นการทดลองทางความคิด (thought experiment) ในการให้คำปรึกษา ซึ่งทำให้ต้องตั้งคำถามว่าจำเป็นต้องมี SPA จริงๆ หรือไม่

  • เห็นด้วยกับความเห็นที่ว่า "ไม่มีฟีเจอร์ใหม่เป็นฟีเจอร์ที่ดีที่สุด" และชื่นชมที่ซอฟต์แวร์ไม่จำเป็นต้องอัปเดตบ่อย

  • หวังว่า HTMX จะกลายเป็นส่วนหนึ่งของมาตรฐาน HTML และกล่าวว่ากำลังผลักดันแนวคิดนี้ผ่านโครงการ Triptych ในขณะเดียวกันก็หวังว่าฟังก์ชันเหล่านี้จะถูกรวมอยู่ในตัวของเบราว์เซอร์โดยดีฟอลต์