第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機(jī)立即綁定

如何設(shè)計酒店預(yù)定系統(tǒng)?

例如来自前端/全栈视角的示例平台有 Airbnb、Booking 和 Expedia。 我的分步方法

这是我要解决的前端系统设计问题之一。敬请期待我从Great Frontend或Exponent完成的更多面试系统设计问题。

1) 定义功能性和非功能性的需求。

目标受众:前端/全栈开发工程师

粗略草图用于前端界面来识别用户界面组件

我们可以使用 React、Redux 和 React-query 来维护状态和抓取数据。

可复用的 React 组件可以是以下几种:

  1. 搜索栏(组件)
  2. 筛选栏
  3. 图片轮播
  4. 星级评分组件
  5. 地图组件
2) 定义接口
  • GET /hotels:查看指定位置的所有酒店
  • GET /hotels/{hotel_id}:查看酒店详情
  • POST /reservations:提交酒店预订请求
  • POST /payments:提交支付请求

APIs: 请求和响应
  • GET /hotels: 可以按价格、房型、酒店设施、分页功能和排序筛选酒店。返回酒店列表
  • POST /预订: 支付成功后,使用客人姓名预订房间

3) 定义:数据模型

我们可以使用如Postgres这样的关系数据库来构建以下模型。

4. 定义高级系统(迭代1)

我们将把服务拆分成微服务,每个微服务将访问其数据库。

  • 宾客服务,处理登录用户的资讯
  • 库存管理服务,展示可用的酒店库存
  • 预订服务,处理酒店预订请求
  • 支付服务:我们将使用例如Stripe的第三方服务

5) 我们如何能够改进和优化系统?

系统层级优化:
  • 图像可以存储在 S3 存储桶中,并通过 CDN 进行缓存
  • 在再次调用数据库之前缓存之前的结果
  • 在访问服务器之前缓存热门酒店
  • 缓存最近浏览的酒店
用户界面性能优化:
  • 使用 React-Query 缓存用户的最近 API 请求
  • 自动预取下一页或图片选择前的内容
  • 支持 /GET 请求的分页功能
  • 根据视口大小加载不同尺寸的图片,如果视口较小,可以加载较小尺寸的图片以支持响应式设计
  • 在搜索时使用 debounce() 函数以防止过多的请求
  • 在 React 组件中使用 useCallback() 和 useMemo() 优化性能
最后,保存下方的图示,请参见下方👇

请务必订阅我的YouTube频道,以获取即将推出的深入系统设计视频。

如果喜欢这篇帖子,请评论并点个赞 👏

简单英语 🚀

感谢您加入我们的In Plain English社区!在您离开前!

  • 确保鼓掌关注作者的动态👏
  • 请访问PlainEnglish.io查看更多内容
點(diǎn)擊查看更多內(nèi)容
TA 點(diǎn)贊

若覺得本文不錯,就分享一下吧!

評論

作者其他優(yōu)質(zhì)文章

正在加載中
  • 推薦
  • 評論
  • 收藏
  • 共同學(xué)習(xí),寫下你的評論
感謝您的支持,我會繼續(xù)努力的~
掃碼打賞,你說多少就多少
贊賞金額會直接到老師賬戶
支付方式
打開微信掃一掃,即可進(jìn)行掃碼打賞哦
今天注冊有機(jī)會得

100積分直接送

付費(fèi)專欄免費(fèi)學(xué)

大額優(yōu)惠券免費(fèi)領(lǐng)

立即參與 放棄機(jī)會
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號

舉報

0/150
提交
取消