PureORM(暂未开源)是7月份开始的一个突发奇想,期间断断续续,都是利用晚上下班后和周末的一点时间开发出来的一个对象关系映射框架,后来根据自己的想法融入了IOC,在某个特性上同时也涉及到AOP的实现。所以已经不是纯粹的ORM,对于PureORM这个名字来说自然是不合适的,期间也换了不少名字,现在也不打算换了。整个框架的代码量不多,甚至可能比不上我在游戏里的一个比较大的功能模块。站在技术的角度上,软件产品追求的无非是两个方向,一是简单得明显没有缺陷,二是复杂到没有明显的缺陷。显然,前者境界更高一些,也应该是我们追求的方向。遗憾的是,PureORM是一个两头不到岸的个人作品。PreORM的功能是比较简单的,在ORM(对象关系映射)方面,没有Hibernate的博大精深和面面俱到。在IOC(依赖注入)方面,也没有Spring的优雅和强大。如果对PureORM稍微有点了解之后会发现,在用法上特别是配置文件的结构上,会和Hibernate和Spring有点相像。因为它们是我开发过程中的参照物,其实所谓的参照主要集中在配置文件的结构设计上。
PureORM框架是基于反射的,说得通俗点就是说ORM和IOC的本质是反射。有个看法,反射是一个由外而内的手段,就好像算命看相一样,观其外表而知其内里。如果说实现ORM是平平无奇地度过的,那么实现IOC就是一个费煞思量和伴随惊喜的过程,当时花了好几天的时间去思考人生。网上有一种观点认为,一个优秀的程序员80%的时间应该用于思考,而剩下的20%的时间才是用于写代码的,这似乎有点道理。确实,实现的思路清晰了之后,代码实现是很快的。这也是在写框架过程中的一点感想和体会。编写框架的过程也是一个不断有新想法和重构的过程,很想做到面面俱到,但是限于个人能力问题而不得不放弃。站在市场的角度看,这是一个很危险的想法,举个例子,李开复曾经谈到创新工场的失败项目,他说有一个项目有一位很聪明的创业者,总是想加新的功能,新的产品线,不够专一,产品推出迭代太慢,错失市场良机。推出一个新产品,不需要面面俱到,
允许有不足和缺陷,然后通过快速迭代去完善。在这方面很赞同雷军的单点切入快速迭代的看法。
写这个框架的一个根本目的其实是练手,还有就是妄想接近优秀框架的那种先进的理念和思想,所以PureORM并不是顺应某种需求所诞生的,也不是一个合格的作品,它是为了设计而设计的作品,并且存在重复发明轮子的嫌疑。对于增删查改的代码写多了,也就想换换口味,仅此而已!
在此顺便推荐一下最近才买的吴军(曾任Google研究院资深研究员和腾讯搜搜副总裁)的《数学之美》一书,对于程序员开阔眼界确有疗效。你是否想过中文字里的常用字和生僻字的笔画多少遵循了什么原则,同理,古代的
白话文和文言文之间的差异又遵循了什么原则,答曰:信源编码。常用字简单而且笔画少,生僻字晦涩而且笔画多。同理,古代的白话文据说与现在的某种方言是差不多的,而文言文却是简洁无比,是因为古代的纸太贵而书写文
字又极其不方便,大多数刻在竹简上,既麻烦效率又低,或许你现在已经明白为什么文言文会如此简洁了吧。语音识别和机器翻译从语义分析和语法分析到统计模型的一个转变历程,因为正确的句子出现的概率总比不正确的句子
出现的概率要大得多,所以统计学就派上用场了。还提到Google的PageRank算法,感兴趣的同学应该会很感兴趣(一句废话),这才是真正的称得上是算法,至今我都不认为自己写过算法。在代码里融入数学的元素也是一个很想
尝试的方向,无奈数学是硬伤,况且久不使用,已然遗忘。
时间仓促,废话就说到这里,不能说太多,因为明天要上班!