1 คะแนน โดย vtrapplepie 2 시간 전 | ยังไม่มีความคิดเห็น | แชร์ทาง WhatsApp

ปัญหาในโลกความจริงที่มักพบเมื่อต้องสร้างบริการแผนที่

โดยทั่วไปแล้ว เมื่อพยายามสร้างระบบแผนที่ขึ้นมาเอง มักจะต้องกังวลกับ 3 ประเด็นต่อไปนี้

1. ความยุ่งยากในการอัปเดตข้อมูล

  • ปัญหา: มีอาคารใหม่ถูกเพิ่มเข้าไปใน DB แต่ถ้าจะวาดแผนที่ใหม่ (Tile Generation) ก็ต้องผ่านกระบวนการเตรียมข้อมูลล่วงหน้าที่ใช้เวลาหลายชั่วโมงทุกครั้ง
  • แนวทางของ Martin: ไม่มีขั้นตอนเตรียมข้อมูลล่วงหน้าเลย ตัวระบบจะอ่านพิกัดล่าสุดจาก DB ทันทีในช่วงที่ผู้ใช้เปิดดูแผนที่ แล้วแสดงผลได้เลย

2. ข้อจำกัดของทรัพยากรเซิร์ฟเวอร์

  • ปัญหา: ข้อมูลแผนที่มีขนาดใหญ่และมีคำขอจำนวนมาก ทำให้เซิร์ฟเวอร์ล่มหรือช้าลงได้ง่าย
  • แนวทางของ Martin: ใช้การควบคุมระดับล่างอันเป็นจุดเด่นของภาษา Rust เพื่อลดการใช้หน่วยความจำลงอย่างมาก ทำให้รองรับคำขอจำนวนมากได้แม้บนเซิร์ฟเวอร์สเปกต่ำ

3. การจัดการข้อมูลที่กระจัดกระจาย

  • ปัญหา: ข้อมูลบางส่วนอยู่ใน PostgreSQL ขณะที่บางส่วนเป็นไฟล์ขนาดใหญ่ (MBTiles) ทำให้จุดที่ต้องดูแลเพิ่มขึ้น
  • แนวทางของ Martin: เซิร์ฟเวอร์เดียวสามารถอ่านข้อมูลได้พร้อมกันจากหลายรูปแบบ แล้วรวมให้อยู่ในมาตรฐานเดียวกัน นักพัฒนาเพียงเรียกใช้ API เดียว โดยไม่ต้องสนใจว่าต้นทางของข้อมูลอยู่ที่ไหน

4. ความเหนื่อยล้าจากการตั้งค่าจุกจิกเพิ่มเติม

  • ปัญหา: การแสดงแผนที่ไม่ได้มีแค่ข้อมูลไทล์ แต่ยังต้องเตรียมฟอนต์ ไอคอน ไฟล์สไตล์ และองค์ประกอบอื่น ๆ อีกมาก
  • แนวทางของ Martin: มีความสามารถในการสร้างหรือเสิร์ฟแอสเซ็ตประกอบเหล่านี้จากภายในเซิร์ฟเวอร์ได้เอง จึงไม่จำเป็นต้องตั้งค่าการเสิร์ฟแยกเพิ่มเติม

มันใกล้เคียงกับยูทิลิตีที่เข้ามาจัดการความยุ่งยากระหว่างทางทั้งหมดก่อนที่ข้อมูลจะถูกแสดงบนหน้าจอ เป็นโปรเจกต์ที่ช่วยลดงานลองผิดลองถูกซ้ำ ๆ เมื่อต้องสร้างระบบ GIS ตั้งแต่ระดับพื้นฐาน

ยังไม่มีความคิดเห็น

ยังไม่มีความคิดเห็น