今天在JavaEye上正式发布了[url=http://www.iteye.com/news/5355-lite-template-1-0-alpha-release]Lite[/url]模版引擎,于是有网友问起:你这么又开始捣腾起模版引擎了,花了不少时间吧?
再回到这篇文章的标题吧,“我看了三年,练了三十年”貌似某些武侠小说中常常出现的台词。
可是,我现在要说,我不认同。更高明的做法应该是:“看他三十年,再做三年”。
为什么这么说呢?还是先说说[url=http://lite.googlecode.com/]Lite[/url]这个模版引擎开发的前前后后吧。
最初产生编写xml 模版引擎的的想法是2005年左右。因为一些webwork的标记库的bug,我不得不重新编写标记库相应的velocity模版。看见那些烦琐的语法,总是想:我还有更好的表示方法。
之后也动手搞过,但是也都不了了之,之后有发现jelly这个引擎,感觉自己的很多想法jelly都已实现。完全没有必要重复他的故事。
再次打起模版引擎的主意是06年末,当是要编写JSI的文档解析工具,需要在客户端处理一些展现模版。于是定下心来实现了一个简单的xml模版引擎,前后大概花了一周时间。
这个模版引擎最大的问题是,性能低,当是也想通过翻译成中间结构来提升性能,但是想法一直不够成熟,也就一直没有动工。
再到后来,一次悠哉悠哉的翻起那本jvm核心指南的时候。我想到:如果我把模版语法抽象成几个简单的指令集。能后再用json表示这种指令集,不就可以实现简单高效且跨平台的模版解释吗?
仔细整理自己的思路,感觉想法比较成熟了,于是动手吧,吭哧吭哧的,数天之内。第一个JS版的Lite模版引擎出现了。
回头想想,如果05年那次我一时冲动,下决心吭哧吭哧的把当时的想法实现下去。
那么,哪个模版引擎可能就是臃肿低效的废柴(回想一下当时的实现策略,现在都觉得害怕)。
我的思维很多时候容易走进一些误区,越是想弄明白一些问题,越是想不明白。看书就是一个例子:很多时候,我都是在放下书本的时候明白一些道理。
再回到标题:
无为者,非真无为,而是,无为而无不为。
劣币驱逐良币,杂草长起来了,禾苗就难以存活。
要实现正真的有为,就不要轻易而为,以避免造成思维定势,尾大不掉的局面。
无为就是:先看他三十年再练他三年。
道德经结语说道:天之道,利而不害;圣人之道,为而不争。
再回到这篇文章的标题吧,“我看了三年,练了三十年”貌似某些武侠小说中常常出现的台词。
可是,我现在要说,我不认同。更高明的做法应该是:“看他三十年,再做三年”。
为什么这么说呢?还是先说说[url=http://lite.googlecode.com/]Lite[/url]这个模版引擎开发的前前后后吧。
最初产生编写xml 模版引擎的的想法是2005年左右。因为一些webwork的标记库的bug,我不得不重新编写标记库相应的velocity模版。看见那些烦琐的语法,总是想:我还有更好的表示方法。
之后也动手搞过,但是也都不了了之,之后有发现jelly这个引擎,感觉自己的很多想法jelly都已实现。完全没有必要重复他的故事。
再次打起模版引擎的主意是06年末,当是要编写JSI的文档解析工具,需要在客户端处理一些展现模版。于是定下心来实现了一个简单的xml模版引擎,前后大概花了一周时间。
这个模版引擎最大的问题是,性能低,当是也想通过翻译成中间结构来提升性能,但是想法一直不够成熟,也就一直没有动工。
再到后来,一次悠哉悠哉的翻起那本jvm核心指南的时候。我想到:如果我把模版语法抽象成几个简单的指令集。能后再用json表示这种指令集,不就可以实现简单高效且跨平台的模版解释吗?
仔细整理自己的思路,感觉想法比较成熟了,于是动手吧,吭哧吭哧的,数天之内。第一个JS版的Lite模版引擎出现了。
回头想想,如果05年那次我一时冲动,下决心吭哧吭哧的把当时的想法实现下去。
那么,哪个模版引擎可能就是臃肿低效的废柴(回想一下当时的实现策略,现在都觉得害怕)。
我的思维很多时候容易走进一些误区,越是想弄明白一些问题,越是想不明白。看书就是一个例子:很多时候,我都是在放下书本的时候明白一些道理。
再回到标题:
无为者,非真无为,而是,无为而无不为。
劣币驱逐良币,杂草长起来了,禾苗就难以存活。
要实现正真的有为,就不要轻易而为,以避免造成思维定势,尾大不掉的局面。
无为就是:先看他三十年再练他三年。
道德经结语说道:天之道,利而不害;圣人之道,为而不争。