20210622深化思考service的解耦问题(1) - ziyouzy/2021blog GitHub Wiki

首先对于service的各个功能单元来说,其都是可以自发进行log的,这是service包的特性,也是个很重要的特性 而接下来,怎么说呢,我需要先来总结下我遇到了什么问题:

我已经把modbusbox、errorsbox、eventsbox在析构末尾所进行的close操作,由“Events<-”的方式转变为“log(e)”的方式了
但是接下来想解决的问题却不是很容易想明白了,那就是IO01与IO02的问题,他们本来属于Errors但是要传递至Events
这个逻辑思路是否要推翻呢?

答案是:

不需要推翻,相反的,他其实是解耦思路的底层逻辑:

think for error,not success

这个理念实在是太好了,他作为前人的逻辑思路,高效、合理、完美的框定了Errors的“价值”
于是这里的最正确思路其实是这样的:
既然前辈赋予了errorsBox一个意义,那么即使我知道自己能力不足,也应该自己去为EventsBox,DatesBox,MdobusBox赋予意义 即使我因为能力不足赋予的意义是错误的,我也需要,不得不在此时此刻赋予他们意义 因为既然Errors、Events、Modbus、Dates在设计之初就是四个“地位平等”的管道 那么既然Errors拥有其自身的“意义”(也就是think for error,not success),那么其他3个也必须有某种意义 这样才能让这四个管道继续维持“地位平等”的状态