首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > Java Web开发 >

很烦恼,到底用框架,还是纯JAVA解决方案

2012-01-31 
很烦恼,到底用框架,还是纯JAVA考虑到版权的问题,公司基本上是决定用JAVA的了。但现在又出现了新问题,到底是

很烦恼,到底用框架,还是纯JAVA
考虑到版权的问题,公司基本上是决定用JAVA的了。但现在又出现了新问题,到底是用框架,还是纯JAVA?
我现在被公司排到一个培训中心学习。JAVA已经学到可以做简单的项目了。
这个学习又学了框架的使用(SSH)。没想到因为使用前要进行麻烦的设置,而且多人合作开发的之后,合并项目的时候,要对XML文件进行复杂的修改(可能还没掌握到巧妙之处),以及经常抛写不知道怎样修改的异常出来,使我对框架的使用不是很感冒。
后来无意之中和该中心的校长的一次谈话中,他对框架的评价更是贬多于褒,更使我对框架提不起兴趣。
但没想到的是,中心教JAVA的老师,对框架却又非常推崇,说可以减少工作量,提高开发效率。

纯JAVA写项目的时候,虽然写Bean、写Form、写Action都比框架麻烦得多,但很多时候,我可以对代码有充分支配权,操作的自由度很大。特别是有些多表链接T-sql语句,连教JAVA的老师都承认,写起来比用框架灵活得多。而公司的项目,有些方面的业务逻辑比较复杂,我很担心用开了框架之后,很多东西被封装起来,到时用起来会非常不方便。

所以现在我就很烦恼,到底是在框架上再多下一些功夫,还是用纯JAVA就算了。
还有一个问题,学框架赌场,老师说了一句话,我印象非常深刻的:用了框架,大家以后就可以不用“new”。是不是“new”一些类出来的时候,会占用很多资源?如果接入服务器的用户多了起来,大家都“new”的话,是不是会对服务器做成很大的麻烦?

谢谢!

[解决办法]
谈谈我的看法
首先,为什么要用框架。看过一句话,我很赞同
框架就是为了实现设计的复用
一个大型的项目,都会有架构师先把系统的整体架构设计好之后,然后程序员
领会他们的思想,再开始编码,这样,不同的程序员写出来的代码可以很好的协同工作。
框架也是如此,现在流行的框架都是很多人一起开发出来,并且不断改进的作品。
充分考虑了整个系统的健壮性,安全性等等。一个团队搞开发的时候,如果大家都会某个
框架,那么可以很容易的明白自己要做什么,怎么做,这是框架的优点之一
其次,框架都是在不断改进,不断完善之中,很多地方,都是大家公认的最佳实践(Best Practise)
对于初学者来说 框架就是一部教科书 可以加快他们的学习进程

然而,由于框架并不总是能符合具体应用的要求,很多地方都是考虑通用的情况,可能会带来一些
效率上,或者其他方面的不足。因此,框架要求使用者对框架有足够深入的了解,必要时候,根据
具体情况改动框架。

总之,对于框架,我是褒多于贬,诚然,很多东西,不同过框架,我们都可以用很灵活的方式
实现,但是,JAVA语言本身就是一门工业化的强类型语言,为大规模的应用而生的,
现在软件也是逐渐向多人构建大型应用发展,所以,我的建议还是用框架。

唉,想到以后大家可能都向编码员方向发展了,惆怅啊
[解决办法]
到目前为止,尚未长时间使用MVC的框架。只是用过taspety 大约1个月。

不好评价框架的详情。


不过,既然这个东西如此流行,我想其道理一定很有说服力。个人认为应该是统一了编码的习惯。

10个人,每人的编码习惯不同,这样大家合作一个项目就会出现很多个版本,这样对于整个项目非常不利。你写的代码和我的连结构都不同,互相看其它9个人的将是非常困难的。虽然结果都出来了,但以后的维护成本将会非常大。

使用框架则正好解决的部分问题,大家都在用同一个东西在做,写出来的也都差不多,都是标签,配置文件和后面的action.详细看具体的某个功能的实现当然就简单的多了,因为那只是局部代码。

如果项目小,2-3个人做,大家约定一下编码规范也是可以的,难道那些MVC出来之前,全世界的人都不编码了吗?呵呵。

配置文件冲突,这个在任何地方都出现,不是框架的问题,而是管理的问题。
[解决办法]
1.如果你能很好的完成框架有的功能你可以不使用框架
自己实现类似框架的东西 是很灵活
但是你不用框架你就不用mvc了吗?
那样你的代码可能较难维护
虽然在你类多的时候mvc也可能产生类爆炸
但是相对还是较成熟 封装的东西也较实用
2.你也可以不用spring
但是spring的ioc是一个比较好的思想
你可以自己使用简单工厂模式来实现
spring的aop也很好 
你也可以使用发射来自己实现
但是spring的背后有一个开源的团队
我想应该会比很多人自己实现的要成熟
3.hibernate的使用是稍显笨重
但是可以省去很多工作不用自己来做
正确使用也不用太担心效率的问题
理论上会比一般人自己实现持久层要好一些

