前端优化及前后端分离初涉

目前聚派网测试版运营2个月多了,1.0版本改版在即。基于测试版的经验以及后续团队的扩张,我认为在未来半年到一年的时间内版本会快速叠代,但大体框架,技术选型,开发规范都不会改变。故趁现在我需要对上面的三个问题进行选择和思考。


  1. 框架选择:后端选择thinkphp框架,前端使用jquery,移动端使用zepto。
    • thinkphp是目前国内较好的开源框架,文档完善,demo齐全,社区活跃。对于以后人员招聘和培养成本较低
    • jquery是前端基础选型,至于模块化开发和按需加载之类的优化,因为团队较小,过早的介入这些规范,会适得其反,我一直认为没有最好的技术,只有最合适的!在有限的时间没做出最大的收益。在此之前,有考虑过angularjs,但有一大致命伤是seo优化问题,学习成本等问题也需要解决。
  2. 对前端优化,前后分离的思考
    1. 前端优化目前最大的三个需求,也是最基本的三个需求:页面静态文件合并,页面按需加载,版本号变更(用于缓存,灰度发布)。grunt是使用其丰富的插件完成上述的需求,但问题在于需要手工配置,我希望达到的效果是能能按页面引入的文件进行合并,加入版本号。而grunt的插件是需要在配置文件中手动指定合并文件。
    2. 腾讯的modjs同上
    3. 百度的fis研究了很久,开始使用的感觉太复杂,太繁琐,它首先是针对百度的业余流程,后面读到大神fouber博客(感谢徐飞大神的指导),才发现了另一片天地。
      • 目前网页的开发大多数都是动态网页,或者说是后端语言生成静态文件。这就导致页面是在服务器端渲染,并且为了便于文件公用,后端也会有自己的渲染引擎,fis并不能识别它。
      • 上面的问题就涉及到前后分离及渲染的问题。我自己的理解是真正的分离应该是前端后端中间有一个ui层,单纯的用后端渲染,达不到分离目的,单纯前端渲染,性能损耗太严重。据我不完全的认知,度娘是把php及前端统称大前端,更底层的用c写服务。
      • fis有另外一个针对纯php的资源管理框架,通过fis生成的map.json文件进行管理。我把它和thinkphp自带的模板引擎融合,从而达到了最开始说的三个需求。thinkphp会在第一次运营是讲模板文件编译后缓存起来。故我在它编译时进行资源收集,缓存时进行资源合并等工作。
      • 使用fis以后,可以继续进行组件话改造等等,这个后续再谈。