TechPaper

其他

为什么要旗帜鲜明地反对 orm 和 sql builder

builder,最终我们都没有办法为可能出现的线上事故做任何充分准备。这本身就是灵活的代价。你又怎么为事故来准备预案呢?事中简单来说,就是线上的数据库被打爆了。因为查询没有走索引,MySQL
2022年6月5日
其他

DDD 到底是银弹还是垃圾

声称战略设计也是要有方法的。这部分也是很多程序员认为最没用的一部分,我们后面来批判一下这些程序员。战术设计战术设计是纯技术范畴的东西,最让人头痛的就是里面的名词。贫血模式和充血模式:DDD
2021年10月29日
其他

解决 GraphQL 的限流难题

虽然更新、删除操作会对服务产生更多负载,但它们在基于请求响应的限流模型里是按一样的资源消耗量进行计算的。
2021年7月30日
其他

都 2021 了,你还忘记关闭 http body?

的静态分析工具已经强到烂大街的时代,写这些文章除了暴露这些人所在的公司基础设施比较差,代码质量低以外,并不能体现出什么其它的意思了。毕竟哪怕是不懂怎么读源码,这样的问题你
2021年7月23日
其他

消息队列解耦是骗小孩儿的

system,和单系统内的耦合是一样的。解决这种耦合的最简单的方法,在单模块的情况是用依赖反转,在分布式场景下,就是引入消息队列:用消息队列解除上游对下游的依赖在修改之后,每次订单流转只要将
2021年5月30日
其他

微服务的灾难

发一条消息,在字段上尽量满足下游系统,那么我就不用挨个儿去调用他们了,可以很好地进行解耦。从设计的角度上来讲,这确实是比较好的解耦形式。但是你要考虑,逻辑执行和消息发送这两步操作并不具备原子性,除非
2021年5月10日
其他

如何避免大规模线上故障

的用户的请求都无法被执行。下面的手段可以避免请求堆积:延迟控制。在分析过去涉及延迟的事件时,工程师发现大量请求都是堆积在队列中等待处理。服务一般会有线程数或内存使用上的限制。由于服务响应速度
2021年5月7日