又想到了模板引擎和前端MVVM框架

最近接手了一个和报表有关的项目。项目后端的大部分工作都是在操作数据库,作为一个后端新手谈不上有什么感觉。但对于看了前端的写法之后,还是有一点点感想。

项目前端主要使用jQuery及其插件,也许这就是大部分后端开发写前端的方式。比较让我惊讶的是,前端居然是单页面的,实现单页面的方法也很简单,$.load。前端除了有少量使用underscore template之外,没有大规模使用模版引擎,但有使用JSP渲染菜单,用来控制用户的访问权限。

以前专做前端的时候,前端模板引擎是必不可少的,三大前端MVVM框架也全都提供了模板引擎功能。现在开始写后端之后,手上又多了后端模板引擎这一选择。

关于页面是前端渲染还是后端渲染这个问题网上有很多讨论,比如[转]谈谈前端渲染 VS 后端渲染。不过作为一个懒惰的开发,在前后端都写的情况下,后端模板引擎用顺手了,往往就懒得写JS了,于是就有了我之前“争取不写一句JS”的愚蠢想法。我觉得正常的情况下,对于多页面应用来说,还是首次输出页面后端渲染,之后页面的改变前端渲染比较好,这样做实现起来也更方便。

如果是单页面应用,大量的页面渲染应该是放在前端的,仅仅为了一个首页让后端去渲染页面,我觉得会显得比较啰嗦,倒不如全部给RESTful的接口来得干净直白。至于拿NodeJS来专门输出页面的做法,我暂时还没有机会体验。想来想去,也许,前端的事情全部交给浏览器去做才是大势所趋?不管怎么说,我觉得接手的项目在模板引擎的使用上有点扭扭捏捏的,即没有完全抛弃,也没有充分利用。

至于单页面应用的实现方式,我觉得使用三大框架比自己拿jQuery搭一套不成熟的更好。以前有过自己拿jQuery和RequireJS搭单页面框架的经验,在这个过程中我自己学到了不少,但实际用起来,我觉得并不好用。与其让项目组同事学习使用我的这套烂框架,不如大家都去学学三大框架对个人和项目组更好。

手头项目上的这套框架用起来我觉得有这么几点不好:首先,它没有路由管理,跳到了哪个页面在代码里面是完全没有办法知道的。如果仅仅是展示数据还好,一旦需要上传数据,还需要通过页面来区分上传数据来源就比较麻烦了。我的解决方法还是使用url的hash来记录。其次,这套框架没有使用模块化的写法,这种情况下我最大的感受就是在开发过程中不知道代码的边界在哪,为了解决某些问题,把本属于不同的JS文件,应该拆开的逻辑混杂在一起了,这也是之前经历过的事情。

所以,我觉得,即使是作为一个后端开发(也许应该说是需要操作数据库的前端开发),也应该拥抱前端开发框架,现在已经不是10年以前了。

原文地址:https://www.cnblogs.com/linden5/p/7208472.html