在我自己的开发团队里,我是这么定义垃圾代码的:
【第一,写的代码不在同一种抽象层次里。】
这句话是什么意思呢?比如说,你在DDD的应用层里的某个方法里,比如是下单接口。你做了前端入参的参数校验,这是不行的,这个应该是controller应该做的事情,再比如,你在应用层里,写一些复杂的计算,这些原本应该是领域服务里要做的。
DDD中的应用层是调度和协调的,不应该放以上那些逻辑,这会让人阅读代码的人,觉得你在乱写,很随意的乱写。
【第二,一个方法里代码写的太长了。】
别人阅读你代码的时候,其实不想立刻陷入到细节里的,他是想先知道大概的业务流程,觉得有必要的才深入去看。你一下子就把一坨代码扔出去给别人看,也是不对的。阅读代码的人想看到的是类似下面的结构:
input();
process();
output();
封装成小方法,并体现业务流程,同时确保看起来在同一个抽象层次里。
【第三,只满足刚好能用能跑就以为ok了。】
这个是非常致命的,代码写的又长又乱,还美其名曰,功能没问题呀。那我只能说,你是个没任何技术追求和随意的人,那基本上也就跟成长绝缘了。
你这么做,会让同组的人看不起的,觉得你一点都不专业,写的代码除了维护性差,浪费资源外,没任何好处。基本每写一个功能,都后面维护的人来说,都是灾难。
在周围都是高手的团队里,你是很容易被淘汰的。
【第一,写的代码不在同一种抽象层次里。】
这句话是什么意思呢?比如说,你在DDD的应用层里的某个方法里,比如是下单接口。你做了前端入参的参数校验,这是不行的,这个应该是controller应该做的事情,再比如,你在应用层里,写一些复杂的计算,这些原本应该是领域服务里要做的。
DDD中的应用层是调度和协调的,不应该放以上那些逻辑,这会让人阅读代码的人,觉得你在乱写,很随意的乱写。
【第二,一个方法里代码写的太长了。】
别人阅读你代码的时候,其实不想立刻陷入到细节里的,他是想先知道大概的业务流程,觉得有必要的才深入去看。你一下子就把一坨代码扔出去给别人看,也是不对的。阅读代码的人想看到的是类似下面的结构:
input();
process();
output();
封装成小方法,并体现业务流程,同时确保看起来在同一个抽象层次里。
【第三,只满足刚好能用能跑就以为ok了。】
这个是非常致命的,代码写的又长又乱,还美其名曰,功能没问题呀。那我只能说,你是个没任何技术追求和随意的人,那基本上也就跟成长绝缘了。
你这么做,会让同组的人看不起的,觉得你一点都不专业,写的代码除了维护性差,浪费资源外,没任何好处。基本每写一个功能,都后面维护的人来说,都是灾难。
在周围都是高手的团队里,你是很容易被淘汰的。
展开
32
12