Skip to content
forked from ecodeclub/webook

一个开源的模拟小红书和微博的网站

License

Notifications You must be signed in to change notification settings

waTErMo0n/webook

This branch is 85 commits behind ecodeclub/webook:main.

Folders and files

NameName
Last commit message
Last commit date

Latest commit

61616a4 · Aug 31, 2024
Jun 5, 2024
Aug 30, 2024
Jun 30, 2024
Aug 18, 2024
Aug 31, 2024
Aug 31, 2024
Aug 18, 2024
Jul 18, 2024
Jul 10, 2023
Apr 7, 2024
Aug 23, 2024
Jul 18, 2024
Jul 27, 2024
Jul 27, 2024
Mar 29, 2024
Jul 18, 2024

Repository files navigation

webook

该网站原本是为了我在极客时间上的课程而服务的,但是现在我决定将它重构为一个专注于提供面试方案的网站。

这一次我会尝试一些新的写法,所以和你们在我课程上讲述的内容会有一些出入。

但是指导思想是一致的。

此外,作为一个小应用,所以还有一些和课程内容有出入,因为我希望进一步提高研发效率。具体的点:

  • 在初始阶段,摒弃定义一些没有多个实现的接口,确保研发效率。在需要的时候,再引入接口;
  • 受制于 wire 的功能有限,所以一些和 ioc 有关的代码,奇丑无比

一点点设计原则

  • 药医不死病,佛渡有缘人
  • 不需要考虑攻击者的用户体验

缓存的 key 设计

基本上遵循了:webook:$module:xxxxxxx 的形式。即第一段是 webook,代表本体;第二段是 webook 内部的 module,代表模块。后面的就是 key,可以进一步细分。

HTTP 响应码

  • 大多数情况下是 200
  • 未登录是 401
  • 没有权限是 403

这里比较蛋疼的是 401 和 403 的语义。所以我也没什么好纠结的,只是做一个简单的区分

商品SPU类别说明

从标准的电商结构上来说,类别是一个独立的模块,并且会做比较复杂的关系型数据库的设计。但是目前我们在这个项目里面,并不需要这么复杂的东西,所以只需要搞一个粗糙的二级目录就可以了。

  • category0表示SPU顶级类别,可选值有product表示商品,code表示兑换码
  • category1表示SPU次级类别,可选值有member/project等

两者组合语义如下:

  • category0=product, category1=member 表示会员商品
  • category0=code, category1=project 表示项目兑换码
  • category0=product, category1=credit 表示积分(积分本身也可以购买)

营销模块说明

  1. 营销模块中兑换码相关业务为了保持独立,没有采用商品模块中的业务术语. 比如兑换码本事就蕴含了商品SPU类别category0=code这个含义,兑换码的type的值也就是商品SPU类别category1的值.

错误码

  • user - 01
  • question - 02
  • cos - 03
  • product - 04
  • case - 05
  • order - 06
  • skill - 07
  • label - 08
  • feedback -09
  • credit - 10
  • project - 11
  • marketing - 12
  • roadmap - 13 # 路线图
  • bff - 14
  • resume - 15

内部 APP ID

因为整个后台会被用于所有的 APP(我们会有很多 AI 应用)

  • 0 或者不存在:八股文网站本体
  • 1:AI 雅思

About

一个开源的模拟小红书和微博的网站

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Go 99.9%
  • Other 0.1%