MarioLuo 最近的时间轴更新
MarioLuo

MarioLuo

V2EX 第 495604 号会员,加入于 2020-06-20 12:18:41 +08:00
MarioLuo 最近回复了
115 天前
回复了 huangliu 创建的主题 程序员 我和 Tiny RDM 一起勇敢迈向了 1.2 版本
颜值很高 精致的不像开源软件 之前用 medis 很多开源软件刚开始都做的很好 慢慢因为没有盈利就没有更新下去了 希望作者能尽快找到盈利的模式, 可以考虑苹果版本上架付费版本合适的价格,然后海外推广,毕竟有收入才能持续更新。
236 天前
回复了 nitouge 创建的主题 程序员 OpenFeign 使用疑惑
服务拆分后各个服务之间通过 http 接口调用,那么第一个问题考虑的是要不要提供客户端?
第一种: 服务分为多个 maven 模块, 例如: user-api, user-provider, 优点代码复用, 缺点就是版本兼容,适合大量接口调用.
第二种: 调用方写代码调用,优点是按需写、灵活,缺点就是代码重复,适合少量接口调用.
第三种: 单独写一个 sdk 项目,优点是复用,缺点单独维护,也可根据 openapi 文档自动生成.

回到你的问题,如果使用第一种方式:
1. API 包种每个接口返回 VO/DTO, 不要直接返回数据库实体类,实体放在实现模块中,实体转换用 mapstract 即可。
2. Feign 中每个接口建议入参和返回都包装一个实体: UserAddReq, UserAddResp 以后便于扩展而不影响调用方,部分原子接口可不用包装比如根据 id 获取用户信息: Result<UserDTO> getUserById(@PathVariable("id") Long id);
3.因为我们是 bff 模式,原子服务的 service 层尽量返回实体,控制层包装转化为 DTO/VO;
4.目前我们是返回的 Result<?>, 然后 Result 里有个 tryThrow()方法,由调用方控制,灵活性更大,也可以用 Decoder 方式;

另外一个小地方命名冲突: 一般会在 bff 服务中请求响应都叫 XXxReqVO, XxxRespVO, 而在原子服务叫: XxxReq, XxxResp 。

我们实际中采用第一种和第二种混合: bff 服务调底层服务用第一种,相对独立或外部的服务调用使用第二种。
根据个人遇到的情况来看,大致是项目没有约定规范、不同开发按照自己的命名和风格随意、新人对项目不熟悉、偷懒对第三方返回数据没有转换,说白了还是技术水平问题,但是归根结底还是管理问题。我的建议了就是提出问题和后端人员,讲道理方式沟通。
2023-03-28 11:07:45 +08:00
回复了 Emptyh 创建的主题 生活 男性买衣服一般去哪
@Emptyh Zara, 优衣库, Gap ,美邦 风格都比较好看,相对 Zara 风格更潮一点,可以都试试看
2022-08-16 11:34:04 +08:00
回复了 shilianmlxg 创建的主题 程序员 BOSS 直聘的那种 im 聊天的是怎么实现的呢
@Goooooos plantuml 好像没这么好看
2022-08-16 08:32:07 +08:00
回复了 shilianmlxg 创建的主题 程序员 BOSS 直聘的那种 im 聊天的是怎么实现的呢
@LeegoYih 请问下用的什么画图工具
2022-08-14 22:55:55 +08:00
回复了 juejinloop 创建的主题 信息安全 chrome 密码泄漏了, 才知道用 chrome 保存密码等于裸奔
才从 lastpass 切换到 google chrome 的密码管理器,如果真是如主题所说的那样,又得切回去了
2022-08-12 10:30:55 +08:00
回复了 voidmnwzp 创建的主题 程序员 手写 api 文档写得想跑路了
@bitmin smart-doc maven 插件 自己扩展下上传到 yapi 可以实现,但是有个问题,多分支开发怎么弄,yapi 本身的文档管理功能没有多分支,多版本的概念
2022-08-12 07:53:38 +08:00
回复了 voidmnwzp 创建的主题 程序员 手写 api 文档写得想跑路了
如果是用的 spring ,可以用这个 Idea 插件,从标准 Java doc 生成代码: https://github.com/jetplugins/yapix
关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2545 人在线   最高记录 6679   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 24ms · UTC 04:03 · PVG 12:03 · LAX 20:03 · JFK 23:03
Developed with CodeLauncher
♥ Do have faith in what you're doing.