spring 是否限制了开发人员的设计能力

傲_冰 发布于 2018/06/01 09:41
阅读 1K+
收藏 0

现在spring开发一个中小项目很简单, 尤其是spring boot的出现,基本上是controller、service、dao这3层。开发过几个项目、尤其是自己开始搭建几个项目后发现这种方式的问题,controller -> service -> dao感觉也只能是一个面向过程的写法,对象都交给spring去管理,自己也不要去管对象的事,除了实体等一些简单的类,感觉自己好久没去创建一个复杂的对象。业务复杂的时候,service就会很复杂,不易维护。了解过DDD,  也不知怎么在项目中使用起来,领域对象交给spring去管理感觉好奇怪。好困惑,有没有人指点下...

加载中
1
h
hgoldfish

我的回答:是!

单例模式就是面向过程式的编程,是一种最简单最初级的设计泛式。用了 interface  以后才能实现设计复用。用了继承和多继承才能实现代码复用。用 spring 的程序员,为了满足容器强加的各种要求,一般都用不好继承和多继承(接口的默认实现)。设计能力很差。

1
魔力猫
魔力猫

典型的干不好活怪工具。就好像早期,SSH结构,只要出现性能问题,那么直接Hibernate背锅。别管真正原因是什么,直接喷Hibernate就是了。

DDD不会用,和Spring有什么关系呢?难道不用Spring你就会DDD了?

魔力猫
魔力猫
回复 @傲_冰 : 最后,AspectJ相关了解一下,特别是SpringRoo,这是Spring做的一个基于AspectJ的快速开发工具。瞬间就能让你的贫血变充血。不过这两年动静太小,虽然去年发布了2.0版本,但是已经被大家淡忘。
魔力猫
魔力猫
回复 @傲_冰 : 也许说得太直了一些,给你不好的感受了。但是你提出的这个问题,其出发的论点,就是已经把Spring这个框架限定为无法使用DDD设计,只能搞业务脚本,所以我觉得我批评得没问题。
傲_冰
傲_冰
我只是提了个问题,没怪哪个工具不好,如果你觉得你的经验能给别人一点使用spring方面的建议,怎么组织好一个复杂一点的项目,请提供github、博客地址,我虚心请教,另外的还是别YY
1
zxpfss
zxpfss

1、spring的出现时为了解放开发人员对类的的托管做的重复工作而专注于业务实现,所以业务实现的逻辑也是要使用各种设计模式等一系列的思想等,不是只有CRUD,你本身对于spring的框架理解就有问题。

2、设计不是局限于spring的那部分,他只占了整个系统设计的一部分而已,所以不要让自己局限于怎么将spring实现的自己实现,而是要理解spring的框架实现的初衷及实现思想来应用于业务逻辑的实现。

3、想成长先从底层做起,spring可以说是目前开源java框架中最优秀的实现,你可以从底层源码中去学习,你把spring弄明白了,其它也就小意思了。

4、系统设计包含了多方面的,高可用、高性能、高并发,每个设计面都会有不同的设计思想。

0
jack_jones
jack_jones

如果只做crud,即便不用spring也会限制能力,如果深入研究一下spring,学习一下原理,肯定受益匪浅

跟人有关系,跟框架、工具无关

0
畅想的杨海天
畅想的杨海天

springboot如果做深层次,也有需要自己修改源码的地方,这个没有说限制,而是有没有用到特殊的场景

0
rockjava
rockjava

如果觉得被限制了,可以研读一下spring的源码啊,肯定会让你眼前一亮,学到很多。

傲_冰
傲_冰
spring 的源码研究过,还是从interface21这个版本看起的,是学了不少东西,spring只是把反射给代理玩出了艺术,我只是想知道复杂的项目都是怎么组织的,工作的原因,没接触过大型项目是怎么组织的,也没接触过什么牛人
0
猫神
猫神

个人觉得像myabatis代理模式调DAO,这些还是要知道下的,

所以自己弄了个不用spring只用注解,自己弄了很粗糙的东西,能扫描contro,service,能代理dao访问数据库,借此理解spring

 

0
f
freezingsky

用框架是为了更好的项目工程化,不是为了提高员工的能力。当然,对于很多一直都在框架中工作的人来说,脱离了框架,几乎也就GG了。所以,设计能力值肯定会弱化。

0
SevensChan
SevensChan

是的,因為大部分人都沒有相關的設計能力,所以才需要框架。

0
mojiayi
mojiayi

我觉得一门技术本身不应该太复杂,要能用即简洁又耐用的一套技术来实现一个平台或一个产品。从技术角度结合要做的产品来分析,就会发现看似简单的controller -> service -> dao要做得有健壮性、扩展性和高性能其实也很有讲究。另外,更加重要的是人的因素,团队协作水平如何,个人能力是否能充分发挥,这些才是决定项目成败的关键。

返回顶部
顶部