面对水货主管的无奈

50 天前
 Super8

公司新来一个技术 Leader ,提的一些问题总是非常的无语。

一大早的来公司,看不懂我的工程架构设计,工程都封装好了,看不懂工程代码,问我这些问题:

我们系统是云平台,要接入多类业务和各类型设计,为什么要做成 SaaS 服务? 为什么要一个接口要建 vo 类 param 类? 为什么要再自己封装一层分页结果 vo 类,不直接把 mybatis plus 的分页接口结果类返回?

我真的相当无语。

工程我都有写 readme 文档,且代码都有注释的。。。

技术管理我看过很多,但是这种技术水平的,第一次见!

我们系统是云平台,要接入多类业务和各类型设计,为什么要做成 SaaS 服务? 为什么要一个接口要建 vo 类 param 类? 为什么要再自己封装一层分页结果 vo 类,不直接把 mybatis plus 的分页接口结果类返回?

我都不想回答,直接给他复制 GPT 回答的结果:

一、为什么要做成 SaaS 服务?

  1. 多租户需求 云平台通常面向多个企业或业务方接入,SaaS 模式天然支持多租户架构( multi-tenancy ),便于管理不同客户的数据隔离、授权、定制化配置等。

  2. 平台可扩展性强 业务方不再直接依赖你的系统内部实现,只通过 API 或租户配置使用服务。后续你升级、修改功能不影响业务方使用。

  3. 降低接入成本 业务方不需要部署自己的系统,降低技术门槛和接入成本。你平台统一提供账号体系、功能服务、数据接入。

  4. 统一运营和监控 SaaS 平台方便做统一的日志、指标监控、授权、计费、异常告警和租户管理,方便后期商业化和服务保障。

  5. 支持“业务+能力”平台化建设 SaaS 模式可以将你的技术能力(如:设备对接、状态监控、告警处理等)封装为平台服务,实现“能力即服务”,提高复用效率。

二、为什么要为每个接口单独建 VO 类和 Param 类?

  1. 解耦业务逻辑与外部接口 每个接口的参数和返回值不直接暴露数据库实体(如 DO 或 Entity ),而是通过 Param 和 VO 进行封装,可以防止结构变动影响外部接口。

  2. 增强接口可维护性 接口一旦发布就要保证兼容性。用 VO/Param 类结构清晰,后期扩展字段不会影响旧字段使用。 例如:新增字段只需修改 VO ,不必影响其他系统。

  3. 避免 Entity 暴露敏感字段 数据库实体类往往包含业务内部字段、敏感数据、逻辑控制字段(如 isDeleted 、createUser 等),不适合直接暴露给前端或外部系统。

  4. 更好支持校验与文档生成 Param 类中可以加上 @Valid 注解、Swagger 文档注解等,便于接口参数校验和自动生成 API 文档。

  5. 支持多种前端适配/多端渲染 VO 可以根据不同前端( Web 、小程序、App )做裁剪或拼装,更灵活。

三、为什么不直接返回 MyBatis Plus 的分页结果类,而要封装自己的分页结果 VO 类?

  1. 隔离框架依赖 你平台可能以后换成 JPA 、Jooq 、DSL 等 ORM ,直接返回 MyBatis Plus 的 IPage 会让业务逻辑耦合于该框架,不利于未来替换。

  2. 返回字段不够友好 IPage 的字段命名如 records, total, size, current 等可能不符合前端/三方接口标准(比如有些接口需要 pageNo, pageSize, dataList )。

  3. 分页结果 VO 可以统一封装元信息 你可能希望分页结果中统一返回:

code 、message

数据列表( data )

当前页、总页数、总条数等

时间戳、耗时统计等平台级信息

通过自定义 PageResult<T> 类,可以统一返回结构,便于前后端协作。

  1. 跨系统统一分页协议 如果你平台提供 API 给外部调用(例如 SaaS 客户或前端),封装自己的分页结果结构能统一整个系统返回格式,提高规范性和兼容性。
7553 次点击
所在节点    程序员
79 条回复
yosoroAida
50 天前
水货技术主管是这样的,我第二家的技术主管还要我帮他装编译器!(后面跑得快赶紧离开这鬼地方了)
Kaiv2
50 天前
还好有 GPT
Super8
50 天前
@yosoroAida 我觉得这是招聘事故。相当影响我们开发士气和业务进度。
LiaoMatt
50 天前
你先把他当成一个平级的新同事就好了, 他只是在熟悉项目和团队成员风格, 刚来几天看不出一个人的成色的, 还是要给点耐心和时间, 个人觉得格局可以先大点
Super8
50 天前
@LiaoMatt 不,已经来快两个月了
LiaoMatt
50 天前
@Super8 如果更高级的领导满意, 你可以尝试替他分担一些的工作内容, 有些事你做了就会有机会; 如果自己没想法, 就正常上班就好, 啥活不是干
bunnyblueair
50 天前
小心给你穿小鞋,通常这类人权斗厉害的很
yosoroAida
50 天前
@Super8 那确实是挺恶心人的
BeforeTooLate
50 天前
问题是招聘的时候你们技术没参与?
Super8
50 天前
@BeforeTooLate 我们技术面没有参与,不清楚是否是关系户
sagaxu
50 天前
谨慎猜测他以前是写 PHP 的,一个 array 包打天下,不需要定义各种 O ,项目也照样能维护
bisyao
50 天前
java 嘛,最喜欢封装了
HENQIGUAI
50 天前
这样的话,开了吧,换俺俺也行
RonnieShanHa
50 天前
能忍 就能活 最少是当下;
除非你硬 另说;
konakona
50 天前
是这样的,我遇到过一个不知道怎么将 ssh public key 放到服务器上 authentication 的,然后当着我们的面问 ChatGPT 了。
HUZHUANGZHUANG
50 天前
你先讲清楚,为啥人家每月赚的比你多的原因?如果你讲不清楚,那人家过人之处你没发现。
bk201
50 天前
估计不是你这个技术栈出身,很多什么博士啊,使用什么 python 的,是没有工程概念的,他们眼里就觉得有那么复杂吗,直接输出不好吗?
alleluya
50 天前
@bunnyblueair #7 确实是这样的 我上家公司的新换技术主管就是搞人 天天开会也只说你们不会做人
laminux29
50 天前
“我都不想回答”
“我觉得这是招聘事故”

这的确是招聘事故,但事故不是主管,而是你。

首先,就算是你的下属,他有问题,你也应该热情地、详细的进行回答,因为这是工作交流,这是你的职责,更何况此事中的人还不是你的下属,而是你的领导。

其次,就算这不是工作,作为技术爱好者,别人在某个技术分支内,有不懂的地方,也很正常。你如果喜欢这门技术,和别人沟通交流,也是热爱技术的体现。如果连这都做不到,从事这门岗位,不累吗?
encounter2017
50 天前
@konakona 这种不是运维岗,不都是现查的吗,用得多才记得

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://ex.noerr.eu.org/t/1138094

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX