3 คะแนน โดย GN⁺ 2024-10-07 | 1 ความคิดเห็น | แชร์ทาง WhatsApp
  • เวลาพัฒนาเว็บด้วย Rust มีปัญหาตรงที่ไม่มีเฟรมเวิร์กแบบ Django จึงต้องลงมือทำหลายอย่างเอง
  • หากต้องการใช้ประโยชน์จากจุดเด่นของ Rust อย่างระบบชนิดข้อมูล ประสิทธิภาพ และเวลาคอมไพล์ ก็จำเป็นต้องมีเฟรมเวิร์กที่ช่วยให้การพัฒนาเว็บง่ายขึ้น

ฟีเจอร์ที่จำเป็น

  • การกำหนดเส้นทาง/แฮนด์เลอร์: ต้องมีความสามารถในการเชื่อมคำขอไปยังแฮนด์เลอร์ที่จะประมวลผล
  • เทมเพลต: ต้องสามารถสร้างคอนเทนต์อย่าง HTML และ JSON ได้
  • การให้บริการไฟล์สแตติก: ต้องมีฟังก์ชันสำหรับให้บริการแอสเซ็ตอย่างไฟล์ CSS
  • การล็อกอิน: สำหรับแอปหลายผู้ใช้ จำเป็นต้องมีฟังก์ชันล็อกอิน
  • การจัดการสิทธิ์: ต้องสามารถจัดการสิทธิ์การเข้าถึงตามผู้ใช้ได้
  • อินเทอร์เฟซฐานข้อมูล: ต้องมีความสามารถในการจัดเก็บและจัดการข้อมูล
  • เครื่องมือผู้ดูแลระบบ: ต้องมีเครื่องมือที่รองรับงานดูแลระบบพื้นฐาน
  • WebSocket: ต้องมีฟังก์ชัน WebSocket สำหรับการส่งข้อมูลแบบเรียลไทม์
  • ฮอตรีโหลด: ต้องมีความสามารถที่สะท้อนการเปลี่ยนแปลงโค้ดได้ทันที

ฟีเจอร์เพิ่มเติมที่จำเป็น

  • งานเบื้องหลัง: ต้องมีความสามารถในการรันงานตามตารางเวลา
  • การมอนิเตอร์/การสังเกตการณ์ระบบ: ต้องมีความสามารถในการมอนิเตอร์สถานะของระบบ
  • แคช: ต้องมีฟังก์ชันแคชเพื่อเพิ่มประสิทธิภาพ
  • อีเมลและการแจ้งเตือน: ต้องมีฟังก์ชันแจ้งเตือนเพื่อรองรับความสามารถอย่างการรีเซ็ตรหัสผ่าน
  • เครื่องมือดีพลอย: ต้องมีวิธีดีพลอยที่สม่ำเสมอและเป็นแบบแผนเดียวกัน
  • การบันเดิล CSS/JS: ต้องมีความสามารถในการจัดการไฟล์ CSS และ JS อย่างมีประสิทธิภาพ

ระบบนิเวศที่มีอยู่

  • เว็บเฟรมเวิร์ก: มีเฟรมเวิร์กที่ให้ความสามารถขั้นพื้นฐานอย่าง actix-web และ axum
  • ชุดไลบรารี: มีไลบรารีหลากหลายสำหรับเทมเพลต การล็อกอิน การจัดการสิทธิ์ เป็นต้น แต่ยังขาดโซลูชันแบบบูรณาการ

เว็บทูลคิตใหม่

  • nicole's web toolkit (newt): กำลังพัฒนาเว็บทูลคิตที่รวมฟังก์ชันหลากหลายเข้าไว้ด้วยกัน
  • เป้าหมาย: เพื่อช่วยให้เริ่มต้นเว็บแอปใหม่ได้อย่างรวดเร็ว
  • แผนการ: ตั้งใจจะใช้ building blocks ที่มีอยู่เดิมเพื่อมอบโซลูชันแบบบูรณาการ

