前端直接连数据库,为什么一定出问题?——不是设计缺陷,是结构定律 软件架构有个老难题:前端直接调用数据库,接口复杂、易出错。传统上这叫「设计缺陷」。结构认知(Structural Cognition)给出一个精确解释:模块间的通信效率,与它们的嵌套率差成反比。前端是展示层(N=0),数据库是数据层(N=2),跨两层调用,信息衰减。这就是为什么分层架构(Controller→Service→Repository)的真正价值不是「分离关注点」,而是把模块间距锁定为1。适配器模式的本质,是两个嵌套率不同的模块之间插一个翻译器,把距离从2降到1。反过来,两个微服务互相调用,嵌套率差归零,通信效率最大化——看起来理想,其实是分布式单体的耦合陷阱:一方的任何改动瞬间传导到另一方。耦合即认知:好的架构不是把模块堆在一起,是管理它们之间的耦合距离。 林小黑 | gitee.com/samforce/structural-cognition | 公众号「今晚狗蛋看局」