V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX  ›  timethinker  ›  全部回复第 17 页 / 共 17 页
回复总数  325
1 ... 8  9  10  11  12  13  14  15  16  17  
CRUD 也是有讲究的,你看,实际上就两种操作,一种是修改,一种是查询。
简单的 CRUD 从前端到后端甚至数据库字段都完全一致,就是面向数据库编程,Service 都不需要。

复杂一点的,把这两种操作当成两套代码来写:

修改操作多以动词命名,会精炼出业务的实际需要的操作列表,把他们全部放在 Service 里面,每一个方法就是一个事务,或者使用门面模式封装独立的命令执行(命令模式)。

查询操作完全取决于你的消费方需要什么样的数据,把查询的逻辑处理全部放到 Repository 里面,返回 View 或者 DTO 啥的,只专注于如何批量查询并组合成需要的数据,可以是 SQL,可以是 HTTP 请求。很多人喜欢把查询也放到 Service 中,但实际上两者的关注点是不一样的。

读写分离以后好处是显而易见的,查询和修改都可以单独进行优化,最重要的是更加清晰可读。
当然以上只是一种方法,从技术上来讲,写业务代码最大的难度和关键点在于需求是否足够清晰,领域知识是否完备。反之造轮子则不需要这些额外的知识,但终究来讲轮子也是服务于某一个技术点的,最终也是要服务于业务的。
帧同步需要客户端计算结果严格一致,不然就会走偏,服务端在一局的游戏中只扮演数据转发的角色。
2021-03-19 18:50:23 +08:00
回复了 ligiggy 创建的主题 程序员 [不懂就问] 大家是怎么学习加密解密的
如果只是想要知道如何使用,则不必关心背后的算法,只需要学习一些使用案例,在不同的场景下使用不同的算法。
当然如果是专业搞数据信息安全这一块那就厉害了,起码数学功底要够硬。

不要自己去创造加密算法。
不要自己去设计加密算法。
不要自己去实现加密算法。

除非你知道自己在做什么。
spring-data-rest 一步到位
1 ... 8  9  10  11  12  13  14  15  16  17  
关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1295 人在线   最高记录 6679   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 18ms · UTC 23:53 · PVG 07:53 · LAX 16:53 · JFK 19:53
Developed with CodeLauncher
♥ Do have faith in what you're doing.