PHP变成语言:需不需要框架

[来源] 本站原创    [编辑] 本站编辑   [时间]2013-02-26

RAILS的确可能会有很好的前景。但他只能是IT技术进一步普及和低端化的产物。任何一种行业都会由稀缺到普及,由高端到低端。由于ROR为效率而屏蔽了底层,所以ROR只能做个低端的角色

  javascrīpt是基于对象面向过程的语言典型。它在设计时甚至没有引入Class,今天很多使用者如果一定要用类,只能以函数模拟。在JAVA下,一切都要以一个Class开始,在Class里实现;而在JS下,压根就没有类,可以说它是强制面向过程的。基于对象(Object-Based)与面向对象(Object Oriented Programming)是两个概念。初学者不要一看到对象就说这个语言很OO,或者一看使用对象不多就认为这个语言不够现代。

  OO就是系统化、模型化,是到目前为止最复杂和最高级的手段,对MVC三者的任意一个都可以OO。MVC的目的是分离。分离的目的是减少重复。找不到重复是因为分离得不到位或不合理。所以如何分离是开发设计的核心,也是开发方法的主要内容。

  应该放弃开发速度最重要的观念。并不是说开发速度不重要,而是因为可维护性(重构性)才是真正重要的;可维护性低的开发方法其开发速度一定高不了。因为结构化越低开发起来就越复杂,反之结构化越高开发就越简单。为什么web战胜software,因为它的数据存储、页引擎、浏览器的这样一个架构(当然可以进一步细分)取代了堆在一起的software,产生了强大的分离效应。可以看出,分离是减少重复提高生产率的要诀。

  OO是为了实现MODEL,MODEL是为了分离。如果问题很简单就能解决,就不一定要MODEL,否则建模所带来的生产成本就大于问题本身。应该只对较复杂的模块通过OO建立MODEL。

  换言之OO只是手段,分离不一定要OO,甚至不需要MODEL。只要能做到分离。

  OOP是无需质疑的一大成就,它是我们解决复杂的项目的手段。问题越复杂,OO就越重要。但是当WEB取代软件时,本身提供了一种分离架构,而且分离之后的内容又是页式的(一次只需要处理一页)。这也就是为什么web会战胜软件。问题复杂程度降低了,多余的方法成本也应该降下来。去距离不远的超市应该骑自行车而不应该乘坐出租车,否则等车的时间就不能忽略。function能分离开就不要用class,class修改维护起来比function复杂。

  请记住:在整个计算机开发方法学中,减少重复是最终目的,分离则是达到此目的的途径。这就是效率的本质。

  应该说PHP一直处于发展之中,它是从适合小项目发展向适合大项目的。对于php程序中SQL语句的分离,将来也应该像其他数据库那样使用存储过程。所以,选择PHP就不要和别的语言比大型。PHP的重要就在于它适合Web开发。

  关于框架,可参见关于三种主流WEB架构的思考,目前的PHP框架如:

  Zend Platform

  fleaphp

  FCS

  CakePHP

  都是模仿ROR。

  Ruby on Rails是面向对象(OOP)和基于模型-视图-控制器 (MVC) 的典范。它能起到很高的分离作用。Ruby on Rails震惊了编程界。主要是震惊了JAVA界,他们发现作为集OOP之大成的圣殿语言面对ROR的效率难以企及。原因就在于分离是根本,而OO不是。

  RAILS的确可能会有很好的前景。但他只能是IT技术进一步普及和低端化的产物。任何一种行业都会由稀缺到普及,由高端到低端。由于ROR为效率而屏蔽了底层,所以ROR只能做个低端的角色。如果你开发一个站点,规模逐渐增大,访问量逐渐增高,当CMS变成MIS,相对于使用了Smarty的PHP,rails的优势只有active record,但是数据库结构和数据库操作是性能瓶颈,是最需要设计的环节。ROR这个半成品就成了窠臼,项目后期它会让你尝足苦头。

  所以ROR只适合小项目。但是相对于直接开发,框架是有成本的。小项目是否需要这么高的方法成本(学习框架,维护框架)。对于CMS,ROR出现得晚了些,很多CMS都成了现成的Web服务了。

  Web开发长期以来缺乏一种项目规范。PHP亦如此,每个人的项目其结构都不一样。这与JAVA区别明显。Rails框架解决了这个问题。总之,随着硬件的不断发展,性能和稳定性等对于小型网站越来越不成瓶颈问题,所以ROR会越来越多,但这是个缓慢过程,其对应的网站也会越来越低端。

网友评论 已有 0 条评论,查看更多评论»

评论内容:
验证码:
【网友评论仅供其表达个人看法,并不表明本站同意其观点或证实其描述。】

资源下载

最新开课信息