由Gavin King的故事所做的感悟

简介: 如果在前几年SSH火热的时候,提起Gavin King,那是如雷贯耳,现在虽然从事数据库管理的部分要多一些,感觉开发都快淡出了自己的能力范围了。但是看到Hibernate的故事还是让人热血沸腾。
如果在前几年SSH火热的时候,提起Gavin King,那是如雷贯耳,现在虽然从事数据库管理的部分要多一些,感觉开发都快淡出了自己的能力范围了。但是看到Hibernate的故事还是让人热血沸腾。
SSH就是Spring+struts+Hibernate 的简称,后来有了Structs2,成了SSH2.
先来看看没有Hibernate之前的Gavin King.(以下摘自http://developer.51cto.com/art/200912/171575.htm)

Gavin King开发Hibernate的主要动机是当时的EJB CMP太过繁琐。那是2001年,Gavin King就职于澳大利亚悉尼的一家J2EE软件开发和咨询公司Cirrus Technologies。
Gavin发现在当时的项目开发中,他总要花很多时间处理Entity Bean的体系架构,这个工作步骤繁冗,结构复杂;而真正的软件核心业务逻辑却很少有时间顾及。他计划搞出一套比Entity Bean更好的方案,帮助所有J2EE的开发人员摆脱CMP的困扰。
他首先将这个想法告诉了自己的老板,Gavin抱怨EJB Entity Bean 1.1的架构复杂,CMP给自己过多的限制。而Cirrus的老板却认为EJB是这个行业的标准,也是当前最流行的技术;他认为,数学系毕业的Gavin还没适应EJB的开发模式,熟悉之后,这样的抱怨会少很多。
但Gavin坚持自己的想法,他希望可以开发出一套简洁的对象关系映射解决方案;同时,他也很清楚,自己从没用SQL开发过任何东西,之前也很少接触数据库方面的东西。这看似是一个不可能完成的任务。但Gavin King坚持这样做。


这件事换做每一个人,都会经历一个很长的低谷期,我不确定他当时的想法是不是确实是成熟的,毕竟大家用了这么多年的东西突然有人跳出来指手画脚确实是挺另类的,有时候想想自己或者身边的人,可能抱怨工作中问题的人不在少数,但是如果真心实地去改变这种情况,你的思想真就高出不少了,至少你的出发点是好的。当然从某种程度上说,抱怨也是一种进步。记得当年崔永元在接受一个采访的时候说,我们就需要抱怨,就需要挑刺,如果我们都懒得抱怨了,那说明是没什么希望了。IT这个生态圈有时候就是如此,一旦注入了新的活力就会越发壮大。新的技术新的框架曾不不穷,不知道他是怎么度过的这两年,比较流传的一个说法是他做的第一件事就是去书店买了本SQL基础的书,但是两年后自己一手设计的框架竟然得到了相当好的反馈,他当时起名为Hibernate的本意应该就是想让数据缓存的犹如冬眠吧。

今天在地铁上想到这件事的时候,发现其实我们每个人都会碰到几次这样的转折点,可能转过去了是希望,可能还是冷墙,很多人都说忙啊,其实有时候真心想做还真能抽出点时间,而且好多事在不明朗的时候,大家都看不到希望,做也可以不做也可以,没有人逼着自己,所以可能慢慢就适应这种安逸和稳定的感觉了。我想Gavin当时可能也是为了证明自己的想法是对的,或者较真的部分,他无论如何也不会想到成功之后的光环,所以说好多事情在规划的时候,不管你规划的多么详细周密,等到你经历了一些事情,经历了一些困难,可能你的思维方式就会发生变化,不要一心想完成一个大作,如何丰富全面的功能,Hibernate也是由版本1,版本2,直到发展成了后来的版本3.

在这个过程中,可能最难克服的困难就是自己,因为很可能一念之差就会选择放弃,大家都在这么做,这么用,自己重新来做可能是碰到各种的细节,如果领导直到你还在创新那个东西,可能还会觉得你在瞎折腾,浪费资源和效率。权威意识在内心还是根深蒂固的。
不管学习何种技术,可能大家都会去学习什么是什么,如何能够带着启发式的学习,可能会问出很多意想不到的问题,任何软件都有不少的问题或者bug,新技术,新框架确实有很多,但是很多核心的思想还是不变,我当时学习的时候发现就会追求一些时髦的名词,任何技术都听它如何的高大上,但是使用的时候都是三脚猫功夫,眼高手低。最后感觉时间也花了,但是越学发现自己真的懂得越少了。我们都被各种框架给绑架了。一旦被这种情况束缚,任何的改动都得费劲心思,一遍在代码中加入一些很直白的逻辑处理加工代码,一遍在推崇面向对象的思想。
举一个微信的例子,大家可能会沉浸在微信的各种功能之中,生活感觉现在都要被微信丰富强大的功能给垄断了,qq用的少了,qq空间用的少了,都用朋友圈来代替了,微博相对也少了,有朋友圈,短信发的也少了,微信简单点几下就可以发送各种表情和祝福。
电话也少了,可以用简单快捷的留言功能代替,想视频也可以了,想打车,想支付,想买彩票,想做生意都有,但是你回过头来想,最开始的微信功能也是很简单的,据说微信启动界面的那个人就是张小龙强烈建议下加上去的,那可能代表一种孤独,我们每天都在享受生活中的变化,在习惯这些的同时我们的生活也在变化,你回发现我们都在默然接受这一切,不默然又有什么办法呢?:) 生活就是这样你想的越多,做的越多,你的思想就走到别人前面了,如果你不希望老是被人牵着鼻子到处走,还是需要静下心来好好想想,自己每天的工作生活充实吗,有什么能够改进的地方,哪些方面还能够提高。
黎明前的黑暗终究会过去,等待你的可能是成功,可能是失败,就好比买彩票,你买了,可能不中奖,但是你不买,肯定不中奖。
在享受生活带来的安逸的同时,想想自己能够做点什么,可能是一些很细微的改变,一个微笑,一句问候,一次耐心的解释,一次精心的思考。。。

