1.概述:
本系统是我在学校实验室进行的,仿照咸鱼app进行制作的二手闲置物品交易管理。仅提供给学校里面的同学们使用,流量不会很大,并没有做高并发等待。
项目基于 goframe 框架搭建,Golang的开发框架比较多,不过基本都是Web"框架"为主。
突出的有点: goframe主要以工程化和企业级方向为主,特别是模块化设计和工程化设计思想非常棒。针对业务项目而言,提供了开发规范、项目规范、命名规范、设计模式、开发工具链、丰富的模块、高质量代码和文档,社区活跃。 突出的缺点: 开源时间较晚,推广过于佛系,目前主要面向国内用户,未推广海外。 |
不同的需求场景,存在不同的选择。选择适合的工具,解决适合的问题。
2.关键表结构设计:
记录一下我负责的关键地方:用户表、订单表、商品表、购物车表,表结构设计遵从数据库三范式,除了主键以外,个别字段也使用了唯一性索引,商品订单表的订单号设计,采用字符加数字组成,字符使用两位字符标识这个订单号,可以快速的校验是否是我的这个业务的订单,而数字部分采用雪花算法思想,时间戳加上用户id以随机数的组合方式进行设计。 保证全局订单的唯一性和递增性。同样对接第三方接口,可以把订单号转换为图形形式的二维码。
对于需要频繁的查询设计覆盖索引,来提高数据查询效率,比如用户表的个人信息的简要信息设计覆盖索引,在有需要呈现简要用户信息的地方可以快速的查询到数据。
3.用户的注册方式:
这里面我还负责了用户的注册方式,我主要有两个注册方式,一个是短信登录校验,另一个是邮箱的方式。具体操作都是使用阿里云或腾讯云的业务,申请资质后对接api文档。
4.购物车的开发:
SPU是定位到产品的概念,但它和产品细节无关。SKU是物理上不可分割的最小存货单元,在使用时要根据不同业态,不同管理模式来处理。
我的这里设计按照SKU进行选择设计,就好比现在这个校园闲置平台有两个小米手机要出售,spu 就是:小米手机,二sku 则是:小米手机 、粉色、6+256G。
正向订单 与 反向订单:正向订单指的是用户选择商品,然后下单付款,创建订单。反向订单指的是:用户发起退款,然后进行商家确认,系统订单库逆向修正,退款。 因为这是一个校园闲置二手交易,不存在发货收获的情况,双反满意后,互相添加联系方式,之后双方约定交易地点和方式。
5.部署:
服务器部署分测试环境和生产环境:
测试环境选择 2核4G , 生产环境选择4核 8G。选择使用nginx进行反向代理,nginx的主要作用如下:
- 定义服务器行为:确定 Nginx 如何处理传入的客户端请求,包括监听的端口、IP 地址等。
- 配置虚拟主机:可以在一台服务器上设置多个虚拟主机,为不同的域名或 IP 提供不同的服务。
- 处理请求路由:决定如何将请求分发到不同的后端服务器或应用程序。
- 设定缓存策略:控制静态资源的缓存方式和时间,提高资源访问速度。
- 限制访问:例如设置访问权限、限制连接数、限制请求速率等,保障服务器的安全和稳定。
- 优化性能:调整诸如缓冲区大小、超时时间等参数,以优化服务器的性能和响应时间。
- 处理错误页面:自定义各种错误状态下返回给客户端的页面。
用户指标观察。