综上:个人认为框架的使用就是为了方便、快捷、避免重复劳动
没有框架我们一样可以完成工作,但不一定可以同样快捷、很好的完成工作
框架的一些思想都是从实际工作中抽象、分离出来的
如果你可以很好的用自己的代码来实现这些思想、代码很灵活、也很好维护、同时开发也很快捷
你完全没有必要使用框架
不要为了使用而使用

[解决办法]
在最初学习的时候,当然是学习纯java,它有助于你理解java底层和内部的一些东西.
不过在实际开始应用时,应当采用框架来完成.
当然,很重要的一点是,你应该有为你的应用选择一个合适框架的能力.这往往是架构师来做的,所以,不是说要使用框架,就可以随便拿一个来用的道理.
框架往往有助于我们整个业务的理解,有助于我们进行代码的重构,减少我们的工作量.

比如,你在开始一个项目前,已经对项目的基本应当采用的架构和技术有了很多了解,并且,你对几种框架有很好的理解.那么,往往,在对这几个框架进行比较,选择的过程中,你会对你的项目的业务逻辑有更进一下的认识,可以说是做了一种更好的抽象.这往往得益于你选择了正确的框架,它会帮助你对当前的业务逻辑或者系统的结构豁然开朗.
[解决办法]

探讨
自己写框架,总不如现成的好吧?毕竟人家是一个team,而且发布了,被到处用了的框架。。。。。。

当然框架不是万能的(记得当年还是一个商业软件框架呢,竟然编译不通过。。。。。C++的,必须自己改了才行。。。。。。)

其实,学习嘛,先IDE,然后框架,等作了一两个项目,回过头来再看基础也没啥不好。

[解决办法]
探讨
学到底都是一样的
关键不在于你用不用框架
关键是框架是否适合你的项目

[解决办法]
1.你如果是公司的项目的实现人员,基本不用考虑使用什么来实现,因为项目的设计架构工程师已经定好了,你照他的要求做就是了;
2.你如果是公司的项目的设计人员,要从项目的大小和客户的需求来设计项目的具体的实现框架;
3.你如果以自己学习为主,那我建议你都看一些,了解现有一些框架,可能以后真正项目中用不上,但这些都是相通的吗!

以上个人意见,只做参考!
[解决办法]


我的个人观点:使用框架是提高开发效率的捷径,人家国外的大师把框架做出来,我们还要固执的使用纯Java的话,就永远也赶不上人家
常听见的一个比喻是人家都已经造好汽车到处开了,我们还在关着门造轮子

要真有研究学术的精神,是应该把Java底层学好,把人家框架的设计精髓学到,把思想和素质提高,简而言之就是把我们与他们的差距先想办法缩短再努力赶超

但是要真说到开发项目,使用优秀设计思想的代表框架是项目稳定性能的保证,虽然我们也可以用Java来实现,但代价太大,我们可以去做一些小的模型,但我不认为任何人有这个时间去真正实现一个大型项目完全不用框架。这是人家几十年前干的事情,我们为什么现在还要去重复这个过程呢?

任何事情都是双面的,我们既不能依赖框架,又要有效的使用框架,衷心希望中国的程序员整理提高,不光是技术上的,更多是思想和素质上的!
[解决办法]
好热闹 我也来说说
对于项目首先要有侧重,稳定? 实时? 安全? 等等
这些取舍决定了你是否用框架,用什么框架
我接触过三个项目 框架不一 但都用了(自己开发的或者是既有框架扩展)
框架明显的好处是便于统一编程风格。
成熟框架也可以提供很好的稳定性,安全性,扩展性
对框架稍加扩展即可很好的实现效率的提高。
我不觉得现在还有不用框架的应用。

楼主想问的可能是对现在刚刚起步的人,是学框架好,还是先一步一个脚印的作出自己的一个东西来好。
我的回答可能比较扯。但是我还是要说。其实你自己做一个东西不见得好。
其一,你肯定要花大时间调试,重构,最后很可能做不出来或者直接错误百出
其二,当你埋头调试的时候你是不会想如何让你的东西更好,因为你不知道怎么才能更好
其三,很多东西你想不到,最后会有很多bug
好处就是你从此对编程有了不一样的认识,你上路了
而用框架也有很多不好处
其一,你使用的框架决定了你的学习曲线,你很可能花大时间学习到最后也吃不透
其二,使用框架会让你忽略掉大量编程细节,为以后买下隐患
其三,学则框架不当,会使你的知识结构不能和公司接轨,白白浪费时间
但我还是推荐你使用框架,为什么,因为大家都在用,你就捡公司用什么你就用什么
这样可以让你在进公司不久站在更高的起跑线上。

