เห็นว่า Bun 1.0 เพิ่มปล่อยออกมา
ก็เลยมาทำการสรุปประสบการณ์
ในการนำ Bun ไปพัฒนาระบบงานเล็ก ๆ ไว้นิดหน่อย
ซึ่งก็สามารถส่งมอบระบบงานได้ดีเลย
มาดูกันว่าใช้อะไรบ้าง
ก่อนอื่นต้องทำความเข้าใจก่อนว่า
Bun นั้นเป็นเครื่องมือเดียวที่มีครบเลย ไม่ว่าจะเป็น
- สามารถพัฒนาด้วย JavaScript และ TypeScript
- สนับสนุน .env ให้เลย
- การจัดการ dependency ต่าง ๆ ให้ ซึ่งทำงานร่วมกับ package manager อื่น ๆ ได้เลย
- จัดการ transpiler ให้
- ทำ bundler ให้ แล้วเร็วกว่าตัวอื่น ๆ อีก
- มี bunx เหมือนกับ npx แต่เร็วกว่า
- มี testing library ให้ ซึ่ง compatible กับ Jest ทำให้ใช้ได้เหมือนกัน
- มี hot reload ให้
- สามารถเขียน plugin เพื่อเพิ่มความสามารถได้
Bun มีชุดดของ build-in library ที่มีประสิทธิภาพอย่างมาก
ตัวที่ใช้ประจำคือ Bun.serve() สำหรับการสร้าง HTTP server และ Web socket server
มีประสิทธิภาพที่สูงมาก ๆ ซึ่งเคยเขียนอธิบายไว้แล้ว
ส่วนการติดต่อ database นั้นจะมี SQLite มาให้เลย
ถ้าต้องการใช้งาน database อื่น ๆ ก็มี
เช่นตัวที่ใช้งานประกอบไปด้วย
- PostgreSQL ใช้งาน Postgres.js
- MySQL ใช้งาน mysql2
- Redis ใช้งาน node-redis
เขียน HTTP Server แบบง่าย ๆ
[gist id="9ef53a2b4114ee1f73444b1e9e5947d8" file="index.ts"]ในการส่งมอบระบบงานนั้นจะใช้งานผ่าน Docker
ซึ่งทำการใช้งาน based image จาก Oven/Bun
และจะทำการ build ระบบงานออกมาเป็น single exeutable binary
ทำให้การส่งมอบง่ายขึ้น
ส่วนการทดสอบก็เขียนง่าย ๆ
[gist id="9ef53a2b4114ee1f73444b1e9e5947d8" file="my_test.ts"]ลองใช้งานกันดูครับ สะดวกดี
[code] # Install using curl curl -fsSL https://bun.sh/install | bash # Install using npm npm install -g bun # Install using Docker (New!) docker pull oven/bun:latest # Upgrade bun upgrade [/code]อีกทั้งยังมีการสรุป framework และเครื่องมือต่าง ๆ ของ Bun ไว้ที่ Awesome-bun
ขอให้สนุกกับการ coding