Code Monkey home page Code Monkey logo

zeromall's Introduction

zero mall

  • 基于 go + go-zero + gRPC, 以微服务方式实现的B2B2C通用电商平台.
  • 目标:
    • 综合社区最佳实践, 力求产品级项目, 而不是 demo 玩具.
    • 通用业务单元: 可以自由组合使用.
  • 文档: https://zeromicro.github.io/zeromall/

WIP:

  • 🚀 架构公式: biz = core + unit
    • biz: 产品构成
    • core: 基础服务, 公共服务
    • unit: 业务单元, 通用业务单元

产品:

产品(app/biz) 说明
💖 app/biz/mall B2B2C 电商平台
💖 app/biz/eshop 虚拟商品售卖商城

核心服务:

核心服务(app/core) 服务
app/core/user/authn 用户服务: 注册/登录
app/core/user/authz 用户服务: 访问权限控制
app/core/queue 基础队列服务

服务矩阵:

业务单元(app/unit) 说明
☀️ app/unit/license/key 注册码服务: 售卖 app 密钥
☀️ app/unit/cart 购物车系统
☀️ app/unit/order 订单系统
☀️ app/unit/finance/payment 支付系统

Development:

  • Taskfile.yml
  • ✅ 所有微服务启动脚本, 依赖中间件启动, 都在此.

Server:

Client:

示例服务:

zeromall's People

Contributors

hhstore avatar kevwan avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

zeromall's Issues

RoadMap

related:

  • #1 : research

目标:

  • 基于 go-zero, 以微服务方式, 实现一个通用 B2B2C 电商平台.
  • 服务端: api-server 和 admin-server
  • 客户端: 基于 flutter 设计跨平台 App.

Blueprint:

mall:

实施方式:

milestone 1:

  • 架构设计:

    • 数据库表设计: 照搬 mall 的设计
    • 数据API 设计: 照搬 mall 的设计
  • 核心模块: 优先开发核心模块, 保证最快 release 核心功能子集.

    • 用户账号
    • 商品
    • 订单
    • 支付
    • 市场搜索/推荐.

Business Model

related:

B2B2C 电商系统

  • 开发原则:
    • sql 表不变
    • api 对齐: 参数/返回值不变.

1. 业务模型:

  • 角色划分:
    • 平台侧: B1
      • 物流
      • CRM 客户管理
      • 清结算平台
    • 客户侧:
      • 商家: B2
      • 代理商/渠道/推广: B2
      • 买家: C
  • 根据用户角色, 对需求进行归类.
  • 进而拆分微服务. 目标是复用 数据库表 + API. 并不是完全照抄.
  • 要按照 go 微服务进行更好的拆分+迭代.

平台侧:

  • 第一层 B 端.

商家侧:

  • 商户/店铺
  • 代理商/渠道/推广

C端用户:

  • 普通买家

2. 需求切分/建模:

  • 对一个需求, 要特别区分是属于 B 端, 还是 C 端. 分开设计+开发.
  • 不要混杂一起. 会导致业务混乱+不清晰.
  • 典型场景: 订单系统. 涉及 平台对账/商家月账单/买家个人订单记录.
    • 要分3个维度, 单独分析+建模+开发.
    • API 分开隔离, DB 表有领域划分.

research: some open source e-commerce platforms

一些开源电商平台调研:

目标:

  • 尝试基于 go-zero生产级别微服务最佳实践方式写一套电商平台.

Why?

  • 既然有那么多电商系统, 为什么还要再写一遍?
  • 原因:
    • 这些大都是单体项目, 非微服务.
    • 这些大都是 demo 级别(超小企业架构), 非规模以上企业(有志于成为这类)的架构实践.
    • 方向从一开始就错的, 无法从小做到大.
    • 不是用 go-zero 写的. 学习一门新技术, 最好的方式, 就是用他写一个产品.

重点参考项目:

  • 这个项目, 覆盖后端/admin/app, 完成度很高. 且文档非常详细.

mall:

server:

admin:

app:

Java:

Golang:

PHP:

laravel:

ThinkPHP:

Python:

  • https://github.com/odoo/odoo
    • ⭐⭐⭐⭐⭐
    • 这是个超级项目, 前身是 OPEN-ERP. 对, 是个 ERP 软件. 功能非常庞大.
    • 非常老的一个项目, 活到今天, 且是开源社区非常赚钱的项目.
    • 源码写的一般, 但是架构拆分不错. python2.5 远古时代, 就开坑的项目. 有很多老代码.

Django:

ref:

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.