对设计模式应用的疑惑

在JDON上学了不少设计模式方面知识。。
在学校的时候,做系统从功能的划分
到数据库的设计都是我们自己一揽子做的。
在设计的时候我们会考虑到系统的扩展性和可变性。
一切从设计模式的思想来说都是完美的。
HIBERNATE使用在上面也确实可以节省开发时间。
但是现在工作了,情况就不一样了。
公司里面做的很多大项目都是以前遗留下来的系统
数据库方面的设计都已经固定下来了。
客户不允许我们动,这样一来HIBERNATE使用起来
根本就不会提高开发速度。
也想过使用视图来解决这种情况,但后来因为速度的问题
客户不让建。
没有办法了,只好使用JDBC来连了。
为了解决很多程序员编程基础不是很好的情形。
公司自己开发一个组件,包装了所有的数据库操作和对STRUTS的操作。
开发人员只需要配置SQL语句和使用JAVASCRIPT来处理返回的数据就可以了。
我分析过系统的需求分析文档,客户的需求变更使用设计模式并不会
降低开发成本。
再者我们开发完系统后,只要客户一验收完后,就可以不管了。
因为项目是分几期做的,下一期不一定是我们公司做。
所以好的扩展性,并不会对公司带来成本方面的利益。
同时它会增加系统的开发成本。
所也我觉得在这里使用设计模式和HIBERNATE并不适合公司的利益。
不知道大家是怎么看的。

我要是这个系统的客户,看到你们这样设计,就不会将项目给你继续做。

问题,国内追求高质量软件的客户太少了,看来以后,软件必须象建筑一样,弄一个监理,只有监理认同的架构设计才可以承包项目。

另外,不用设计模式和HIBERNATE也是可以提高设计的,关键是你们的框架,你们的框架是否符合OO,是否围绕OO,而不是数据?

参考一下JiveJdon3,也是使用JDBC,但是遵循了Evans DDD的严格分层,所以也是一样有好的设计。

这也不能怪我们,本来有一个地方我们肯定他会存在性能问题。
希望客户能够,不按照他的意思来。我们可以采用变通的办法来
实现他的需求。
那知道他说,你们别管性能问题,到时候我买硬件就是了。
我是无语了,竞然他都这么说了,那我们也没有必要去费心了。
我可能不怎么同意你的观点。
现在在我们公司OO不OO都不是很重要了。
最重要的是帮公司节约成本。
能够降低开发成本,为公司创造利润,这是我们公司考核的重点。
我们公司接了一个国际卡的项目,一期是IBM做的。
我看了他们的源代码,好像也没有使用什么OO的技术。
使用AJAX+JDBC+JSP直接操作的。
SQL语句直接在代码里面。
我有点疑惑我们经常谈设计模式,OO但是在项目使用的人
好像不多。
我也只是在学校里做项目的时候会按照设计模式来走。

>现在在我们公司OO不OO都不是很重要了。最重要的是帮公司节约成本。
能够降低开发成本,为公司创造利润,这是我们公司考核的重点。

这两者不矛盾,使用OO以后,随着项目的深入,反而效率提高,越做越快,而传统方式则是越做越慢。

其实,设计就是这样,你不可能逃脱设计,一开始你求成本低,快,做好了,除非这个系统你不再做了,否则后面就要补设计这个课程,这是最简单的软件道理。

将OO和成本对立起来的观点只能说是浅显的,非得撞南墙才相信,属于朴素意识,没有软件专业意识,这也是教育和培训的失败。


有时候我就想我们宣传OO是不是弄错对象了。
要是所有的IT老板都认为OO是解决软件危机的根本之道。
那OO在中国的推广就有戏了。
还有一个原因就是中国的客户不是很成熟。
项目分期做,前期是你做,后期就不知道是谁做了。
所以公司里面大都只管现在,以后的事都是其它公司的事了。
他们不能扩展更加好,系统只能是轮回到公司了。

你说得很有道理,其实这里面有两个问题:

>要是所有的IT老板都认为OO是解决软件危机的根本之道。那OO在中国的推广就有戏了

现在大家都选择.NET或Java这样OO语言,说明都已经走上OO道路,但是真正OO设计不只是靠用OO语言就可以解决的,很多老板和程序员只是看到流行什么就用什么,而不是考虑为什么用,怎样用更好,这跟教育培训还是有关系,当然,跟文化也有关系。

不重视为什么用OO,就导致软件的拓展性和维护性还是不高,软件业萧条,害了老板和程序员,现在赚钱的软件公司几乎没几个,都靠依附垄断行业吃饭。

上次看新闻,南京好几个软件企业通过CMMI,这有什么用?国外将非OO的 痛苦累的软件项目给你中国人做,再叫你做牛做马,上次报道北京一个软件公司为微软的Vista做向下兼容,都是用汇编编的,好像很了不起,这些都是软件行业的奴隶活,真是感到悲哀。

还有甲方单位对软件架构质量到底达到什么程度没有数,随便软件公司怎么做,自己没有统一的架构设计,就将软件全部(包括整体设计)外包给软件公司做,这是很有害的,这也不符合国际惯用外包方式。其实这些甲方单位也拥有自己的开发队伍,只有进行一些企业内训,就能明白软件架构应该怎样,然后用这个标准去要求软件公司。

否则,最后吃亏的还是自己,当然,最终吃亏的是用这套系统的老百姓,上半年股市行情好,很多网上交易系统不能进入交易,证券公司在电视里说这是“不可抗力”,当时生气很不得跑进电视揍他一顿,自己软件没做好,还用专业词语愚弄百姓,推卸责任。

所以,对软件质量的要求,根源其实已经上升到文化法律上,老百姓对软件系统要求不高,没有时刻用法律武器讨赔损失,法律不严惩这些差的软件带给百姓的损失的错误行为,这些现象不会停止。

不过,现在在Java世界比较好一些,一些架构可以通过框架要求实现,比如甲方单位可以要求软件使用Java实现,采取Struts+Spring+Hibernate或Struts+EJB架构,而且要求需求分析使用Evans DDD建模,这样从OO分析设计到OO架构,双管齐下,软件大体可能不会跑偏,下面就是具体代码细节质量了,这取决于程序员设计模式熟练与否。

楼主说得对,我是第一次在这个论坛说话,但其实两年前已经在这里混了,学到了很多东西,但工作之后,发现很多事都不同了.我们公司接的都是政府的项目,基本上的政府项目都能接到.我们并不是什么时候都用框架开发的,我们最需要是开发效率高,成本低,只要基本完成了他们的需求就可以验收了,基本不需要什么性能和设计之类的,他们有的是钱,多买几台服务器就OK了,我们用的都是其他的开发平台,最主要是这个开发平台能快速帮助我们完成项目就可以了.人家都是分期开发的,你一次开发完,一辈子都能用,人家就更不会叫你做这个项目了,人家用一段时间就需要开发第二期的项目的了.

这个年头公司的利润高于一切阿!!

不是太懂