ja为什么要分为serv层,dao层,controller层?
作者:卡卷网发布时间:2025-01-09 18:39浏览数量:87次评论数量:0次
只能说很多人没的做过复杂业务,就觉得一些分层设计,或者DDD这种设计方没啥用。。
像现在很火的跨境电商场景,从用户进入到最后下单、支付、发货、售后,每个环节都涉及的很多复杂的问题,从用户下单开始,就有不同的订单类型(自营、三方、托管等等),不同的优惠类型(满减、打折、红包、赠品、权益,各种花式营销方法),不同的支付方式(微信、支付宝、银联、各种国外支付方式、各种贷款付),不同的风控方案、不同的发货方式(海运、空运、陆运,各种乱七八糟混合运输),不同的物流承运商(各种运输公司、快递公司),不同的售后保障(退货、退款、纠纷、各种乱七八糟保险)等等。
因为是跨境业务,面向不同的国家,所以又有国不同家的差异,如不同的语言,不同商品合规要求(这个国家不让A,那个国家不让),不同的本地支付合作商,不同的本地物流承运商,不同的本地售后方式,不同的营销方式等等。
这些茫茫多的不同,组合起来就是个极其庞大的笛卡尔积。看起来用户只是简单的花了几分钟在上下了个单,实际上后台有非常复杂的一套逻辑在运行。
业务又是在不停发展的,基于成本和效率考虑,我不可能如每次新进入一个国家就从头到尾新开发一套交易,也不可能因为新结一个支付渠道,就要从下单开始改造。最理想的情况是,新接入一个支付渠道只需要在支付的网关层去处理掉新机构的差异就好了,尽量少感知。这样接入的这个新的支付渠道不会带来整体复杂度的升高,当然这是理想情况。
所以各种架构分层理论,包括DDD都是为了解决这些复杂度而设计的。这些理论当然不是完全尽尽美,只能是说前人踩过很多坑后找出来的尽可能优美的解决方案。如何解决复杂度是软件工程一直要面对的命题。
免责声明:本文由卡卷网编辑并发布,但不代表本站的观点和立场,只提供分享给大家。
相关推荐

你 发表评论:
欢迎