@
TangMonk 从技术层面讲
同样是动态脚本,php跟ruby,python运行机制不一样,而是跟lua,js这种嵌入脚本是一类的,就是在宿主环境中嵌入处理器,每次请求都要从头来过,
在这种嵌入机制下搞一个类似ror这种full stack的框架进去,就象写js在onload的时候先加载一个框架进来,不是说不可以,而是没有必要,只会增加很多无谓的开销,而且这个开销会随着业务量的线性增长而不断放大,等到有一天你想回头优化代码的时候,就会发现骑虎难下,整个系统牵一发而动全身,有需求变更想要扩展都是很难的
2 从软件生态链方面 ror是一枝独大,众望所归,而且是经过多年实践检验的成熟产品 对于企业来说不用关心内部细节,敲个rails s 套模板写业务就行了, 对于开发者跳槽了到新的公司,原来积累的ror经验马上就能派上用场, 但在php这方面框架多如牛毛,采用框架首先面临选择的困惑,而且框架质量参差不齐,并不象ror在twitter经过实际业务的检验,有些框架只是个人兴趣产品,来劲了拼命推广,能忽悠一些不懂技术的土鳖小公司,没兴趣了,出了问题又不闻不问,1.0写了一坨,到2.0又不支持原来的写法了,重新搞一套又开始玩,公司如果选择了框架,原来php招人只需要求有php基础就可以,现在需要加一条,熟悉xx框架,无疑选择面就少了很多,团队开发的情况下, 很难短时间招到熟悉同一框架的程序员
对于php新手来说,面对这么多框架也面临选择的困惑,这些框架虽然总体都差不多,但是具体配置参数,函数调用,模板语法都各不相同,跳槽到新公司以后,如果是不同的框架,又得重新熟悉另一套写法,为什么很多框架拥甭象打鸡血一样捍卫自己熟悉的框架,潜意识里其实是不想让自己为熟悉框架所花的心血打水漂,因为熟悉不同框架的用法并不能提高自己的技术水平,只是为了迎合公司的招聘要求,公司用框架也是想规范代码,屏蔽具体技术细节,降低总体人力成本,所以在这么多框架里面换来换去本身就是一件无意义的事
我的观点是php不需要框架,只需要一个类似ror那样约定大于配置的最佳实践的目录结构 这个目录结构完全可以代替框架的作用,而且不用一行代码