Tìm Homestay Theo Khu Vực (Sử Dụng Postgres) | Airbnb Series (Part 2)
ฝัง
- เผยแพร่เมื่อ 17 ส.ค. 2024
- Đây là phần 2 trong series, Ronin Engineer cùng mọi người thực hiện một dự án cá nhân - xây dựng một hệ thống Homestay Booking giống Airbnb.
Nội dung bài này:
1. Phân tích & thiết kế API cho use case tìm homestay theo khu vực.
2. Đánh giá các giải pháp Geospatial Indexing.
3. Triển khai sử dụng Spring Boot + Postgres + PostGIS.
Nếu bạn có yêu cầu hay góp ý, vui lòng comment ở bên dưới giúp Ronin nhé.
Cám ơn mọi người rất nhiều.
___________________________
TÀI LIỆU LIÊN QUAN:
+ Source Code: github.com/ron...
+ Slides: docs.google.co...
+ REST API Document Guideline: • REST API Design | Roni...
+ Geohash: www.movable-ty...
+ Geospatial Data Structures: Advantages and Disadvantages: opensourcegisd...
+ PostGIS: postgis.net/
+ ST_DWithin(): postgis.net/do...
___________________________
+ Khoá Backend Cơ Bản: roninhub.com/k...
+ Khoá Backend Nâng Cao: roninhub.com/k...
___________________________
KẾT NỐI VỚI RONIN ENGINEER:
🧑💻 130+ Ronin Engineers: roninhub.com/
📚 Tài nguyên miễn phí: viblo.asia/u/s...
🏟️ Cộng đồng System Design VN: / systemdesign.vn
🗞️ Facebook: / roninengineer
🎞️ Tiktok: / ronin.engineer
___________________________
MỤC LỤC:
00:00 - Intro
00:38 - Requirement Analysis
04:33 - API Design
06:36 - Approaches
13:46 - Requirement of searching by area
15:52 - Option 1: 2D Search
17:52 - Option 2: Geohash
21:27 - Geospatial Indexing
28:45 - Geometry vs Geography
35:06 - Final Query
46:47 - Code (Spring Boot)
49:27 - Testing - วิทยาศาสตร์และเทคโนโลยี
Video hay quá, mong anh sớm ra part 3 🥲
Video quá là hữu ích. Cảm ơn anh ạ
Hóng mãi anh uiiii ❤❤❤
Ndung hay quá, khi nào ad làm thêm use case booking đi ạ 😊
Hay quá, bao giờ ra part 3 vậy anh
Sau khi data modeling thì a mock luôn database à a. Anh có dùng tool gì không ạ
1. nếu bạn muốn test logic function thôi thì b chỉ cần mock data bằng cơm nhé.
2. nếu b muốn generate mock data để test performance của query thì
- Đơn giản: b có thể viết sql dùng FOR và generate_series(), random() để sinh data nhé
- Phức tạp + performance tốt hơn: b có thể dùng dùng Faker Python để sinh ra file dataset rồi import vào DB ha
github.com/joke2k/faker