最后Gavin king的生活就此改变,他成了EJB 3.0专家组的成员,在全球孜孜不倦的发挥着这些成功带来的影响力,IT生态圈还在不断的演进。

目录
相关文章
|
5G 网络虚拟化
解决谷歌硬盘大文件下载不了的问题
解决谷歌硬盘大文件下载不了的问题
1157 0
|
9月前
|
敏捷开发 人工智能 监控
任务反馈闭环管理:打造高效执行力的17个关键环节全解析
任务反馈闭环管理是一种确保任务从布置到完成全过程信息透明的管理方法,其核心是通过"计划-执行-反馈-改进"的完整循环,解决传统管理中常见的"任务黑洞"问题。这种机制强调责任明确、流程标准化、反馈及时和持续优化,能够显著提升执行力、团队协同效率和组织的敏捷性。关键环节包括SMART目标设定、标准化执行流程、量化反馈机制和PDCA持续改进。有效的闭环管理需要制度设计、工具支持和流程优化的协同配合,并通过五大KPI(任务完成率、反馈及时率等)进行量化评估。实施闭环管理虽面临员工适应、流程复杂等挑战,但数字化转型和智能化工具的应用正推动其向更高效的方向发展。闭环管理不仅是提升效率的工具,更是促进组织持
880 0
|
缓存 Java API
【揭秘】.NET高手不愿透露的秘密:如何让应用瞬间提速?
【8月更文挑战第28天】本文通过对比的方式,介绍了针对 .NET 应用性能瓶颈的优化方法。以一个存在响应延迟和并发处理不足的 Web API 项目为例,从性能分析入手,探讨了使用结构体减少内存分配、异步编程提高吞吐量、EF Core 惰性加载减少数据库访问以及垃圾回收机制优化等多个方面,帮助开发者全面提升 .NET 应用的性能和稳定性。通过具体示例,展示了如何在不同场景下选择最佳实践,以实现更高效的应用体验。
315 3
|
人工智能 程序员 开发者
如何使用Ascend的ATB加速库?
ATB加速库专为Transformer模型优化设计,基于华为Ascend AI处理器,提升训练和推理效率。本文档详细介绍了如何实现一个ATB算子,涵盖基础Operation、插件机制和Graph Frame三种方式,从环境准备、算子创建、资源管理到最终执行,提供了完整的代码示例和步骤指南,帮助开发者快速掌握ATB算子的开发流程。
在vue3中(vite)引入unocss,安装配置unocss
在vue3中(vite)引入unocss,安装配置unocss
|
JavaScript
Vue中如何获取dom元素?vue方法
Vue中如何获取dom元素?vue方法
|
算法 安全 网络协议
政务网站使用的国密SSL证书申请
国密SSL证书采用我国自主研发的SM2公钥算法体系及国密SSL安全协议,符合国家政策与法规要求,提供身份验证、数据加密和完整性保护,广泛应用于政府机构的信息系统,确保政务数据安全。以下是申请步骤简介。
政务网站使用的国密SSL证书申请
|
机器学习/深度学习 数据采集 TensorFlow
使用Python实现深度学习模型:智能电影制作与剪辑
使用Python实现深度学习模型:智能电影制作与剪辑
550 5
|
SQL 关系型数据库 MySQL
navicat如何获取MySQL数据库的所有表名称
【8月更文挑战第7天】navicat如何获取MySQL数据库的所有表名称
1448 4
|
Unix Linux 测试技术
压测关注指标-ping命令详解
在关注压测指标时,ping命令的ttl值为指标之一,先梳理并记录。
2337 0
压测关注指标-ping命令详解

热门文章

最新文章