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

关于企业开发的一些疑义

2012-11-06 
关于企业开发的一些疑问???? 每当我向Boss推荐使用轻量级J2EE的解决方案时,总是遭遇一些质疑,包括对于开源

关于企业开发的一些疑问

???? 每当我向Boss推荐使用轻量级J2EE的解决方案时,总是遭遇一些质疑,包括对于开源软件的质疑,关于OO的质疑,等等。想看看大家的看法,不要讲理论。

?? 1、到底有多少企业级开发在用EJB?

?? 2、为什么不使用分布式架构,不支持多种客户端,依然需要使用EJB

?? 3、企业级开发中是否真的都不使用开源框架和产品

?? 4、成熟的开源框架和产品与商业软件和产品相比哪个更可靠?

?? 5、WebLogic和开源框架(特别是Springframework和Hibernate)进行整合是很不专业的做法吗?

?? 6、使用Hibernate替代Entity Bean是很不专业的做法吗?

?? 7、选择商业软件方案是宗教信仰吗?

?? 8、国内使用OO技术的情况到底怎样?OO本来不就是来做复杂大系统的吗?为什么国内的某些专家却声称OO只适合小项目

有架构师说Entity Bean就是ORM,为什么还要引入Hibernate,岂不是很不专业?

package edu.demo.domain;import junit.framework.TestCase;public class AccountTest extends TestCase {protected void setUp() throws Exception {super.setUp();}protected void tearDown() throws Exception {super.tearDown();}//OO public void testAccountTransfer(){Account send=new Account("1",1000);Account recv=new Account("2",1500);send.debit(500);recv.credit(500);assertEquals(500,send.getBalance());assertEquals(2000,recv.getBalance());}//结构化程序,面向过程public void testAccountTransferForStruct(){AccountDAO accountDAO=new MockAccountDAO();long balanceOfSend=accountDAO.getAccountBalance("1");assertEquals(1000,balanceOfSend);long balanceOfRecv=accountDAO.getAccountBalance("2");assertEquals(1500,balanceOfRecv);balanceOfSend-=500;balanceOfRecv+=500;accountDAO.updateAccountBalance("1",balanceOfSend);accountDAO.updateAccountBalance("2",balanceOfRecv);assertEquals(500,accountDAO.getAccountBalance("1"));assertEquals(2000,accountDAO.getAccountBalance("2"));}}
   在这里主要是通过测试用例来展示OO中对象的行为,结构化程序中如何面向过程建模 15 楼 sslaowan 2007-10-07   gigix 写道sslaowan 写道    本质上来讲,程序分为数据和操作两部分,结构化范型(或者说面向过程)是将其分开对待,而面向对象范型是将其封装在一起来对待。也就是说在结构化范型中更加倾向于先定义数据结构,然后考虑施加于这些数据结构的算法;而OO则倾向于先考虑行为。考虑结构体和类的区别,我觉得关键在于后者包括操作。
    在【WW89】中指出在OO设计中先考虑数据结构会破坏封装,因此提倡RDD。一般的大学教程都说结构化是面向过程建模,而OO是面向对象(过程中的领域概念)建模。我觉得从结构化到OO对于整个思考世界的方式发生了变化,“对象是对象世界中享有责任的一员”【WM02】
    我看过很多教材上写一个纯稚数据类【Fowler99】,然后写一个全是方法的Bean,我觉得这不是OOD。对象是要包括属性,状态和方法的。

    从发展历程上来看,结构化方法【Yourdon78】到面向数据结构的方法到日立方法到OO,就可以看出来其不同。另外C++ Primer那本书从技术实现的角度来区分了两种开发范型。

    这是我对于两者区别的认识,本科毕业论文写的OOD,因此做了大量研究,如有不对的地方,还请gigix多多指教~
这些东西都是早有定论,没什么可指教的。自己去读MIT的编程入门教材,缩写叫SICP的那本。

    说到指教,因为是您提出的问题,我不知道我的回答是不是正确,所以说指教嘛。好的,我去看看那本书。 16 楼 sslaowan 2007-10-07   timerri 写道sslaowan 写道   我觉得如今的大学对于OO的教育太少了,他们把结构化方法当作基础,然后不断的重复结构化方法,按照我的想法,应该大一的时候讲结构化,大二的时候讲基于对象,大三的时候讲面向对象,大四的时候实践面向对象。
    我不太清楚清华北大哈工大这样的国内领先的计算机软件学院对于OO的教学,但至少在我们学校(211院校)这方面的教学非常差。大家都号称懂OO,可是对于OO的发展历史,那些里程碑意义的书籍都没读过。
    有些问题明显可以用OO很好的来解决,可是说服管理者我们使用OO技术真的是非常困难,不知道大多数的公司都是怎么做的,特别是做企业信息系统的公司

oo在软件中的地位远没有那么高....如果4年有3年都是学oo过来的,我很怀疑他能不能真正适合工作。

传统的面向过程编程,通俗来说就是让人模拟计算机的方式进行思考(这里指冯诺依曼结构,其他的结构有不同思考方式如DSP的哈佛结构)。而面向对象的编程,是让计算机来模拟人的思考方式。

面向对象当然好,他让人们能够更容易的理解程序,使程序开发越来越简单,但是,计算机还是会把oo的东西转化为面向过程的东西然后再进行处理。如果仅仅强调oo而不在意计算机的处理方式的话,是不可能写好程序的。更何况,即使我们使用oo思考问题,在很多时候还是要自己转化为面向过程的思考方式去思考(如:线程同步,内存优化等)。

所以说,面向过程的思考方式,才是真正应该在大学阶段打下坚实的基础的。否则,oo只会是空中楼阁。

一般来说,在对运行性能要求比较高的项目中,会主要以面向过程的方式来思考,而对于需求易变,开发时间紧,结构复杂的项目,大多使用oo进行开发。

如果习惯于面向过程开发,不使用oo也不会使开发效率降低,但如果团队里都是新手,oo可能是更好的选择。
   结构化方法是一种开发范型,貌似和计算机思考的方式没什么关系吧(http://blog.sina.com.cn/s/blog_48bc7aa9010009ab.html,随便找的一篇文章,不见得多权威)。至于转化成计算能懂得方式应该是编译器要做得事情吧。程序在内存里数据和操作是分开的,那和在源文件中是不是分开的有关系吗? Core Java。VolumeI,和Code Complete里都说面向过程的方法主要强调分析问题时按照从上到下,逐步求精的方式,而面向对象是先从系统中找到对象。因此我觉得OO才是更正常的思维,Yourdon于1978年写成的结构化分析与设计那本书,1982年和Coad合作创立了OOAD方法,从我的研究来看OO已经不断发展了近30年,而面向过程方法呢?
  
   OO肯定不是万能的,所以我只是问:
  sslaowan 写道  有些问题明显可以用OO很好的来解决,可是说服管理者我们使用OO技术真的是非常困难,不知道大多数的公司都是怎么做的,特别是做企业信息系统的公司

   可能讨论的有点乱,应该将SA SD SP和OOA OOD OOP分开来分析。
   17 楼 tommywu 2007-10-07   我做过sales,我来告诉lz关于bea价格方面,通常来说,卖一个bea产品, 集成商或者开发商会有10%的利润,而用开源,可能用户不会买这个帐, 呵呵。对于中型小型公司而言,技术永远不是最重要的,挣钱第一位。 呵呵。 18 楼 sslaowan 2007-10-07   tommywu 写道我做过sales,我来告诉lz关于bea价格方面,通常来说,卖一个bea产品, 集成商或者开发商会有10%的利润,而用开源,可能用户不会买这个帐, 呵呵。对于中型小型公司而言,技术永远不是最重要的,挣钱第一位。 呵呵。
  那甲方应该知道这些吧,那他们为什么也希望用这些呢?莫非是BEA给乙方回扣,乙方在给甲方回扣?大家这叫共赢?哈哈~ 19 楼 tommywu 2007-10-07   你看看大的甲方都是哪些甲方?  银行?政府? 石油? 都是富裕的一塌糊涂的地方,他们最怕什么?最怕承担责任,用了bea的东西出了问题,他们可以说,啊用了最先进的东西都这样,那我也没办法。 如果他们用了开源,出了问题,相关责任人第一个倒霉。 而且一个大项目,甲方的责任人都是各个厂商的重点攻关对象,呵呵,里面有很多灰色操作,前些年不是一波一波的进人么。 所以啦,国内没有技术积累就是这个问题。 20 楼 tommywu 2007-10-07   没有技术积累也是西方愿意看到的,当初就是这样肢解soviet union的。 楼主有兴趣,可以看看“一个经济杀手的自白”这样的书, 而真正注重实用的民营经济体,很少会去用豪华性的平台。 21 楼 tommywu 2007-10-07   如果从历史角度来讲,我们现在的所谓IT,其实都是美国60年代“曼哈顿计划”的副产品,当年美国就是靠这个拖跨了前苏联,然后,利用货币垄断权,让自己老百姓举债,让全世界来为自己的发展买单。最近有本“货币战争”的书很火啊,楼主可以看看 22 楼 sslaowan 2007-10-08   To tommywu:
   受教不少~所以我觉得企业开发中的某些说法简直就是一本厚黑学。
   不过我发此帖的目的也就在于希望大家能说说到底在选型时考虑的因素是什么。

   ps:我听说有个韩剧叫钱的战争啊~ 23 楼 yeshucheng 2007-10-08   sslaowan 写道tommywu 写道我做过sales,我来告诉lz关于bea价格方面,通常来说,卖一个bea产品, 集成商或者开发商会有10%的利润,而用开源,可能用户不会买这个帐, 呵呵。对于中型小型公司而言,技术永远不是最重要的,挣钱第一位。 呵呵。
  那甲方应该知道这些吧,那他们为什么也希望用这些呢?莫非是BEA给乙方回扣,乙方在给甲方回扣?大家这叫共赢?哈哈~

就向你说的,简单而且直白!

热点排行