也算不上是登山吧,哈哈哈!坐中巴车上山 15 分钟,路程非常山路,自己开车估计得半小时起码。
到了山顶感觉真好,山上有两棵很大的银杏树,去的时候叶子半绿半黄。
下山的时候是走下山的,走了差不多 1 个小时。
服务端
整个月的工作内容基本就是一个后端实习生了……
继续上个月的服务端功能,这个月学习了不少知识。
数据库本来只会使用 typeorm
进行简单的 API 调用,比如 find
之类的简单操作,对于需要聚合多张表的数据也是使用了比较拙劣的办法,查出一张表并根据这张表的关联 ID 进行遍历查询,最后进行聚合,后来经过后端大哥的提示,可以使用多表关联查询来实现,虽然过程中出现了一些 SQL 的报错是后端大哥帮忙给出的解决思路,但是自己对 SQL 的时候确实还是一片空白。
数据库备份则是通过 pg_dump
来进,还原则是通过 psql
进行,这些命令都依赖于 postgresql-client
这个库。
Docker 方面,一是将 GitLab Runner 从部署服务器上运行调整为 Docker 容器运行,以确保每个 stage
的执行过程足够纯粹。
也经历了 Docker 镜像启动时需要添加额外的 hosts
配置,解决 DNS 映射问题,以及自己打包依赖集合镜像。
因为要经历 Docker 镜像的推送,考虑通过登录服务器来操作,利用 ssh-agent
来实现免密登录服务器,以进行一系列操作,比如推送镜像、更新服务等。
特别需要一提的是挂载功能真的很好用。
NestJS 开启了日志功能,便于 API 调试,虽然没做持久化,但是可以直接进入容器查看日志,如果考虑做持久化的话,结合挂载功能实现即可,只不过需要额外考虑日志存储的上限,清除等逻辑。
并且在开发的过程中也发现了,起初数据库设计的不完全,结合数据库迁移 migration 对数据库进行了字段补充。
服务端的单元测试算是其中比较轻松的,连接测试数据库,保证每一个测试用例的纯净,根据业务场景编写单元测试。
部署过程中也为前端仓库添加 CI 、 Docker 镜像制作、自动化等工作,也同时配置了 Nginx 的配置文件,算是简单的尝试了一把。
不仅部署了前端,还针对各环境提供了测试和正式环境的部署,并且对正式环境关闭了端口映射,统一通过网关进行对外暴露(简单尝试了进入容器查询数据库数据)。
办公网环境同时还提供给前端同学可视化 Docker 操作界面 portainer 使用。
看似这个月的服务端学习过程比较顺利,但是我们原业务组的后端被“优化了”,我来接手原业务组 Node.js 侧的业务,还部分接手部署相关的工作。真的是挑战啊!
同时小组有打算尝试接入 AI 来辅助开发的意向,后续计划开始预研。
又能尝试新的事物咯!
- 本文链接: https://zongzi531.com/2023/12/01/%E7%99%BB%E5%B1%B1/
- 版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 3.0 许可协议。转载请注明出处!