关于库与框架的思考

周六去参加了D2论坛,嘉宾都是大牛,Baidu的金大为,Tencent的甄焱鲲,去了Douban的克军,Taobao的明城,还有Koubei的秦歌。大家都讲了很多,有很前沿的技术,也有高屋建瓴的理念,但似乎都没有造成太大的振动。只是回来以后脑子里过这一整天听到的东西,对克军讲的从YUI的升级看前端演化有一些想法,对框架与库的概念。也不扯那些冠冕的东西,胡乱引用别人的东西了,就说说我对这两个东西的理解。
所谓库,一个应用的封装集合,旨在增强代码复用,简化开发者的工作。对于开发者,要做的只是找到一个适合自己的库,所谓适合就是说这个库能提供你所期望的输出,了解这个库所要求的输入规则。应用的时候,就把自己的数据按照约定组织,传给库,库将返回你期望的结果,则直接使用这个返回数据就OK了。
所以框架,是一种代码结构的约定和一些为了工程代码的框架代码,旨在让工程代码条理清晰,更易维护,可读性更强,更高的层次,安全性更高,扩展性更强等。对于开发者,适合与不适合之说,并不确切,而是有了很多主观因素,比如开发者对一个框架的代码结构设计是否同意等。使用一个框架,需要了解这个框架的约定和运行机制,然后依据这个框架的约定组织自己的代码。
不论是从存在的意义还是应用方式上,库和框架有非常明显的区别,但江湖上流传的各种框架,各种语言的似乎都对这两个概念稍有混淆,尤其是PHP框架,库和框架混淆比较严重,主流的那些框架,提供各种功能,数据验证器,认证码生成器等等,十分完整,十分强大。也包括我参与的KiwiPHP还有他的升级版lotusphp,都有这种现象。
我认为对于一个好的框架来说,或者用框架这个词并不准确,是框架和库的组合体,作为这样一个东西,要造福PHP开发者,应该把框架和库这两个部分清晰的拆分开,并提供一种有机的组合方式,实现方便的库订制服务,这样一来,所有的库都可以以插件的方式集成进来,扩展性可以大大提高,而且对于框架使用者只需订制自己需要的一些库,使用起来更加轻量,效率也更高。
刚词说道框架和库的组合体,想到一个词:平台,但又感觉平台这个词太大了,一个平台需要提供一项工作所需要的一切服务。针对开发来说,框架和库是远远不够的,还有包括测试工具,IDE等等很多东西。
以上就是我对框架和库的一点个人看法,之后的一段时间,我想我会试着做一些跟这个相关的事吧,有进展了再来回报。

标签:框架 库 平台 PHP YUI D2

评论已关闭