Appearance
学习里程碑-基础篇完结
学习里程碑 | 🏆 - 基础篇完结
首先,恭喜你能从第一章坚持学习到这里。这一章,我们就一起来回顾一下我们都学到了什么。
对照上图的实战路径,我们已经一起走过了需求分析 -> 技术选型 -> 脚手架搭建三个环节,还完成了少量的需求开发任务。
需求分析
从应用场景到团队需求,我们进行了一轮对网关系统必要性的讨论,并将网关系统拆分为三个模块:网关基础、物料、用户三个服务,分别执行代理、鉴权、静态资源管理等功能。
技术选项
针对于需求分析得出来的结果,最终我们敲定了开发框架以及数据库的选型。对于项目开发的技术选型,从团队业务的角度出发,个人有下述一些想法:
- 如果是稳定类型、或者团队主要的项目,切记不要强行尝试新的技术、框架,试错成本太高,一般的团队承受不起;
- 不到万不得不要自己造轮子,即使要造轮子也可以使用业务成熟的框架进行二开;
- 如果团队不大的情况,项目的基建要尽早统一,可以减少对接成本;
- 资源富裕的情况下,边缘类型的新项目、内部项目等尽可能尝试新的技术,技术团队始终要走在技术的前沿,有机会可以以技术驱动业务。
脚手架搭建
在后续章节中围绕着开发脚手架搭建,我们一起学习了 NestJS CLI
的使用、Controller
、Service
、Provide
、Module
等基础知识,同时对接了飞书应用、数据库、日志等小的需求开发。
几乎每一章的代码与步骤都尽可能详细地写在文章里面,包括预期的结果等。力争每一位前端同学都能够从 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 个:
- 大部分的业务开发代码价值都不会很高;
- 每个人的编码习惯不一样,对功能模块的划分、业务的封装都有自己的见解。
所以实战篇的内容主要围绕着架构设计展开,但是最后依然会提供一份简单的实现代码作为参考,所以并不用担心没有参考的代码。
如果你有什么疑问,欢迎在评论区提出或者加群沟通。 👏