21 คะแนน โดย leelou2 2025-01-08 | 4 ความคิดเห็น | แชร์ทาง WhatsApp

ช่วงนี้ผมเริ่มศึกษาการใช้งาน Rust และคิดว่าน่าจะดีถ้ามีคอมมูนิตี้ที่ใช้งานได้ดี เลยลงมือสร้างขึ้นมาเองครับ ตอนแรกก็คิดว่า 'จะลองทำด้วย Rust ดีไหม?' แต่เพราะมันเป็นคอมมูนิตี้สาธารณะ เลยคิดว่า 'สิ่งสำคัญกว่าคือหลายคนต้องใช้งานได้อย่างเสถียร' สุดท้ายจึงพัฒนาด้วย Django ที่มีประสบการณ์มากกว่า
(รายละเอียดเพิ่มเติมอย่างฝั่งฟรอนต์เอนด์จะเล่าด้านล่างแบบละเอียดครับ 👏)

เว็บไซต์

แบ็กเอนด์

อย่างที่กล่าวไปข้างต้น แบ็กเอนด์ถูกพัฒนาด้วย Django ครับ

[ เทคโนโลยีที่นำมาใช้ ]

  • ฐานข้อมูลใช้ Sqlite3 แต่ใช้ Django ORM อยู่ จึงสามารถเปลี่ยนได้อย่างง่ายดาย
  • โค้ดฟรอนต์เอนด์ที่ build แล้วถูกเรนเดอร์ผ่าน Django Template View
  • ด้วยเหตุนี้จึงใช้ session ไปโดยธรรมชาติ
  • เพื่อรองรับ infinite scroll และฟีเจอร์ขั้นสูง จึงมีการพัฒนา Rest API เพิ่มโดยใช้ DRF
  • ใน DRF มีการใช้ Filterset และ Throttling เพื่อเพิ่มความเสถียร

[ ฟีเจอร์ที่พัฒนาไว้ ]

  • มีฟังก์ชันเขียน/แก้ไขฟีด และดูรายการแบบ infinite scroll
  • มีฟังก์ชันกดถูกใจฟีดและรายงานโพสต์
  • มีฟังก์ชันสร้าง/แก้ไข/ดูคอมเมนต์และคอมเมนต์ตอบกลับ รวมถึงกดถูกใจคอมเมนต์และรายงานคอมเมนต์
  • มีการแยกหมวดหมู่ และพัฒนาให้สามารถแทรกลิงก์พร้อมพรีวิวได้
  • มีเมนูส่วนตัว เช่น ล็อกอินด้วย Google แก้ไขโปรไฟล์ และจัดการโพสต์ที่ฉันเขียน

ฟรอนต์เอนด์

ปกติผมทำงานฝั่งแบ็กเอนด์เป็นหลัก แม้จะพอทำฟรอนต์เอนด์ได้ แต่ไม่ได้ทำได้เก่งมาก เลยต้องยืมพลังของ AI มาช่วยครับ

บริการที่ผมใช้คือ bolt.new
(ยังมีวิธีใช้แบบ open bolt โดยใช้ API KEY ของตัวเองบนเครื่องโลคัลได้ด้วย)

