@
alamaya 问题是你到底是怎么考虑代码复用的?
哦,看到一段操作数据库的代码,就不能放在 Controller 里?就得写个 service 装起来,搞不好这个 service 还得先是一个接口,然后做出一个 Impl 实现类来?是这个意思吗?
考虑复用难道不是先考虑一下有没有复用的可能性吗?当根本就没有复用的可能性时,就像我前面说的,业务代码几轮拆分后都是高内聚的,哪有让你复用的机会?也要“复用”吗?
如果你一开始就已经想到了这段代码在业务上就是需要复用的,甚至这个需求就在眼前,那我万分支持你把立刻把这段代码抽出来变成一个 service,给人复用。如果你一开始根本想不出来要在哪里复用,那为什么要复用?这不是过度设计又是什么呢?就像很多项目写一堆直到项目死掉都不会改成实现的接口,美其名曰 [规范] 。。。
退一万步讲,你到了遇到有需要复用的那一天,再把 Controller 里的代码抽出来变成一个复用的 service,这很费事吗?
我见了太多的人,都是嘴上空谈说 [复用] ,我直接问他们关于眼前项目,你觉得这个位置的代码在哪里可能会复用?鲜有答上来的,他们大部分也估不到项目在发展中会遇到什么。只不过是看别人是这么干的,或者说按所谓的规范应该这么干的。。。
除非你已经想到需要的地方,那么再动手,不要过早动手,优先完成业务。这是我的法则。就目前的实践经验看,和我配合的人都挺喜欢的,没觉得我的代码就是屎山。当然有人不认同我能理解,毕竟张口闭口设计规范的人非常之多,谢欢在项目里写一堆到死也不会发生变化的接口的人更不少