`
runthu
  • 浏览: 43494 次
  • 性别: Icon_minigender_1
  • 来自: 合肥
社区版块
存档分类
最新评论

面向对象的概念是否被神化了?

阅读更多
cuckoo framework 中的ajaxdatagrid

<cf:ajaxdatagrid sqlKey="getUserList" header="姓名,年龄,性别,成绩" />

sqlKey指sql语句的代号,保存在xml文件中的。header是列头。

这个tag很简单的数据库中的值给查询出来了。

SQL能不能搞定业务?能!

oracle提供很多功能,如存储过程,函数等等。

我们可以利用存储过程和函数的作用,高效简单的实现业务逻辑。

如果使用目前各式各样的持久层框架,就没有这么轻松了,劈里啪啦花几个小时写一堆所谓的面向对象的代码,最终的目的还是一个,把结果查询出来,说不定查询的速度还慢的要命。

有时候感觉面向对象的概念被神化了,大师们在追捧,大拿们在鼓吹,老板们在赶时髦;其中的涉及的利益链很深,最倒霉的是程序员在疲于奔命的学习、加班。

面向对象是一种想法,不知道程序员们有多少真正了解;老板问你会不会Hibernate,会就给高点工资,于是程序员在想Hibernate是必须要学的;大家应该都明白用简单的方法做好事情的道理,可到了代码开发,偏偏追求时髦,把简单的问题复杂化。

围绕关系数据库进行各式各样的业务应用,我们是否有更简单的方法?

分享到:
评论
44 楼 H_eaven 2008-08-04  
书上说的--
良好的OO开发出的软件有良好的:
1:可重用性,
2:可扩展性,
3:可维护性.

想问大家一句:面向对象的定义是什么?
           也就是:什么是面向对象.
43 楼 wanwok 2008-07-30  
    面向对象不是万能的,也没有万能的方法、思想、方案。只是在目前看来,面向对象是一种比较优秀的思想,为什么他会被“神化”而面向过程又会被淘汰,必然是有他的内在原因。
42 楼 lsy 2008-07-21  
从历史上看,世界万物都是在不断的进步的,编程语言发展到今天,OO占据主打地位,也是有其自身因素和必然规律的。如果摒弃OO,重新回到面向过程开发,那么肯定是违背历史发展,也不会得到大家认同的。OO之所以有今天的地位,我认为他是一门最能把客观世界的物体映射到计算机世界的编程思想,或者说是目前最为接近达到这一目标的实现。
41 楼 idaman 2008-07-20  
runthu 写道
个人的经验,业务上的复用,关键是设计,这里的设计不是说完全靠sql来闯天下,(也许是上面的“一个SQL引发的血案”),也不是java的面向对象的特性所能完全解决的,没有听谁说linux的C源代码就一定没有复用的特性。

其实还是前不久看到的一个争论,以数据模式为核心,还是以对象模式为核心,个人感觉在实际的开发过程中,尤其是以关系数据库为核心应用开发过程中,OO的作用似乎被神化了,是不是有更简洁简单的技术。

OO如火如荼的今天,发出这样的疑问,无疑会被骂的狗血喷头,但为什么开发效率如此低下且bug丛生,尤其是对客户需求的理解经常变动的情况下,程序员更是疲于奔命。

OO思想如果用在api设计层面,体现出来的优势很明显,简洁而优雅。但国内大部分开发者还是局限于行业应用,行业知识能否迅速有效的转化为OO思想,并提炼为干净简洁的OO代码,是个值得考量的事情。


  对比下哪个更容易抽象和理解 ?  哪个更容易学习 ?  哪个更容易维护 ?  sql打天下 ... ...
40 楼 terranhao 2008-07-19  
runthu 写道
哈哈,支持异见,查询只是个简单的例子,维护存储过程和维护java没有本质的区别,关键看你如何组织你的代码。

某些语言天生注定了他不好维护.比如transaction sql或者pql sql.代码组织得好只能让它相对好维护一点.
39 楼 mars李 2008-07-18  
OO 太广泛了,没办法讨论这个,他包含了太多的含义.
能出好几本书.
38 楼 wilson2job 2008-07-17  
回顾OO出现的背景,由于软件业的一日千里,导致开发的规模越来越大。OO应运而生,要求封装,强调重用和维护,更加适用于大规模的软件开发。

OO当然有不足之外,但无疑仍然是当前软件开发的上策。

我觉得讨论OO是好是坏,背景应该是一个“大规模的软件开发项目”,而不是具体的一个SQL语句。
37 楼 starfeng 2008-07-17  
1. OO没有被神化,只是因为真正懂的人不多
2. 现有的设计都借了OO的名,却大量违背OO的真谛。希望通过现有设计去理解OO的人只有更少。
3. OO的思想不仅是程序的思想,只要人存在,他就永不过时
4. OO不是唯一的思想,但是,若说程序设计只有2种思想,那么其中之一就有OO
36 楼 pyczh 2008-07-17  
学习!!!
35 楼 lurena 2008-07-17  
这认为,这还是一个老问题, 适合的才是最好的。世界不能只有一条定律,软件法则也是一样,你的系统是什么样的,要先回答这个问题,不然,讨论都是没有意义。OO是一个思想,至少在我的身边,真正有这个高度的人不多,更何谈用好。
34 楼 runthu 2008-07-16  
chengj 写道
面向对象是好东西,这一点不必怀疑,看看那些经典的设计模式就知道了。问题是好东西也得用在合适的场合才能发挥其优势,如果使用的场合不当,不但不能发挥其优势,还会带来相反的结果。现在有些人对面向对象了解的还不够深入,但是在设计,编码中言必提面向对象,认为凡是使用面向对象都是正确的,先进的,反之则是落伍的。这种观点是错误的,对面向对象来说也是不公正的,棒杀是杀,捧杀也同样是杀。
    以数据库为中心的管理程序,我个人认为还是SQL好些,这个领域不适合面向对象的封装。为什么这么说,是因为这个领域所对应的现实世界是一个面向关系的世界,表与表的关联体现的是彼此的业务关系。 至于有人说复杂的SQL不好维护,其实业务真是复杂到简单的SQL难以描述的程度,采用面向对象描述则更加困难,维护也更困难,同时还损失了效率。


认同,凡是没有绝对。用简单的方式实现必须的功能,这才是硬道理。
33 楼 runthu 2008-07-16  
troyconder 写道
哥们用的什么框架 你写的吗 封装的还不错 其实面向对象是被神化了 那时因为我们生活在神话的时代 所以没办法咯



哈哈,可以看看:http://cuckooframework.sourceforge.net/
32 楼 chengj 2008-07-16  
面向对象是好东西,这一点不必怀疑,看看那些经典的设计模式就知道了。问题是好东西也得用在合适的场合才能发挥其优势,如果使用的场合不当,不但不能发挥其优势,还会带来相反的结果。现在有些人对面向对象了解的还不够深入,但是在设计,编码中言必提面向对象,认为凡是使用面向对象都是正确的,先进的,反之则是落伍的。这种观点是错误的,对面向对象来说也是不公正的,棒杀是杀,捧杀也同样是杀。
    以数据库为中心的管理程序,我个人认为还是SQL好些,这个领域不适合面向对象的封装。为什么这么说,是因为这个领域所对应的现实世界是一个面向关系的世界,表与表的关联体现的是彼此的业务关系。 至于有人说复杂的SQL不好维护,其实业务真是复杂到简单的SQL难以描述的程度,采用面向对象描述则更加困难,维护也更困难,同时还损失了效率。
31 楼 troyconder 2008-07-16  
哥们用的什么框架 你写的吗 封装的还不错 其实面向对象是被神化了 那时因为我们生活在神话的时代 所以没办法咯
30 楼 eivenchan 2008-07-16  
我所在的公司是一个零售企业...
其中结算的业务非常复杂..
而结算系统是几年前用PB开发的.
大量的逻辑都用存储过程完成...
其中不乏2000行的存储过程...
一看就头痛...
就算你能很好的调整你的代码结构也没用...
除非你把这个存储过程拆分成很多个小过程...要不这么长的代码始终是一个问题..
但是当你拆分成小过程时,问题又来了...
存储过程之间调用关系很难管理...交叉调用太多..
而且事务也是一个非常繁琐的问题......
29 楼 yujianqiu 2008-07-16  
我觉得楼主举的例子说明的不是“面向对象被神话”,而是一个不适当的面向对象设计。
面向对象的特性:封装,继承,多态。设计合理的抽象层次、适当的封装是体现面向对象设计水平的重要标准。
对于工具、技术的选择,应该是选择有利于降低我们工作复杂度的工具和技术,而不是选择“简单的技术”。
28 楼 snsnx 2008-07-16  
面向对象是一种思想,一种解决问题的方法,但并不是万能的。不可否认,面向对象是可能会降低一些效率,但是为维护带来了很多好处。而且随着硬件性能的提高,大多数应用看重的是维护性,而将效率降到其次。当然,像很多实时的系统,就没有采用面向对象的语言,目前用C的人还是很多的!
27 楼 bonny 2008-07-16  
试图用一个锤子做出所有的家具的想法很不错。可是很类

所以我用不oo的html做界面比oo的java爽;可是事件机制还是要用到oo的javascript。。。。。。

不同领域 不同需求  合适选择变换工具而已
26 楼 bonny 2008-07-16  
的确oo有缺陷
但是作者的视线或者例子太短浅了

我开发的经验oo大多数情况是第一选择
可是面对流程
面对界面
纯oo显然不行

是以有面向流程的
面向界面的。。。。等等

举例来说你用html风格的语言来定义布局,肯定比oo强
你用oo的风格语言来定义关系逻辑,以及消息互动
肯定比sql强
25 楼 sendita 2008-07-16  
runthu 写道
个人的经验,业务上的复用,关键是设计,这里的设计不是说完全靠sql来闯天下,(也许是上面的“一个SQL引发的血案”),也不是java的面向对象的特性所能完全解决的,没有听谁说linux的C源代码就一定没有复用的特性。

其实还是前不久看到的一个争论,以数据模式为核心,还是以对象模式为核心,个人感觉在实际的开发过程中,尤其是以关系数据库为核心应用开发过程中,OO的作用似乎被神化了,是不是有更简洁简单的技术。

OO如火如荼的今天,发出这样的疑问,无疑会被骂的狗血喷头,但为什么开发效率如此低下且bug丛生,尤其是对客户需求的理解经常变动的情况下,程序员更是疲于奔命。

OO思想如果用在api设计层面,体现出来的优势很明显,简洁而优雅。但国内大部分开发者还是局限于行业应用,行业知识能否迅速有效的转化为OO思想,并提炼为干净简洁的OO代码,是个值得考量的事情。


主要还是对OO的理解还不够,大部分的应用开发和设计人员,对OO的理解都处于比较初级的阶段,作出的设计抽象层次不高,对需求的变化适应能力自然不强了。

相关推荐

    要杀死一切APP 微信应用号是不是被神化了?.pdf

    标题中的“要杀死一切APP,微信应用号是不是被神化了?”引发了一场关于微信应用号对移动应用市场可能带来的变革和影响的讨论。微信应用号是腾讯微信团队推出的一种新型服务,它允许开发者通过HTML5技术创建轻量级的...

    初中语文文摘历史关羽是如何被神化的

    初中语文文摘历史关羽是如何被神化的

    人月神化书

    这种思想对后来的面向对象编程和组件化开发有着深远影响。 5. **项目管理策略**:书中提供了关于如何有效管理软件项目的实用建议,包括设立明确的目标、合理分配任务、制定时间表以及进行风险管理等。 6. **技术...

    被神化的ESB(上)

    【被神化的ESB(上)】 1、ESB概述 ESB,即企业服务总线,是企业级IT架构中的关键组件,主要用于促进不同系统之间的通信和集成。它的核心理念是在分散的、异构的系统之间建立一个中介,允许服务的发布、查找和消费...

    【神化伴侣20091220】

    【神化伴侣】是拼音输入法用户的福音,专业选择键盘将会带您轻松进入最佳选择魔法操作时代... ... ★ 最佳选择 为您喜爱的输入法及其它输入法增加轻松选择、翻页、修改功能,智能ABC输入法在按下空格后、其它输入法在...

    【超级鼠标之神化浏览器】

    【超级鼠标之神化浏览器】是一款专为提升用户交互体验设计的创新性浏览器。这款软件在传统的浏览功能基础上,融入了独特的【超级鼠标】技术,让用户的鼠标、键盘以及Windows操作系统都拥有了超越常规的功能,使得...

    神化世界最佳匹配输入法

    神化十绝: 复制 粘贴 删除 恢复 切换 选择 轻拖 回删 迷你 滚翻 【1(迷你、选择、回删)===36键实现中英文、大小写快速混合输入编辑】 下列(0)-(3)的操作对象是上次点击或者按空格后输入的英文 (0) ;;首字母...

    完美支持神化虚拟鼠键的WPS办公版本

    《完美支持神化虚拟鼠键的WPS办公版本详解》 在现代办公环境中,高效便捷的工具对于提高生产力至关重要。WPS Office作为一款广受欢迎的办公软件,不断更新迭代以满足用户需求。其中,“完美支持神化虚拟鼠键的WPS...

    神化世界-白领程序员专业版

    神化十绝: 复制 粘贴 删除 恢复 切换 选择 轻拖 回删 迷你 滚翻 【1(迷你、选择、回删)===36键实现中英文、大小写快速混合输入编辑】 下列(0)-(3)的操作对象是上次点击或者按空格后输入的英文 (0) ;;首字母...

    被神化的ESB(下)

    【被神化的ESB(下)】:在企业系统集成中,ESB(Enterprise Service Bus,企业服务总线)作为一种中间件,起到了关键作用。它不仅处理技术层面的集成,还涉及非技术因素带来的变化。当接口被擅自修改,导致功能A...

    人月神化电子版

    7. **技术债务**:虽然“技术债务”这个词在布鲁克斯的书中并未明确提及,但他的许多观点预示了这个概念,强调了短视的决策会导致长期的维护问题。 8. **软件工程原则**:布鲁克斯倡导的软件工程原则包括迭代开发、...

    软交换概念文.pdf

    软交换确实是一个不断发展中的概念,涵盖了广泛的呼叫控制和连接控制功能,但不应被神化为解决所有通信问题的万能技术。 总的来说,软交换是下一代网络的关键技术,它实现了呼叫控制的标准化和解耦,促进了网络的...

    人件&人月神化

    此外,书中还讨论了“人月”这一概念的误区,指出人月并不能简单地等同于人力和时间的乘积,因为增加人手可能会导致项目进度的延迟,而非加速。 《人月神话》则由布鲁克斯博士撰写,他在IBM公司担任过"操作系统/360...

    初中语文文学讨论现当代文学钱理群:中学语文课本神化和庸俗化了鲁迅

    初中语文文学讨论现当代文学钱理群:中学语文课本神化和庸俗化了鲁迅

    LamsShZjk:神化中间库接口

    1. **Java核心技术**:Java语言是实现中间库接口的基础,开发者需要掌握Java SE(标准版)和Java EE(企业版)的核心概念,如类、对象、异常处理、集合框架、多线程、IO流和网络编程等。 2. **数据访问接口(DAO)...

    湖南沅江二中高二期末语文[精选].doc

    关羽,作为历史上的人物,因其非凡的人格魅力和显著的战功,逐渐被神化,成为了中国民间广泛崇拜的神祇。文章提到了关羽被神化的两个关键条件:巨大人格魅力和卓越的功绩,如他在三国时期的表现,诸如诛文丑杀颜良、...

Global site tag (gtag.js) - Google Analytics