前端逻辑和Node直出复用与重构
In Node.js on 2015年07月31日 by view: 1,146
1

不得不聊到的重构简介

要实现软件演化基本准则,最关键的策略就是重构,Martin Fowler将其定义为”在不改版软件外部行为的前提下,对其内部结构进行改变,使之更容易理解并便于修改“。

复用的理由

重复的代码,几乎是代表着对最初设计彻底分解方面的一个失误。无论何时,如果需要对某个地方进行修改,你都不得不在另一个地方进行完成同样的修改,这样你就陷入了两线作战的境地。重复的代码同样违背了代码哲学DRY原则:”Don’t Repeat Yourself“

复用的例子

举个例子,现在很多第三方库已经默认支持不同规范的引用,开放给第三方使用的组件能兼容不同的规范。然而很多时候如果我们引用第三方组件或者自己的组件时,并没有采用模块化开发抑或单一支持一种模块化,通常我们自己需要包装一下支持模块化引用依赖,如下示例:

使用seajs规范进行模块化加载,所以定义的模块都是以这样的形式加载,该模块c依赖a,b

那么,在服务器做node直出的时候,如何使用同一个文件进行复用呢

这里会有个立即调用的匿名函数,判断模块加载器的类型,采用不同的模块化定义规范,如果没有的话,就直接暴露在全局。

重构的例子

由于Node直出只需要获取处理数据,并把数据渲染在模板上,返回html字符串即可。
这就需要我们抽离Model,Controller
重构,这里就举个简单例子了

然后注入NodeOut状态变量来标注是否直出,然后做相应的兼容,例如client端数据需要更新page,不再拉取本地缓存或者线上数据。

node端

浏览器端

原创文章转载请注明:

转载自AlloyTeam:http://www.alloyteam.com/2015/07/qian-duan-luo-ji-he-node-zhi-chu-fu-yong-yu-zhong-gou-2/

  1. 大米网 2015 年 8 月 3 日

    学习了

发表评论