再说说我接触的项目。
项目无非是调研,基本设计,详细设计,编码,测试,发布,维护。
不知道你在什么样的公司,我这里做基本设计的是比较牛的,同时有一批牛人作选框架,定制框架的工作。
框架有什么好处?
作为基本设计人员,你不用考虑编程,但是如果发布了20个版本以后可能你就有点发怵,新设计在旧程序上
跑的过吗?如果有个好框架,不用担心,20个版本都是一水的整洁,扩展良好哦
详细设计?不要犯难,流程是一样的,什么流程,上个版本的一拷贝你就知道了,省心
编码?按照规范编就行,机能差不多的拷一个改改
测试?还是上一个测试框架,熟阿,快啊
发布?还是上一个发布脚本,乐啊
维护?代码还是一样的流程,找bug 快啊

有人说5个版本以上见功夫,真对
如果你有时间又有自信还有不已物喜不已己悲的心那就自己编
如果只是为了出东西,那用框架
如果只存高远那么选框架,用框架,扩展框架,做框架
[解决办法]

探讨
老紫竹

你都是用java-bean的方式开发吗?
spring hb struts都不用吗?

[解决办法]
框架正在学习中.我想这要根据项目大小和复杂度进行一个取舍和平衡.根据lz的公司需求,如果是大型的,开发周期长的,多功能模块的,J2EE项目的开发,建议还是用框架开发的好点,因为框架可以提高开发效率,缩短周期,能有效整和和规范模块设计,开发,同时也易于调试和维护.如果项目不大我想就不要用框架来写,还是用jsp+servlet+javabeen的MVC设计模式来好点,因为可以自己灵活组织,设计项目中类的结构.总之,不管是软件开发还是web开发,其核心灵魂都是要以在项目需求复杂多变的情形下,以最大限度的实现代码复用为原则,要做到这些,就需要对项目架构进行分层设计与开发,即将层与层之间进行隔离,如页面显示层与业务逻辑层进行分离,业务逻辑层与数据库访问层进行分离,数据库访问层与数据层进行分离,这样分离的好处就是各自独立,各司其职,当底层代码发生改变时,不会影响到上层,比如说原先采用的是MSSQL数据库,因为项目需求改成Oracle,那你只要动数据层而不会影响到其他层.这也从一个侧面反映出框架易于对数据的封装与维护.
[解决办法]
其实楼主的疑问是两个方面:
1. 框架对于开发产品有没有实质的帮助?
2. 自己对于框架心存疑虑,因为使用了框架之后,很多方面
都被框架包装掉了,剩余的属于黑箱操作,出了问题我该
怎么办?

其实这个问题在Java中特别的突出,因为Java中存在了太多的
框架可供大家选择。不过,我想在是否决定使用框架之前,你应
该了解下面的问题:
1. 无论是否使用框架,良好的设计和完整的文档是比不可少的。
特别注意:框架不可以代替产品的设计,特别是业务逻辑的
建模和设计。基本上所有的框架都只是一个MVC的实现而已,
本身不会代表任何业务相关的内容。

2. 正如你所感觉的一言,使用了框架之后,你有一种无法了解
系统整体运作流程的感觉,有可能到了出现问题也无法解决的
境地。这对于产品后期的调试和优化可能都会存在一定的障碍。

3. 框架真的很重要么? 未必!大家使用框架的初衷基本上都是
想避免一些无谓的重复劳动,简化自己的工作负担。但是对于
一个复杂系统而言,你无法了解系统整体的运作流程的时候,
出现了Bug应该怎么办?怎么定位这个Bug,这个Bug是属于
框架的还是属于业务模型的?甚至可能出现这种情况:修改这
个Bug需要同时调整框架和自己的业务模型,那么你该不该修改
这个框架呢?在这样的情况下,你使用框架带来的好处可能会
远远小于它带来的坏处,因为你在修Bug上面耗费了很大的精力,
想要更加的精益求精就更加困难了。

4. 如果这个产品代表了你们公司的竞争核心,呵呵。不要用现成的
框架,针对产品的特性自己去开发一个,围绕它进行产品开发。
这样开发出来的产品才有竞争优势。因为你可以用现成的框架开发
产品,你的竞争对手就不行么?全球最大的亚马逊书店就自己开发
自己的电子商务系统引擎,而不是使用现成的商务系统引擎。因为
这样才可以突出自己的竞争力。

写了这么多,无非想表达一下自己对于软件开发的一些体会。
良好程序 = 精准的业务建模 + 简洁明确的数据结构 + 合适的开发技术 
+ 清晰的设计文档。
对于一个真正需要商品化的产品而言,框架在很大程度上不可能从数量级上提高产品的质量和降低开发周期。

热点排行