Tag Archives: Hibernate

从选择 Java 框架谈谈技术人员的”舒适区”

[前言: 技术人员的舒适区是本文的要说的一点内容, 至于 Hibernate 是否优秀, 那是”专家”才有资格讨论的问题]
这几天, 一位 DBA 朋友很是苦恼. 起因是他所在的开发团队的架构师与程序员准备在接下来的项目中继续采用 Hibernate 作为 Java 框架 . 众所周知(有人说,他没有听到过类似的说法, 所以不能是”众”), 从 DBA 的角度来看, Hibernate 对 DBA 来说如同噩梦, 非常的不友好, 所以 DBA 极力推荐 iBatis . DBA 看来, 在该应用场合下, 应用 iBatis 更容易控制数据库的性能, 而程序员们也不用因为性能低下的 SQL 而一遍遍返工修改程序. 可是开发人员们罗列了各种 Hibernate 的优点证明使用 Hibernate 将会是正确的, 带来的开销是值得的.
DBA 也知道, 在过去几年的时间里, 这个开发团队一直在使用 Hibernate , 开发人员熟悉 Hibernae 的方方面面, 他们自认为针对 Hibernate 有足够的控制能力, 不愿意离开现在的技术环境, 这才是他们反对更换到其他环境下的主要原因.
当然, 今天我不是要比较这两个框架的优缺点. 而是要说说技术人员都会面临的一个很有趣的问题:舒适区.
最近几年, 舒适区这个词我们经常从一些”培训大师”的口中听到,引起了无数渴望成功者的共鸣.其实说的倒是自古以来人皆有之的一个共性.

引用I : 现代西方认知心理学认为”舒适区” (Comfort Zone)是指人们一定限度的感知和联想的范围,在这一范围里,个人或集体能有效地运作,不会出现不自在和恐惧,所以人们会本能地寻找自己的”心理舒适区”。

从”舒适区”的角度上看, 架构师/程序员不愿意更换到其他框架下无疑也有一部分心里因素的问题. Hibernate 已经使用了几年, 对他们来说已经相当熟悉了, 迁移到其他环境下不确定性因素很多, 这样”不确定性因素”给他们带来了不安全感. 所以, 他们自然会熟记 Hibernate 的各种优点, 并期望一直使用下去.
不过换个角度上看, 这种保守性无疑在需要快速面对变化的软件业有一定的风险.

引用 II: 每当人们处在舒适区中,就会有安全感、自信心,觉得自己能够胜任所担当的一切。但如果长时间 处于这样的状态,就像留恋在温水盆里游泳的青蛙一样,等有一天自己想跳出来时却已经太迟了!

就拿这个 Hibernate 来说, 最近就有 FireStar 软件公司在指控 JBoss 公司的 Hibernate 3.0 软件侵犯了其连接关系数据库与面向对象的软件的技术专利, 如果 FireStar 胜诉并要求停止开发该软件, 依赖于 Hibernate 的程序员们该怎么办呢? 这个事情就好比青蛙泡在缓慢加热至沸腾的水中一样,代价恐怕是惨痛的.
作为技术人员, 积极的心态面对变化是必需的. 如果死死的守住一个小技术环境, 回报率自然会下降. 从软件业的发展来看, 也是这样.
oops, DBA 也不要把自己捆在一种数据库上……
–End.
–Updated:
针对 一本正经地道听途说 的回复:

我说的“众所周知”的”众”指DBA 而言, 当然,如果用你没有听过就不算”众”倒也说得过去.
你应该不是DBA吧 ? 从一个开发人员看问题,自然是另外一回事。我们曾经面临这样一个案例: 数据库执行计划走错, 需要修改 SQL, Hibernate 上作这样的修改,并不是很快捷(因为不是直接的数据库SQL, 当然现在的 Hibernate 3.0 支持naive SQL 了)。这个案例,如果放到 iBatis 上,可能只是几分钟的事情. 或许,你已经把 Hibernate 玩得灵活无比, 做起变更灵活无比, 那只能说佩服了。真希望每个项目中的人员都能够有这样的天才.
另外,也不一定是 Hibernate “专家”才可以发表评论. 每个人看问题的角度不同. DBA反对 这个东西,或许有他的理由(正如那篇Blog讨论的”舒适区”) . 不要忘了,一个领域是所谓的专家,可能另一个领域就是新手.
或许你认为别人没引用英文信息就是”道听途说”, 那么 “主观推测’ 算什么呢?