Skip to content
On this page

学习里程碑-基础篇完结


学习里程碑 | 🏆 - 基础篇完结

首先,恭喜你能从第一章坚持学习到这里。这一章,我们就一起来回顾一下我们都学到了什么。

image.png

对照上图的实战路径,我们已经一起走过了需求分析 -> 技术选型 -> 脚手架搭建三个环节,还完成了少量的需求开发任务。

需求分析

从应用场景到团队需求,我们进行了一轮对网关系统必要性的讨论,并将网关系统拆分为三个模块:网关基础物料用户三个服务,分别执行代理、鉴权、静态资源管理等功能。

技术选项

针对于需求分析得出来的结果,最终我们敲定了开发框架以及数据库的选型。对于项目开发的技术选型,从团队业务的角度出发,个人有下述一些想法:

  1. 如果是稳定类型、或者团队主要的项目,切记不要强行尝试新的技术、框架,试错成本太高,一般的团队承受不起;
  2. 不到万不得不要自己造轮子,即使要造轮子也可以使用业务成熟的框架进行二开;
  3. 如果团队不大的情况,项目的基建要尽早统一,可以减少对接成本;
  4. 资源富裕的情况下,边缘类型的新项目、内部项目等尽可能尝试新的技术,技术团队始终要走在技术的前沿,有机会可以以技术驱动业务。

脚手架搭建

在后续章节中围绕着开发脚手架搭建,我们一起学习了 NestJS CLI 的使用、ControllerServiceProvideModule 等基础知识,同时对接了飞书应用数据库日志等小的需求开发。

几乎每一章的代码与步骤都尽可能详细地写在文章里面,包括预期的结果等。力争每一位前端同学都能够从 0 到 1 完成上述到所有内容,如果出现内容描述不清晰或者步骤缺失的情况,请及时联系我补充修改

仓库地址

https://github.com/boty-design/gateway

上述是基础篇中代码的仓库地址,但并不包含配置文件(数据库、token这种都属于隐私性质的数据),需要各位同学自己添加,如果 demo 跑不起来,加群@我解决,同时不到万不得已,建议还是自己从头撸出来

下面是一份全量的 example.yaml 配置,由需要的同学自取:

yaml
MONGODB_CONFIG:
  name: "fast_gateway_test"
  type: mongodb
  url: "mongodb://127.0.0.1:27017"
  username: "root"
  password: "root"
  database: "fast_gateway_test"
  entities: "mongo"
  logging: false
  synchronize: true
MYSQL_CONFIG:
  name: "user-test"
  type: "mysql"
  host: "127.0.0.1"
  port: 3306
  username: "yanxiaofan"
  password: "123456"
  database: "user-test"
  entities: "mysql"
  synchronize: true
REDIS_CONFIG:
  host: "127.0.0.1"
  port: 6379
  auth: "yanxiaofan"
  db: 1
TEST_VALUE:
  name: "cookie"
FEISHU_CONFIG:
  FEISHU_URL: https://open.feishu.cn/open-apis
  FEISHU_API_HOST: https://open.feishu.cn
  FEISHU_APP_ID: cli_xxxxxxx
  FEISHU_APP_SECRET: xxxxxxx
APP_TOKEN_CACHE_KEY: APP_TOKEN_CACHE_KEY

END

至此上半场的内容已经顺利完成,此时你应该依据具备了使用 NestJS 开发服务端的常规能力,接下来我们将进入下半场的内容 - 项目实战

在项目实战中,对于代码的内容会逐步减少,只有部分关键的代码会在文章中展示,原因有 2 个:

  1. 大部分的业务开发代码价值都不会很高;
  2. 每个人的编码习惯不一样,对功能模块的划分、业务的封装都有自己的见解。

所以实战篇的内容主要围绕着架构设计展开,但是最后依然会提供一份简单的实现代码作为参考,所以并不用担心没有参考的代码。

如果你有什么疑问,欢迎在评论区提出或者加群沟通。 👏