该帖已经被评为精华帖
|
|
---|---|
作者 | 正文 |
发表时间:2010-07-29
yangguanghua 写道 淡定 淡定。。。
|
|
返回顶楼 | |
发表时间:2010-07-29
“估计随便哪个不是太烂软件公司都能重新开发一套”,真的吗?
为什么JPA这么多年了,只有hibernate、toplink和open jpa几个实现而已 用J2EE的公司那么多,连IBM、BEA都没有自己的JPA实现? 倒是struts和spring内核比较小,实现起来比较容易。 “算法、数据库、网络、各种应用程序接口、操作系统”是非常重要的,但是除此之外,最重要的是:聪明 打开hibernate源码,你就会知道,没有足够的聪明,你根本无法掌控hibernate这样的千头怪 大部分人没有gavin king和rod johnson那样聪明,想破头也写不出那么复杂的框架。 成不了大牛,花一些时间学习一下框架,研究一下源码,让自己离牛人近一点,有什么不好啊? |
|
返回顶楼 | |
发表时间:2010-07-29
beeke 写道 “估计随便哪个不是太烂软件公司都能重新开发一套”,真的吗?
为什么JPA这么多年了,只有hibernate、toplink和open jpa几个实现而已 用J2EE的公司那么多,连IBM、BEA都没有自己的JPA实现? 倒是struts和spring内核比较小,实现起来比较容易。 “算法、数据库、网络、各种应用程序接口、操作系统”是非常重要的,但是除此之外,最重要的是:聪明 打开hibernate源码,你就会知道,没有足够的聪明,你根本无法掌控hibernate这样的千头怪 大部分人没有gavin king和rod johnson那样聪明,想破头也写不出那么复杂的框架。 成不了大牛,花一些时间学习一下框架,研究一下源码,让自己离牛人近一点,有什么不好啊? 开源是个高度自选择的市场,因为没有选择成本,所以特定领域99%的资源和关注都会流向1到2个项目。你看到啥开源软件出现高度同质性的竞争了? BTW:原本版本的hibernate根本算不上JPA。Bea很早就有自己的JPA(只是他们不叫JPA,而且和toplink一样,它们有GUI),IBM我不知道。而且商业厂商不会做hibernate那样的实现:1,不需要和免费软件竞争。2,hibernate实际上适应的商业面很窄,绝大多数应用hibernate的场景都没有动力使用商业实现(哪怕商业实现更好)---这个是最主要的,其实toplink做的很好,可惜Oracle只拿来卖它的数据库。3,hibernate立足的面其实很窄,就是一个数据库的java OO接口封装(这点它比不上toplink,hibernate一开始立足于减少程序员处理JDBC的代码量,而toplink是为了相对高负载系统设计的)。所以你可以看到hibernate从1-3的发展堪称神速,到3以后就明显停滞了(这个和struts是一样的,struts从1.2以后,基本死了)。 Gavin King和Rob属于很有灵气的人,能够开始这种项目需要想象力(特别是Spring)和行动力。但是也用不着神话他们。纯粹就设计而言,hibernate远远比不上Eclipse这样的平台。Spring的源码写的挺漂亮。hibernate就未必了(特别是3以前的版本,也许这就是你觉得打开以后是千头怪吧),hibernate这种不算特别复杂需求的项目,如果真的源码结构特复杂,其实就是它们有不小改进的地方。 不过我的观点不是上面这儿,而是不管今天SSH的代码究竟是好还是坏,其实犯不着去看,这有几个原因: A,SSH其实都是对一个底层问题的封装,作为开源项目,这个过程中会出现很多的演化。而你最后看到那个版本,虽然可能是最优的,但是缺少对演化过程的跟踪,很难学到什么。在目前的版本的SSH,设计上、功能上和框架上都相对稳定,你很难通过一个个版本的演化来查看性能和代码的改进(当然你可以回头看旧版本进行比较,但是我觉得很少有人这么BT吧) B,SSH都是类库型的项目,类库项目在多数情况下的考虑和应用程序的设计有很大的不同。从这点上看,我觉得看SSH的源码,比不上看一些应用程序的源码,比如tomcat或者Eclipse。如果真的要看类库型的,我的建议是直接看JDK好了(特别是concurrent,Lee才是高山仰止)。 C,看牛人的代码--->离牛人近些。这个观点我觉得很无语。不管什么样的代码,关键是对自己技巧的磨砺,一个烂代码,能够让你惊醒自己不要这样犯错,价值要比背牛人代码有价值得多。以为多读了好代码就能提高多数是缘木求鱼(这个比背书还差,背书背了还可以直接抄,你背了代码很可能连设计都抄不了)。我没见哪个作家是学名著学出来的,学古文的人往往选的是文心雕龙而不是苏东坡选集就是这个原因。 |
|
返回顶楼 | |
发表时间:2010-07-29
最后修改:2010-07-29
我觉得牛人之所以称之牛人不是因为语言写的多精妙,而是靠想象力;绝不是你对语言和语言之外的技术层面多么熟悉,而是自己是否有创新的东西。
|
|
返回顶楼 | |
发表时间:2010-07-29
文无定式,学无定法,见招拆招,楼主思路之开阔清晰,言之有物,思之有理。
|
|
返回顶楼 | |
发表时间:2010-07-30
能够不被面试官难倒,就可以说是精通,这个是相对于这个面试官来说的
SSH流行,有他的道理,团队用它,能够容易维护代码,而且解决了绝大部分企业应用中的问题 企业应用中对于算法的考虑很少,因为那个不是瓶颈,for循环多几次,对于系统的性能来说问题不大,相遇与来说,多创建几个对象,倒是消耗性能的.... |
|
返回顶楼 | |
发表时间:2010-07-30
java的技术,其实都在java以外的地方。算法、数据库、网络、各种应用程序接口、操作系统,不管哪个都比SSH本身对于一个java程序员更重要。
楼主说的是真话。 |
|
返回顶楼 | |
发表时间:2010-07-30
flootball 写道 2年,我就很无力。研究红楼梦可以一辈子,你觉得能成作家吗?)
郭沫若13岁就能背红楼梦了,那可是大作家。 郭沫若那种墙头草,称作家那是侮辱作家 |
|
返回顶楼 | |
发表时间:2010-07-30
引用 BTW 回答某个帖子:被问精通什么,一时无语中……?翻译给你面试官的意思:就是告诉面试官你技术上最NB的地方,好让他接下去往下问(免得随便问了你答不上来不是欺负你嘛)。如果你最NB的地方都so so的话,别的还问个P啊。如果你最长的地方能让人满意,再谈别的技术。 恩,言之有理,当时没有反应过来,面试官估计是要找个提问的突破口,然后一层层的递进。当时,我把精通理解的太狭义了,这个是他给我机会让我引导他到我熟悉的领域来,然后再PK。 |
|
返回顶楼 | |
发表时间:2010-07-30
huangyuanmu 写道 flootball 写道 2年,我就很无力。研究红楼梦可以一辈子,你觉得能成作家吗?)
郭沫若13岁就能背红楼梦了,那可是大作家。 郭沫若那种墙头草,称作家那是侮辱作家 成者为王,败者为寇。 刘邦还是痞子呢,那是否侮辱了历代领导人。 |
|
返回顶楼 | |