สร้างคอมมูนิตี้ Rust ด้วย Django และ AI งั้นเหรอ?
(rust-lang.kr)ช่วงนี้ผมเริ่มศึกษาการใช้งาน Rust และคิดว่าน่าจะดีถ้ามีคอมมูนิตี้ที่ใช้งานได้ดี เลยลงมือสร้างขึ้นมาเองครับ ตอนแรกก็คิดว่า 'จะลองทำด้วย Rust ดีไหม?' แต่เพราะมันเป็นคอมมูนิตี้สาธารณะ เลยคิดว่า 'สิ่งสำคัญกว่าคือหลายคนต้องใช้งานได้อย่างเสถียร' สุดท้ายจึงพัฒนาด้วย Django ที่มีประสบการณ์มากกว่า
(รายละเอียดเพิ่มเติมอย่างฝั่งฟรอนต์เอนด์จะเล่าด้านล่างแบบละเอียดครับ 👏)
เว็บไซต์
- คอมมูนิตี้ Rust ในเกาหลี: https://rust-lang.kr
- ซอร์สโค้ดแบ็กเอนด์ (Django): https://github.com/lee-lou2/rust-korea
แบ็กเอนด์
อย่างที่กล่าวไปข้างต้น แบ็กเอนด์ถูกพัฒนาด้วย 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 ของตัวเองบนเครื่องโลคัลได้ด้วย)
มันเป็นเว็บไซต์ที่สามารถสร้างฟรอนต์เอนด์แบบง่าย ๆ ด้วยภาษาธรรมชาติได้
- ผมแค่เขียน requirement แบบคร่าว ๆ แต่กลับได้เว็บไซต์ที่ถูกใจมากตั้งแต่แรกเลย
- เลยคิดว่า 'โห! นี่มันสุดยอดมาก' แล้วก็ค่อย ๆ เพิ่มฟีเจอร์เข้าไป
- เพราะควบคุมรายละเอียดได้ ทำให้ฟีเจอร์ส่วนใหญ่ถูกสร้างออกมาได้เกือบสมบูรณ์แบบ
- 'ถ้ามันจบแค่นี้ก็คงดี...' แต่ปัญหาเริ่มจากตรงนี้ครับ
- พอจะเชื่อมต่อ API ที่ผมสร้างเอง ทุกอย่างก็เริ่มพันกันไปหมด
- ดีไซน์ที่เดิมทำไว้ดีแล้วเริ่มพัง และ error ก็เกิดขึ้นเรื่อย ๆ
- เครดิตสำหรับการสร้างก็เริ่มใกล้ถึงขีดจำกัด...
- สุดท้ายมันไปต่อไม่ไหวจริง ๆ เลยย้อนกลับไปก่อนเชื่อม API แล้วดาวน์โหลดโค้ดมาทำบนเครื่องโลคัล
- จากนั้นผมก็เริ่มทำงานร่วมกับเพื่อน AI คนที่สอง
- นั่นก็คือ Cursor
- พอทำงานบนเครื่องโลคัลและเชื่อม API โดยตรง ผลลัพธ์กลับออกมาดีกว่าที่คิดมาก
- นอกจากนี้ Cursor ยังควบคุมได้ละเอียดกว่า และรองรับการย้อนกลับ การเข้าใจบริบทเฉพาะส่วน การอ้างอิงเอกสารแยกต่างหาก ฯลฯ จนช่วยสร้างออกมาได้เกินเป้าหมายที่ผมคิดไว้
และแบบนั้น ผมก็พัฒนาฟรอนต์เอนด์ตามเป้าหมายได้สำเร็จครับ
ปิดท้าย
พูดแบบไม่ทันตั้งตัว แต่ Rust สนุกมากจริง ๆ ฮ่า ๆ ไว้ถ้าจะยกระดับแบ็กเอนด์ในอนาคต ผมอยากลองเปลี่ยนไปใช้ Rust ดูครับ
ฝากแวะมาเยี่ยมคอมมูนิตี้ Rust ที่ผมสร้างด้วยนะครับ 🙏 ตอนนี้ยังมีโพสต์ไม่เยอะมาก แต่ผมตั้งใจจะแปล Hacker News มาลงด้วย และถ้ามีกิจกรรมต่าง ๆ ก็จะพยายามนำมาโพสต์เรื่อย ๆ
ครั้งหน้าจะกลับมาทักทายด้วยคอนเทนต์ที่ดียิ่งกว่านี้ครับ
ช่วงนี้ผมเริ่มเขียนโพสต์ใน GeekNews ทีละเรื่องแล้ว พอมาคิดดูแล้วก็สนุกดีเหมือนกัน ฮ่า ๆ
ถ้ามีเวลา ลองแวะไปดูโพสต์ก่อนหน้านี้ของผมด้วยนะครับ
(https://th.news.hada.io/topic?id=18602)
ขอบคุณครับ 😊
4 ความคิดเห็น
ขอแนะนำ https://rust-kr.org/ ซึ่งเป็นเว็บไซต์ที่เขียนด้วย Rust ทั้งหมดเช่นกัน
ว้าว ขอบคุณมากครับ 👍
ผมเองก็กำลังลองภาษาใหม่ด้วย cursor อยู่เหมือนกัน และก็กำลังเจอการลองผิดลองถูกคล้าย ๆ กันอยู่เลย 555 คอมมูนิตี้ที่แชร์มานี่เจ๋งมากครับ
ขอบคุณครับ 🙇♂️
แม้จะมีอุปสรรคอยู่บ้าง แต่ต้องบอกว่าได้ทำงานเร็วและสะดวกมากจริง ๆ เพราะ AI ครับ ฮ่าๆ
dlehals2 ก็ขอให้ก้าวข้ามมันไปได้ด้วยดี และได้สร้างโปรเจกต์ที่ยอดเยี่ยมยิ่งขึ้นนะครับ 🎉