มันเป็นเว็บไซต์ที่สามารถสร้างฟรอนต์เอนด์แบบง่าย ๆ ด้วยภาษาธรรมชาติได้

  1. ผมแค่เขียน requirement แบบคร่าว ๆ แต่กลับได้เว็บไซต์ที่ถูกใจมากตั้งแต่แรกเลย
  2. เลยคิดว่า 'โห! นี่มันสุดยอดมาก' แล้วก็ค่อย ๆ เพิ่มฟีเจอร์เข้าไป
  3. เพราะควบคุมรายละเอียดได้ ทำให้ฟีเจอร์ส่วนใหญ่ถูกสร้างออกมาได้เกือบสมบูรณ์แบบ
  4. 'ถ้ามันจบแค่นี้ก็คงดี...' แต่ปัญหาเริ่มจากตรงนี้ครับ
  5. พอจะเชื่อมต่อ API ที่ผมสร้างเอง ทุกอย่างก็เริ่มพันกันไปหมด
  6. ดีไซน์ที่เดิมทำไว้ดีแล้วเริ่มพัง และ error ก็เกิดขึ้นเรื่อย ๆ
  7. เครดิตสำหรับการสร้างก็เริ่มใกล้ถึงขีดจำกัด...
  8. สุดท้ายมันไปต่อไม่ไหวจริง ๆ เลยย้อนกลับไปก่อนเชื่อม API แล้วดาวน์โหลดโค้ดมาทำบนเครื่องโลคัล
  9. จากนั้นผมก็เริ่มทำงานร่วมกับเพื่อน AI คนที่สอง
  10. นั่นก็คือ Cursor
  11. พอทำงานบนเครื่องโลคัลและเชื่อม API โดยตรง ผลลัพธ์กลับออกมาดีกว่าที่คิดมาก
  12. นอกจากนี้ Cursor ยังควบคุมได้ละเอียดกว่า และรองรับการย้อนกลับ การเข้าใจบริบทเฉพาะส่วน การอ้างอิงเอกสารแยกต่างหาก ฯลฯ จนช่วยสร้างออกมาได้เกินเป้าหมายที่ผมคิดไว้

และแบบนั้น ผมก็พัฒนาฟรอนต์เอนด์ตามเป้าหมายได้สำเร็จครับ

ปิดท้าย

พูดแบบไม่ทันตั้งตัว แต่ Rust สนุกมากจริง ๆ ฮ่า ๆ ไว้ถ้าจะยกระดับแบ็กเอนด์ในอนาคต ผมอยากลองเปลี่ยนไปใช้ Rust ดูครับ

ฝากแวะมาเยี่ยมคอมมูนิตี้ Rust ที่ผมสร้างด้วยนะครับ 🙏 ตอนนี้ยังมีโพสต์ไม่เยอะมาก แต่ผมตั้งใจจะแปล Hacker News มาลงด้วย และถ้ามีกิจกรรมต่าง ๆ ก็จะพยายามนำมาโพสต์เรื่อย ๆ

ครั้งหน้าจะกลับมาทักทายด้วยคอนเทนต์ที่ดียิ่งกว่านี้ครับ
ช่วงนี้ผมเริ่มเขียนโพสต์ใน GeekNews ทีละเรื่องแล้ว พอมาคิดดูแล้วก็สนุกดีเหมือนกัน ฮ่า ๆ
ถ้ามีเวลา ลองแวะไปดูโพสต์ก่อนหน้านี้ของผมด้วยนะครับ
(https://th.news.hada.io/topic?id=18602)

ขอบคุณครับ 😊

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

 
youknowone 2025-01-08

ขอแนะนำ https://rust-kr.org/ ซึ่งเป็นเว็บไซต์ที่เขียนด้วย Rust ทั้งหมดเช่นกัน

 
leelou2 2025-01-09

ว้าว ขอบคุณมากครับ 👍

 
dlehals2 2025-01-08

ผมเองก็กำลังลองภาษาใหม่ด้วย cursor อยู่เหมือนกัน และก็กำลังเจอการลองผิดลองถูกคล้าย ๆ กันอยู่เลย 555 คอมมูนิตี้ที่แชร์มานี่เจ๋งมากครับ

 
leelou2 2025-01-08

ขอบคุณครับ 🙇‍♂️
แม้จะมีอุปสรรคอยู่บ้าง แต่ต้องบอกว่าได้ทำงานเร็วและสะดวกมากจริง ๆ เพราะ AI ครับ ฮ่าๆ
dlehals2 ก็ขอให้ก้าวข้ามมันไปได้ด้วยดี และได้สร้างโปรเจกต์ที่ยอดเยี่ยมยิ่งขึ้นนะครับ 🎉