最近两年来,经常在OO和SQL这两兄弟阵营里转来转去,总想做出个“决断”,结果却是谁也舍不得,手心手背都是肉啊。
十年前学应用开发的时候,SQL是绝对的王者,一直也就用了好几年,搞定了不少事情。有时候也觉着烦,尤其是许多不相干的调用代码,罗罗嗦嗦粘贴个没完。这时候总是想,能不能轻松点啊。
这时,以Hibernate为代表的ORM流行起来了,笔者也就兴冲冲地投入到实践当中。四五年前已经可以很舒服地配合Spring的Hibernate Template写代码了,那是相当地省事啊。虽然Hibernate也不是盏省油的灯,费了不少学习和调试的时间(老实说笔者到现在也算不上精通),好在以OO方式写应用,逻辑代码清晰多了,结构化进一步提高,也算值了。这时候又在想,还能不能更轻松点啊。
而这时,RoR火了起来。笔者在一年半前一接触,立马就迷上了Active Record,以前多少烦恼似乎瞬间烟销云散了,实在是非常的爽快!这个阶段,笔者已经彻底成为OO的迷信者,言必OO,并且深信以AR为代表的DSL是企业应用的最佳解决方案。
整好这时碰到一些传统C/S转B/S的企业应用项目,笔者满以为可以轻松搞定,结果却是出人意料,竟然被这些项目当头打了一棒。由于传统企业应用是以写为主的OLTP,并混合了部分查询相当复杂的OLAP,性能要求还是比较高的,ORM很快就败下阵来。很多时候甚至逼迫笔者重拾SQL,这时候两难的境地出现了:一边是清晰的OO,一边是高效的SQL;普通CRUD是OO的强项,而复杂的查询统计则又是SQL的天赋。笔者于是无奈地在这两个阵营里转来转去,一面到各个技术站点寻求“真理”。可惜这年头,以SQL为代表的传统阵营和以OO为代表的新生阵营有些“水火不相容”的味道,正是“人也多嘴也多讲不清道理”。寻求得越多,也就疑惑得越多。自己也参与并发起过一些争论,结果愈发云山雾水。
工作生活疲累之余,信手翻翻十多年前一度热衷的儒释道经典,这才猛然间有了“不识庐山真面目,只缘身在此身中”的觉悟。答案其实已经在笔者实践的“无奈”当中。由此可见古人“兼容并包”的睿智。
正所谓OO和SQL,本是同根生,相煎何太急。与其争论谁比谁更高更强,不如共同携手解决现实问题。
在此原则下,笔者对项目中SQL不爽的部分改用OO,OO不适合的地方沿用SQL,终于达到了很好的平衡。
于是,曾经深信而后怀疑否定的的AR,携手SQL老大哥,相当痛快地解决了大部分企业应用问题。
对立并非正途,合作才是王道,这个道理在代码领域同样成立。
分享到:
相关推荐
mssql sqlserver 使用sql脚本实现相邻两条数据相减.docx
实战OO_用例建模 实战OO_用例建模 实战OO_用例建模
[SAP ABAP开发技术总结]ALV详解(Fuction ALV 和OO ALV) 图文并茂,详细介绍了Fuction ALV 和OO ALV的相关开发 [SAP ABAP开发技术总结]ALV详解:Function ALV(一) [SAP ABAP开发技术总结]ALV详解:Function ALV...
基于OO4O和VC 6.0 实现Oracle数据库操作C++源代码程序小实例visual studio.net
一个简单的数据库服务器调试工具,还没写完的 现在支持SQL和Oracle两类,SQL只用到一种连接方式,而Oracle用到了ADO和OO4O(部分功能尚未完成), 支持SQL语句执行(支持SQL Server和Oracle语法,并支持关键字高亮)...
oo学习
ABAP OOALV报表开发,定义变量,选择屏幕定义,创建类,调用函数,是学习OOALV很不错的学习资料
1、Windows 95/98/Me系统,将oo2core_6_win64.dll复制到C:\Windows\System目录下。 2、Windows NT/2000系统,将oo2core_6_win64.dll复制到C:\WINNT\System32目录下。 3、Windows XP/WIN7/win10系统(64位系统对应...
OOALV常用功能完整简例,OO ALV常用功能完整简例 - OO ALV 常用功能完整简例(热键单击,双击,帮助,编辑,自定义工具条等)
C_OO思想编程
Oracle Objects for OLE (OO4O) is a product designed to allow easy access to data stored in Oracle databases using any programming or scripting language that supports the Microsoft ...
PPT,需求分析,OO分析前言,PPT,需求分析,OO分析前言,
sap abap oo实现alv框可编辑
oracle oo4o 817安装包oracle oo4o 817安装包oracle oo4o 817安装包
利用OO实现ALV , OO是SAP比较新的东西了,应用可能会越来越广
第二部分通过比较面向过程和面向对象两种思想来说明OO建模的优点。 第三部分从OO思想的角度说明面向对象的基本概念,以及为什么会有这些概念。 第四部分阐明了为什么需要UML、UML带来的什么、UML的发展历史和组成。
23个设计模式标准OO结构,还有code和图
GO.OO声音模块
SAP ABAP开发学习——第10课:OOALV(视频教程) 1.SAP ABAP开发入门学习 2.含视频教程学习、PPT、作业 3.视频非常清晰
0040(Oracle Objects for OLE)是Oracle公司提供的开发基于Oracle数据库应 ...6.0中应用0040来操作Oracle数据库,以实例的方式演示了各种SQL语句的执 行过程。并且结合实例对0040的一些类与其函数做了说明。