剑's profile道可道PhotosBlogListsMore Tools Help

Blog


    December 05

    Criticism of Java Persistence Frameworks

    从TSS上转的,有点意思
     
    1- “Object-Relational Impedance Mismatch” is not solved
    2- Frameworks don’t suit application architecture needs (Web or Desktop)
    3- XML usage should be immediately abandoned
    4- Database Metadata is not utilized
    5- Object Query Languages are a wrong path
    6- Don’t throw SQL away, it is not enemy
    7- Multiple data source dilemma
    8- Why persistent objects are so weak (POJO)?
    9- Poor Transaction Management
    10- Heavy Object Caches
    11- Wrong Locking Methods
    12- Persistence API could be simpler
    13- Bytecode manipulation problems
    14- Unnecessary OID (object id) columns in tables whereas PK columns are enough
    15- Inheritance has no meaningful usage
    16- Primary and foreign keys are held in accompanying new classes causing many unnecessary classes
    17- Missing cluster support
    18- Missing database events
    19- Missing authorization
    20- Missing dynamic rules
    21- Missing object modeling tools for code generation
    22- Missing audit trailer
    23- Missing persistent object debugging utilities
     
    每一条都值得思考
     
    hibernate是让简单的问题更简单,复杂的问题更复杂了.对于data model稍微复杂一些的问题,使用hibernate会付出更大的代价.不得不去研究hibernate到底为你做了什么,这其中花费的effect是巨大的. 越看tomas的书,越觉得O/R mapping让你的application在不同的database之间无痛移植只能是一个美好的愿望. 现实中这种移植的需求实际上并不是太大, 有这种需求而且要求选择hibernate的可能性则更小...各种database之间的差别太大,sql语句可能差不多,但是他们处理lock,transaction,currenrency的机制完全都不一样...如果你直做个cms/blog系统,这些都不是问题...如果你的数据非常之重要,如银行系统,财务系统...则需要慎重考虑. 
     
    工具不是万能的,拿美工刀去砍柴显然不适合...
    优点和缺点,脱离了实际的大环境就变得没有任何界限. 选择最适合的工具,不能从主流才是正路.
     
    仅仅因为struts+spring+hibernate的组合流行,就先择它,可能从一开始就把项目拖进了泥潭.
    流行和时尚,总是来得快,去的也快.
    November 05

    a

    如果爱下去
    专辑:The One

    街头那一对 和我们好像
    这城市华灯初上
    多两个人悲剧散场
    放开拥抱 就各奔一方
    看着他们我就 湿了眼眶
    不回头两个方向
    流着泪的破碎脸庞
    仿佛我们 昨天又重放
    很久以前如果我们
    爱下去 会怎样
    最后一次相信 地久天长
    曾在你温暖手掌
    不需要想象
    以后我漫长的孤单流浪
    很久以前如果我们
    爱下去 会怎样
    毫无疑问爱情 当作信仰
    可是生活已经是
    另一番模样
    我希望永远学不会坚强
    街头那一对 和我们好像
    放开拥抱 就各奔一方
    October 13

    学习是一个慢慢积累的过程

    浮躁是学习最大的忌讳,急于求成往往会浅尝辄止,最终就会导致好像知识面宽广的不得了,却啥都搞不定.
     
    细心的阅读官方的文档,耐心的看慢慢的看,一点一点的去理解.过个半年回头再来看,会发现不知不觉中已经进步了.
     
    那些一两天就可以学得会的东西,别人也可以一两天学得会,大可以到用的时候再去学;而有些需要花时间学习的东西,要提前学起来.
     
    打算做技术就不能做得的太广,选定一两个主题日积月累必会有所成.
     
    不能为学习而学习,能在工作中创造价值才是学习的目的. 理论的唯一目的就是为了指导实践从而提高生产力.
     
    抱怨别人开发的产品太烂毫无意义,因为如果让你自己去做,十之八九只会做的更烂.能够提高生产力的都是好软件.
     
    工作中如果能总做自己擅长的事情,就会有良好的成绩;如果这些擅长的事情别人短时间没法学会,这就是核心竞争力.
     
    10年的工作经验如果只是一年的工作重复了10年,将变得毫无价值.
     
    October 04

    古惑仔

    重新看了古惑仔二,猛龙过江,一个时代的经典,非常的不错。
    即使是经历了对美女审美疲劳,看到一身和服的邱淑贞去给大嫂上坟的那段还是觉得惊艳无比。
    引申开来,发现在一片墓地里出现一个美女,总是格外的惊艳...brave heart里面有拿着花的小女孩...无间道里有陈慧琳...聊斋里面更是数不胜数...
    女人象征着性,生命的开始;墓地暗示着死亡,生命的终了;当一个女人出线在墓地里就是性和死亡两大主题的和谐统一。
    潜意思里恐惧死亡期盼生命延续,所以在墓地里出现一个美女会让这个美女看起来更美。

    好宅啊

    天天肯得起...好腻啊...减少汉堡量加大鸡翅量...
    上网上的手发麻拿个胸罩叠起来当鼠标垫,弄坏了还要赔...
    October 01

    join

    inner join,left out join...把两张表先做一个笛卡尔乘积,剔除不合条件的就是inner join了。left out join就是inner join+(A集合剩下行+NULL)
    非常简单...面试了n多人,竟然没有一个人说得明白
    September 27

    继续学习Oracle技术

    给自己加点压力,考个Oracle DBA初级吧

    又可以开始打球了

    吃了十几天的药,全身疼痛终于好转了,看来的确是风湿。
    昨天小试了一把,球技明显进步了不少。
    打算趁国庆没事学习一下王楠的打法。正反手均衡,追求变化。
     
    最近对前冲弧圈有了一个比较深刻的了解,前冲弧圈实际上和正手攻球是一个动作。只是在触球的瞬间是摩擦球。
    所以前冲弧圈理论上来讲,动作应该小,能小尽量小,靠腰和小臂快速的收缩来发力,出拍要高于来球,向前发力。
    拉高调和冲下旋的要求是,引拍较低,幅度大,但是整个动作要求手臂放松,出拍比来球要低。
    综合上述,前冲主要是靠小动作的爆发力,而高调弧圈则是靠动作的连贯与舒展。暴冲下旋因为失误多,而且容易拉伤。将彻底从我的技术里面删除。
     
    反手技术还是以推,慢撕,招架为主。发小力,求稳定。
     
    下一步的发展方向是,台能小球的挑打。摆短,劈长的应用。一定要少搓球。
     
    September 18

    耐心

    昨天晚上看纪实频道,鹰捕食猎物常常会静静的等待几个小时到一整天.
    一旦猎物放松警惕,便能以迅雷不及掩耳之势逮到猎物.赞

    欲速而不达

    早上上班骑到半路上,快递电话让我赶紧过去拿.
    心一急赶紧往公司骑,咔的一下链条就掉了,立马下车用F1换轮子的速度将链条搭上继续骑.
    还是急啊,咔的又一声,链条又掉了...我靠...换好,慢慢骑到公司...
    做事情要不紧不慢
    September 15

    风湿性关节炎

    再也不能洗冷水澡了,注意保暖,不可剧烈运动,NND。
    September 14

    现场观看2008松下中国乒乓球大奖赛

    现场观看2008松下中国乒乓球大奖赛
    今天和jerry去看了乒乓比赛,感觉还是相当爽,现场看球和电视上看果然完全不一样啊。
    陈玘和王浩的1/4比赛太帅了,两个人正手对拉,陈玘的正手真是惊艳啊,球速弧线相当吓人。可惜3:0领先被王浩大逆转。陈玘正反手都暴力,如果能多一些马龙的稳健,绝对是天下第一,暴力更多的是一些先天的因素,稳健可以学得来。从这次比赛已经能感受到陈玘在处理球的合理上有很大的进步,也并不是一味的暴力了。
    马龙显得正反手相当的均衡,整个人的身材架子非常好,中规中矩,像孔令辉的打法,很有实力。
    小郭跃比电视上看起来要高挑好多啊,球也很不错。
    晓霞郭炎看起来真是虎背熊腰,丁玲像李宇春,姚彦是个大美女。刘诗文的反手很有力,正手的打法也是反拉,外表娇小迷人,打法相当之男性化,追求退台后正手相持,非常看好。
    马琳打球还是一如既往的诡异,正手暴冲还是相当的暴,貌似在最后一场冲不死天下第一削朱世赫同学。
    朱世赫同学正手也很暴力,对拉一点都不下风,看来绝对不能说朱的打法是防守型打法,因为他正手很少削球。
    王大力状态一如既往的低迷,正手频频拉飞,被许昕的正手拉死了,早早被淘汰。
    这次比较遗憾的地方是没有见到张一宁,柳承敏,水谷隼...
    通过这次比赛,强烈的感受到新生力量的崛起。预测下一届的世锦赛后马琳应该会退役。
    未来几年在乒乓领军的应该是王浩,陈玘,马龙。
    September 12

    Drupal module system

    虽然并没有使用面向对象的编程方式,drupal的module system可以说是相当的简单实用.一个.info文件,一个.module文件,实现几个function,搞定...
    上手非常之容易. 以前也尝试去接触eclipse rcp一类的东西,太过强调design,太强调设计的严谨,罹患非常严重的设计强迫症.
    Java号称everything is an object,对于面向对象的编程方法实际上是一个过度夸大.对于稍微一点不OO的东西,都要拉出来批斗.
    ,在实际应用中过度设计,为了一些所谓的优美而增加了复杂性,最终导致复杂冗余极其丑陋.
    Opensource强调简单实用原则,并且在实际的应用中应用这一原则,最终诞生可以实用的软件.
     
    在opensource的领域,java也算是个怪物了,以框架出名,而不是以最终可以使用的产品出名.可以说是非常乐于制造框架,其学院派可见一斑.
    而在php的世界里出现更多的确实真正可以使用的web application,wordpress,drupal,megento,你可以从设计的角度去批评他,但最终还是选择使用它.
    springframework的官方网站竟然是drupal,不知道他们开发的MVC framework干甚鸟用去了...这就好比MS公司用linux做桌面,可口可乐公司的员工只喝百事可乐一样搞笑.
     
    简单即时美,K.I.S.S确实是个好东西. 逐渐能够理解cnet以前说的一些东西了.
    September 10

    学习drupal源代码

    这几天安装了wordpress,megento,joomla,drupal逐一尝试,
    最后决定以megento为对象开始学习一下php编程。学习主要集中在几个方面,
    0. 一个php项目结构应该是什么样子的
    1. 如何实现模块化编程
    2. 自定义的theme在web编程中如何实现
    3. CMS系统中ACL是如何做到的
    目前暂时还不想太多的涉及zend framework,套用框架做一些CRUD应用对我来说吸引力不大。
     
    接下来逐渐添加学习心得。。。

    September 08

    再次用回了OC

    为了加快球速,弥补力量上的不足,这段时间不停的换拍,EG,CL逐一试打,搞的手感完全乱套.
    现在又换会了OC,找到了正手清晰的弧圈手感,反手防守也相当的自如,还可以拉下旋球了.
    习惯成自然,换拍真没有那么容易,算了罢了,就这样打.
    給手上的三块OC分别起了名字...
    主拍,           Offensive Classic,legend      取名叫不争,
    副拍,           Offensive CR,legend             取名叫无为,
    二副,           Offensive Classic,master     取名叫无行
     
    給他们取这些名字,是为了警示自己,体育运动的目的是为了强身健体,切莫与人争强斗胜.
    今后要像打太极一样打乒乓,攻防兼备,刚柔并济.在心态上战胜对手,是谓之不战而屈人之乒乓...
     
    做人的道理又何尝不是如此
     
     
    September 03

    Learn PHP

    在Joe Cai的指点下开始学习PHP.
    稍微看了看Zend Framework, 感觉相当的cool,单说它的MVC实现,比目前主流的java MVC如Struts, Spring MVC, Stripes之流要先进很多.
    可能是因为受到Ruby On Rails之类后现在webframework的影响,Zend Framework在很多地方都是convention over configuration.减少配置确实让web应用简洁了很多.
    回忆一下不停在struts-config.xml寻找action的可怕经历吧...在MVC的实现上,zend确实把request/response这类原始cgi的东西隐藏起来了...webwork,strips要实现此,不得不引入OGNL这类expression语言...与Struts这类半成品不同的是,Zend Framework不光是一个MVC的框架,同时它还提供了很多的功能如ACL之类,用来解决web开发中的常规问题...
    通过对Zend的初步了解,也加深了我对PHP的了解...脚本才是最适合web的语言...不难预测java在web领域的衰败...从商业的角度,也不难预测.net在web领域的夭折...
     
    Java会走向何方?
    在Mission Critical的商业应用里,可能还是java的地盘. java可能会想cobol一样跑到银行系统的后台去运行.
    又或者是一些基于B/S的财务或者ERP系统.
    毕竟像Oracle/IBM这样的大公司大部分的产品是基于Java的,而像银行电信这样的地方,只会花巨量的钱去找这些IT巨头为他们服务.
    在那些B/S替换C/S应用的领域,java有市场.
    移动应用领域java是一步一步的在被吞噬...IPhone之流的产品实际上是走的捆绑路线...硬件+移动OS+开发工具...google即将推出的移动平台更是提供了整体的解决方案
    微软也在搞手机....J2ME并未有给sun带来啥利益,而iphone却把苹果带向了另外一个辉煌...J2ME有P前途啊...
    J2ME已经是穷途末路,似乎他们在S40,S60上的流行也只是昙花一现...手持设备的领域和计算机的领域毕竟是有区别...他们没有那么需要去通用,去跨平台...跨个鸟啊,有啥意义呢...
    跨平台也是只一个噱头...一次编写,到处调试...现实世界是,有多少应用会被部署在不同的平台上呢???
    推测,依托众多大的厂商支持,java也就停留在它最擅长的地方了,作为一种系统的编程语言,取代C/C++/COBOL等作为server side programming.
     
    为什么我觉得Ruby On Rails不会太成功?
    ruby是日本人发明的,语言设计挺漂亮.这也就决定了他就像日本汽车一样,徒有好的外表.若不是rails的出现可能鲜有人问津...可以断言,ruby不怎么流行.
    rails的本质是什么? 一个快速的开发框架...这么一个快速开发框架有它核心的竞争力吗? 没有...
    很明显,rails是一种创新,但这种创新很容易被克隆...因为用java,php,python,perl...也很容克隆出一套rails一样的东西来...为啥为了追求一个框架而迁移到一个新的语言上来呢?
    何况ruby并非一个类C风格的语言,大多数的程序员无法快速的习惯...这样看来rails更像一个学术性的东西...
     
    Google选择了Python,而yahoo选择了PHP...facebook 好像也是PHP
    Python做为google的核心开发语言之一,应为google的大红大紫而受到追捧...现实是在web开发领域python并不算成功
    没有太好的开发框架,也没有太多被广泛应用的killer application,别对我说zope plone...其实他们并没有传说的那么流行...
     
    为什么我要选择学PHP...
    因为它已经很流行了...而且以后会更流行...
    PHP是动态的语言,非常适合快速开发,在web这么一个以快速变化适应用户需求的环境下,高效快速开发很有用...
    想想那些传统的CGI把,改一个bgcolor就得重新便宜,让多少程序员吐血了...
    PHP配置简单...兄弟,用过weblogic吗...用过websphere吗...
    PHP提供的c/c++的接口,在一些需要整合遗留系统的地方也可能.
    PHP有广大的用户群,无数的opensource framework,application...有商业公司Zend在后面支持
    PHP是opensource的,很多都是免费的....
    容易学习,容易使用,开发成本低.
     discuz的成功,joomla!开始流行,megento蓄势待发...相信不久的将来很多庞然大物都会出现php的替代品...
     
    MS注定在互联网中捞不到什么好处.还是卖windows,office得了...
    .not framework不值一提...不为别的,因为他是构架在window平台之上的,而windows并未提供太好的网络性能...病毒还是一如既往的泛滥...
     
     
     
    September 01

    秋高气爽,今天是个转折点

    持续的闷热阴雨天气对我的伤害还是巨大的,每次下雨之前都感觉肩膀颈子酸痛无比.巨烦躁啊~
    今早骑车的时候已经不觉得热了,秋高气爽, 是时候静下心来学点啥,做点啥了~恩
    July 29

    不转球拉出界的问题需要改进

    起下旋拉高调,要充分的放松手臂,向下引拍,轻拉,触球瞬间有个手腕向上的动作。关键字是舒展
    冲不转球,沉肩向后引拍,小臂几乎要保持水平,转腰快速收小臂,向前向前发力。关键字是向前
    冲下旋球,向后下方引拍,发力向前冲。关键字是力量
    引拍的动作很大程度上影响着弧圈的质量。
    远台相持,身体要蹲下来。直直的站着是没有办法相持地。
    对于不转的短球,第一个反应应该是挑打。挑打的关键在于放松手臂,动作小。某个牛人说过,台内球基本上只需要用手腕。
    反手做任何动作追求的都是放松,不然容易拉伤。注意
     
    撞击或者摩擦球的部位始终应该是中上部