สรุปโดย GN⁺

  • เน้นย้ำถึงความจำเป็นของเว็บเฟรมเวิร์กแบบบูรณาการเพื่อให้การพัฒนาเว็บด้วย Rust ง่ายขึ้น
  • แนะนำความพยายามที่จะก้าวข้ามข้อจำกัดของเว็บเฟรมเวิร์กและไลบรารีที่มีอยู่
  • ต้องการยกระดับประสบการณ์นักพัฒนาด้วยการรวมฟังก์ชันที่หลากหลายผ่าน nicole's web toolkit (newt)
  • ความพยายามในการนำข้อดีของเฟรมเวิร์กแบบ Django เข้าสู่ระบบนิเวศของ Rust เป็นสิ่งที่น่าจับตามอง
  • โปรเจ็กต์อื่นที่มีฟังก์ชันคล้ายกัน ได้แก่ actix-web และ axum

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

 
GN⁺ 2024-10-07
ความเห็นจาก Hacker News
  • เป็นความเห็นของคนที่ชอบสร้างสิ่งสนุก ๆ ด้วยความพยายามให้น้อยที่สุดโดยใช้ Rust โดยมองว่าแม้ Rust จะยอดเยี่ยมด้านประสิทธิภาพและการจัดการหน่วยความจำ แต่สำหรับการพัฒนาเว็บนั้น Go หรือ Django อาจเหมาะกว่า

  • มองว่า Rust มอบความปลอดภัยที่ช่วยให้นักพัฒนาทำผิดพลาดน้อยลง และยังมีข้อดีที่สามารถเขียนโค้ดได้แม้ใช้เครื่องมือง่าย ๆ อย่าง Notepad

  • มองว่าในฐานะเว็บเฟรมเวิร์ก Rocket คือเฟรมเวิร์กที่ดีที่สุดสำหรับ "นักพัฒนาขี้เกียจ"

  • มองว่าหากใช้ความสามารถด้าน pattern matching ของ Rust ก็ไม่จำเป็นต้องมี router และเรื่อง authentication ก็ไม่ใช่ปัญหาของภาษา或เฟรมเวิร์ก

  • มองว่าเครื่องมือ CSS/JS ไม่เหมาะกับ Rust frontend framework และ Rust ก็มีความพร้อมเพียงพอแล้วสำหรับเว็บฝั่งฟรอนต์เอนด์

  • รู้สึกประหลาดใจที่ไม่มีการพูดถึงเฟรมเวิร์ก Rocket โดยมองว่า Rocket มีเป้าหมายจะเป็นเฟรมเวิร์กแบบ "batteries included"

  • มองว่าการพัฒนาเว็บด้วย Rust ก็ใช้ได้ แต่มีปัญหาเรื่อง concurrency และการเลือก component library ก็ทำได้ยาก

  • กำลังใช้ Flutter เพื่อปรับปรุง UX และพอใจกับมันเพราะผสานรวมกับ Rust ได้ง่าย

  • มองว่า Flutter ไม่ให้ความสำคัญกับ DOM แต่ก็น่าสนใจเพราะช่วยให้สร้าง UX ที่นำไป deploy ได้ทุกที่อย่างง่ายดาย

  • มองว่า Poem คล้ายกับ FastAPI แต่ต้องใช้ boilerplate จำนวนมากในการตั้งค่าเริ่มต้น

  • มองว่าคำว่า 'ขี้เกียจ' ถูกใช้ในความหมายที่ต้องการให้เว็บเฟรมเวิร์กจัดการงานทั่วไปให้ แต่ในความเป็นจริงก็ยังต้องทำงานอีกมาก

  • มองว่าโปรเจ็กต์อย่าง loco-rs, poem และ rocket ต่างก็มอบประสบการณ์แบบ "batteries included" อยู่แล้ว และมี CLI คอยแนะนำการใช้งาน

  • มองว่า F# มอบ type system และเครื่องมือที่คล้ายกับ Rust แต่มีความซับซ้อนน้อยกว่าในด้าน async processing และการจัดการหน่วยความจำ

  • ผู้เขียนต้องการเฟรมเวิร์กสำหรับ Rust ที่คล้ายกับ Spring Boot