09 八 2009
by Simonsenin 杂念 Tags: PHP, 框架
做PHP做了5年多,也有很多自己的感受,其中最有代表性的就是PHP框架。从最开始最框架的恐惧和不屑,到后来对对框架开始接触,开始使用一些框架,再到自己试着改框架,模仿别人的框架提炼一套自己顺手的,最后到现在对框架的逐渐“看轻”,把“用不用框架”、“用哪种框架”当成一件自然而然的事情,该用就用、哪个好用哪个,不再纠结在形而上的层面上。这几年的经历大概就是这样一种发展趋势。小付同学前段时间自己写了一个PHP的小框架,跟我简述了一个,很遗憾我没有尽到做前辈的责任鼓励他,现在想起来有点儿遗憾,这个是教与学的问题,不是纯技术问题,有些话没有必要把自己撇得那么清白。小付同学是名好学生,像个刚毕业的大学生一样,有很大的冲劲,只是尚缺经验,思想单纯了些,努力一下还是很有前途的。
扯远了。
最近项目做了大约3、4个,也是有点儿经验了,觉得有必要做一个框架,把一些脏活儿累活儿重复性的劳动全部自动化,把功能模块整理成可选插件(plugins)的形式,通过配置脚手架参数来控制模块的选用、功能等。那么我们剩下的工作就是在这套系统下做常规的功能开发,也就是插件开发了。这样一套系统其实现在预估起来还是非常容易的,基础扎实算是一个方面,最主要的我觉得还是需求能够明确下来,或者说能够看到这么做的现实意义。这一点是非常重要的,是做好框架的一盏指路的明灯。那些没有明确需求,为别人的某项新技术而诞生的框架,如果不是仅仅练练手而已,那么多半产生的都是负价值。
之前我也不是没有想过做这样一个框架,纵观现在的互联网市场,纯粹为做网站而做网站的需求量仍然很巨大,潜在市场也是非常巨大的,这样的框架一旦做出来,一劳永逸,绝对是符合这个市场需求的。当时的雄心受阻,也是因为需求不明的原因,但这并不是说就此放弃。最近遇到的这种情况,可以说正好让我重拾之前的想法,打算做一个great的自适应框架出来。
22 二 2009
by Simonsenin 工作,不一样的加班, 杂念 Tags: PHP, 框架
看现在的语言、项目,真的是越来越多越来越繁杂,虽然解决的都是些小问题,但所用的方法却非常地繁琐,人们(包括发明语言的人们,使用语言的人们和使用产品的人们)的理由是:这样可以增强产品的健壮性、稳定性(发明语言的人说的),可以大大提高开发效率(使用语言的人说),使用起来更加简便,而且就算慢点儿也还能接受(使用产品的人说的)。于是,一种语言往往最后因为越来越繁杂,或者基于这种语言的框架越来越繁杂,最后被定性为:语言本身遇到了瓶颈。后果就是不断的竞争者涌现出来,即便是这些竞争者只是换汤不换药,仅仅是精简了别的成熟语言的一部分然后加点儿噱头,也会被认为是创新和突破,慢慢流行起来。当然,流行起来之后也不过是进入下一个循环而已,就像以前听过的那个笑话:放牛挣钱,挣了钱娶媳妇,娶了媳妇生娃,娃长大了放牛……
PHP的创始人在一次大会上用框架和原生的PHP分别写了一个Hello World程序,并做了一个benchmark,结果当然是原生PHP快出很多。他由此倡导大家尽量不要使用框架而是使用原生的PHP。
不用框架我想是不现实的,接触过编程这行的朋友应该都知道,不论是客户还是老板,都只看开发效率的,至于bug,大家现在都能接受,没什么大不了的。而且团队合作的时候不用框架也不太现实,毕竟现在能在开发前把所有规范做好的项目实在少之又少,没有框架约束、没有成文的规范,做出来的项目必定是不堪回首的豆花——别提了,一提就碎!既然要用框架,那么问题仅仅在于用什么样的框架!我个人的理解是,PHP创始人提倡大家根据不同的项目定制不同的框架,说起来大家其实也很容易理解:按需定制的肯定是最好的嘛。不过这个定制,就存在一个问题:会有重复性的问题,即:很多底层的东东是几乎每个项目都会用到的,比如database、cache、factory等等,如果每次定制框架的时候都重新开发这些东西,不仅会降低效率,而且可能因为个体差异造成这些模块不稳定和难维护的概率。
综上,我的理解是,自己定制一个最简化的文档,然后再根据具体项目的需要,进行必要的扩展。
感觉框架这种东西在国外之所以这么流行其实很大程度上是因为国外的网站流量一般不会达到国内网站这么“疯狂”的地步。在国外,日PV达到300W应该就算是很大很大的站了,但是在国内,日PV300W可能只是某细分领域的前几名而已。这样的背景下,国外的网站大多喜欢使用框架,首先肯定是因为使用框架开发效率高、稳定性健壮性好,其次框架带来的效率损失对他们来说也不是很大,在一个可以接受的范围内,但在国内,这个前提就不存在了,如果有好的运营,访问量会陡增,框架带来的只是隐患,那时候使用框架开发出来的应用越多,需要迁移的模块越多,灾难反而越大。对网易、sina等大负载网站也是同样的,只能使用自己的框架,开源的框架再好,也不能直接拿来使用,必须要经过修改,甚至只能取其设计理念,重新开发,否则的话根本没办法用。
“中国特色”造成在国内使用框架的都不是什么大型的公司,要么是做外包的技术型公司,要么是小型网站;同样,在项目中熟练使用框架的人在国内大多也算不上什么高手吧,当然,纯研究、关注、开发框架的除外,呵呵。