因此,在我的第一家公司工作了 10 年之后,我开始了我的第二份开发人员工作,并没有真正感觉到自己获得了高级开发人员的头衔。这是 Java 开发,但我们正在使用一个贫乏的领域模型,在我看来,该应用程序是一个巨大的难以测试的混乱。不幸的是,我现在使用的代码库完全相同,最近我接受了另一次采访,采访者将他们的 Hibernate 模型描述为轻量级并且只包含 setter getter。因此,这似乎在整个行业中很普遍。
有很多文章将贫血域模型描述为一种反模式,还有一些文章将其描述为对于简单系统来说非常好。但是我还没有看到任何使用 ADM 来充分利用大型企业系统的例子。
有没有人有这方面的经验?是否有任何最佳实践来创建包含可读且实际有价值的单元测试的松散耦合系统?我真的很想为我的工作感到自豪,但我正在失去希望。
编辑:对于提倡包含在服务中的业务逻辑的开发人员:
您如何限制每个服务中对其他服务的依赖?即 OrderCancelService 需要 CustomerAccountService 和 PaymentService 以及 RefundCalculatorService 和 RewardsAdjustmentService 等 这往往会导致测试中出现多个模拟对象,从而使测试过于依赖于实现
您如何限制每个服务方法中的参数数量?由于所有内容都需要传递并且对象不会对自己的数据进行操作,这似乎会导致非常大且令人困惑的方法签名
你对服务对象应用告诉,不问原则吗?我看到很多服务返回值,然后调用服务使用这些值在执行流程中做出决策。