我本来有个微小的习惯就是一月鼓捣一篇博文出来.但是眼看这个月要触底了,我觉得再不写这个时间的连续性就被我打断了,不太好.
于是朕强行装逼,弄出这一篇文章.
阅读前提是你认同PHP是最好的语言(我当然不认同,我为什么要认同,哈哈).事情源于前几天一个同时分享的前后端分离和开发的框架.我觉得他至少解决了2个问题.
前后端分离
我们平常用ASB.NET MVC的时候,涉及到动态数据那一部分最麻烦.首先一个页面过来,服务端要分析里面的html层次,然后弄个通用的布局(layout)出来.然后涉及到动态数据输出的,要自己用razor语法去遍历,去填充.
填充其实不碍事吧.问题是你修改html结构,那就喜感了,有可能上述工作从第二步开始重做(复制html,用razor输出数据)
然后呢,我们亲爱的同事提出了使用Laravel 这个php框架.他给的思路是这样的.让前端学一些基础的PHP语法.用php拼凑网页.涉及到模板页和内容页的,用php模块化页面.然后这些php视图文件和数据格式大家约定好,然后前端在控制器里面写入自己的数据,自己填充,前端做的东西作为整个项目的子集纳入到项目中,不必知道服务端的具体实现,但是他知道数据是怎么个样子的.这样就解决了前后端的矛盾.前提:
页面模块化
都说php的胶水嘛,可以把各个模块之间快速地合并在一起.只要用上服务端语言,这是一件很简单的事吧
版本迭代问题
版本迭代有时除了更新,应该有回滚吧.回滚是大家都想要的结果.我觉得是在某个地方出现了严重的错误时,短期内最有效的解决方案吧.服务端程序的更新暂不说,前端的话,涉及到cs和js这些静态文件.静态文件容易被缓存.但是如果浏览器缓存的是有问题的静态资源的话,那么加上cdn,这个问题就大了.
所以此时.在构建的时候 为每一个文件末尾加上一个MD5/GUID,那么每一个版本请求的静态资源都有所不同.版本迭代的问题就解决啦(当时我也没听清楚具体的方案,给个思路自己脑补吧,哈哈).请配合版本管理系统使用
个人觉得的不足:
1.cdn变成垃圾场(这个问题是个伪问题,cdn是算流量的,所以垃圾场就垃圾场吧,哈哈)
2由于每一次上传的都是新的静态资源,所以上传会浪费多那么一点点的时间
Laravel 这个框架蛮不错的,里面很多东西感觉和ASB.NET MVC共通.比如模板页,过滤器(在Laravel里面叫中间件), 封装好的request和response......