Skip to content

Commit

Permalink
update
Browse files Browse the repository at this point in the history
  • Loading branch information
xufei committed Jan 3, 2014
1 parent 343e09c commit 771fd93
Showing 1 changed file with 44 additions and 2 deletions.
46 changes: 44 additions & 2 deletions temp/05.md
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ Web前端这个领域有些像很多年前的客户端软件开发,最开始

这个方面,目前关注的人还不是很多,但在一些大公司,比如阿里和百度,已经很多有识之士看到了这里面可做的事情,并且有一些成功的案例了,比如百度的FIS。

#1. 建模
#1. 逻辑代码的构建

Web应用系统中,JavaScript是一切交互的核心,但JavaScript本身是一个比较松散的语言,这样的语言来做大型系统,可靠性方面需要做很多事情来保障。传统的构建大型系统的语言,比如Java和C#,都有很多反向工程的工具,比如根据代码生成UML图,这就从一个方面让架构师能随时了解自己项目的结构和依赖关系,有机会去调整一些不合理的地方,而这些调整又可以反过来作用到代码上,这些过程很大程度上能让项目的整体稳定,因为它的重构成本是比较小的,这些重构可以不太打断开发过程,在一次项目开发过程中,能够有机会多次重构,从而降低了很多风险,消除掉绝大多数隐患。

Expand Down Expand Up @@ -68,7 +68,49 @@ portal/cart.js

我们打算把它变成怎样呢?

首先,js文件里不再存放这些模块的名称和依赖关系:

portal/user.js

function User() {
//User
}

portal/goods.js

function Goods() {
//Goods
}

portal/cart.js

function Cart(User) {
//Cart
}

然后,新建一个文件,用于专门保存路径配置:

var modules = [{
id: "portal.User", location: "portal/user.js"
}, {
id: "portal.Goods", location: "portal/goods.js"
}, {
id: "portal.Cart", location: "portal/cart.js", dependencies:["portal.User"]
}];

这时候我们完全可以任意更改某模块的物理路径,也可以对模块重命名,只需要同时查找各依赖项中相同的,也一起改掉即可,这就实现了物理存储和逻辑结构的分离。

在整个项目中,这个文件至关重要,架构师需要凭借它来掌握代码结构,开发人员需要它来跑单元测试,配置管理员需要用它发布版本。

很多时候,这么一个配置文件还是不够的,为什么呢,因为很多情况下有合并文件的需求,我们可以在这个文件基础上加一些结构,也可以额外再建一个配置文件,专门用于处理合并的信息。

#2. 界面的整合

我们构建一个Web系统,免不了有时候要集成别人,也可能被别人集成。

#3. 样式的隔离



整个系统的复用原则是:

Expand Down

0 comments on commit 771fd93

Please sign in to comment.