DDD之DP

一,还在用传统业务模型么?

1.从一个小需求开始

首先提一个小需求,我用传统的编码方式完成它。

做一个用户注册系统,同时希望在用户注册后能够通过用户电话(先假设仅限座机)的地域(区号)对业务员发奖金。

public class User{
   
    Long UserId;
    String name;
    String phone;
    String address;
    Long repId;
}
public class UserService{
   

    private SalesRepRepository salesRepRepository;
    private User Repository;

    public User register(String name ,String phone , String address){
   
        //检验逻辑
        if(name == null || name.length == 0){
   
            throw new Exception("注册用户名不能为空!")
        }
        //此处省略校验电话号,地址逻辑

        //取电话号里面的区号,然后通过区号找到区域内的SalesRep
        String areaCode=null;

        String[] areas = new String[]{
   "0571", "021", "010"};
        for (int i = 0; i < phone.length(); i++) {
   
            String prefix = phone.substring(0, i);
            if (Arrays.asList(areas).contains(prefix)) {
   
                areaCode = prefix;
                break;
            }
        }

        SalesRep rep = salesRepRepository.findRep(areaCode);

        //最后创建用户,落盘,然后返回
        User user = new User();
        user.name=name;
        user.phone=phone;
        user.address=address;
        if(rep!=null){
   
            user.repId = rep.repId;
            return userRepo.save(user);
        }
}

咋一看这段代码毫无问题,参数进行了检验,业务逻辑还算合理,最终落盘完成了需求。真的是这样么?转备好,接下来,我要开始挑刺儿了。

2.需求分析

我们日常大部分业务代码和模型其实都是跟这个是类似的,貌似我从接触代码的第一天起,就觉得代码应该这样写,直到我看了阿里技术专家团队的文章,只是感觉我的传统思想被打破了,为我打开了一扇新的大门。

从以下

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值