老实说我java入门花了好久,后来框架搭起来发现写银行系统的程序相当无聊,就是业务上的增删改查。学了javascript后,觉得javascript代码写的爽快,可能动态语言,而且程序短小的关系吧。
从我的从业经验来看,感觉自己的分层体系结构代码就是CRUD的原因有如下两三种(这里只针对一般的ssh框架或者js+服务端框架):
1、大量的Business logic被写到了表现层(如struts的controller或者是js代码中)。
2、由于未能正确识别服务边界,导致大量真正的商业逻辑散落在表现层、服务层、util类、dao、甚至sql代码、存储过程等。而中间层,则是一个service一个dao等出现。
3、缺乏必要的逻辑,很可能导致系统处于业务在happy path的路上裸奔。
有几个建议如下:
1、js是为了用户体验而实现的,一切都是为了用户体验,除了展示功能,做任何验证也都只是为了体验上的提升,而并不能把真正的业务逻辑验证放在js端,这是非常危险的事情。
2、controller的一切都是为了协助前端视图层展示服务,包括验证,不能将逻辑依赖他。
3、服务层才是真正的业务逻辑宿主,所有的业务逻辑都应经过他验证、认可,同时他也是最后一道保证数据一致性的门卫。
4、一个服务只有简单的crud没有其他任何业务的情况下,并不适合作为一个公共的服务暴露出来,除了其维护自身的页面,他应该是某个服务的附属品。
5、用aop的时候要注意,切忌不停的切片,切多了让逻辑过于分散,会导致失去维护焦点,而其所谓的扩展性往往大部分时候都没什么用。
无论是从安全、业务的完整性上来说,