• HOME
  • DOCS
  • WTF
  • TECH
  • LIFE
  • PAGES
    • ARCHIVE
    • TAGS
    • ABOUT
    • FRIENDS
    • RSS
  • TOOLS
    • GEO
    • RANDOM()
    • GOO.GL
    • CSS HEART
Aj's Blog

记录时间溜走的瞬间和折腾过的那些事

科普:什么是开发模式和开发框架?
2011-09-15 @ TECH 1

一、什么是模式?

模式,即pattern。

其实就是解决某一类问题的方法论。

你把解决某类问题的方法总结归纳到理论高度,那就是模式。

Alexander给出的经典定义是:每个模式都描述了一个在我们的环境中不断出现的问题,然后描述了该问题的解决方案的核心。

通过这种方式,你可以无数次地使用那些已有的解决方案,无需在重复相同的工作。

模式有不同的领域,建筑领域有建筑模式,软件设计领域也有设计模式。

当一个领域逐渐成熟的时候,自然会出现很多模式。

为什么要用模式?

因为模式是一种指导,在一个良好的指导下,有助于你完成任务,有助于你作出一个优良的设计方案,达到事半功倍的效果。

而且会得到解决问题的最佳办法。

二、什么是框架?

框架,即framework。

其实就是某种应用的半成品,就是一组组件,供你选用完成你自己的系统。

简单说就是使用别人搭好的舞台,你来做表演。

而且,框架一般是成熟的,不断升级的软件。

为什么要用框架?

因为软件系统发展到今天已经很复杂了,特别是服务器端软件,设计到的知识,内容,问题太多。

在某些方面使用别人成熟的框架,就相当于让别人帮你完成一些基础工作,你只需要集中精力完成系统的业务逻辑设计。

而且框架一般是成熟,稳健的,他可以处理系统很多细节问题,比如,事物处理,安全性,数据流控制等问题。

还有框架一般都经过很多人使用,所以结构很好,所以扩展性也很好,而且它是不断升级的,你可以直接享受别人升级代码带来的好处。

框架一般处在低层应用平台和高层业务逻辑之间的中间层。

是否框架就可以意味着更好,更快呢?

答案是否定的,和其它任何事物一样,当我们使用框架的时候,一个框架拥有优势也同时也会拥有缺点。

这里常常有些重要的因素你需要提前考虑到。

使用框架的优势:

1. 高效:一些任务可能需要花费你数个小时几百行代码完成,而现在只需要简单几分钟完成。开发变得简单,快速,并且有效

2. 安全:许多的框架都拥有安全的实现。最大的优势在于强大的社区支持。使用者成为了测试人员。如果你发现漏洞或者安全隐患,你可以去框架所在网站报告,让维护的人知道并且解决。

3. 成本:很多框架都是免费,并且开发人员编写代码更快,所以客户成本自然更低

4. 支持:和其它的发布工具类似,框架也有文档支持,团队支持,或者大的社区能迅速帮你解决问题

使用框架的劣势

1. 你学习的是框架,不是语言本身,我相信这是主要的问题。如果你使用框架,自然对于基础其背后的语言会知之甚微,使用jQuery来编程和使用javascript有很大不同。简单来说,会jQuery,不代表你会javascript。

2. 限制,框架的核心不能被修改,意味着如果你使用一个框架,你必须尊重这种限制,并且遵循它要求的方式。你必须找到一个框架满足你的需要。

3. 代码是公开的,因为框架任何人都可以使用,因此对于某些怀有不良目地的人来说也是有效的。他们可以寻找框架的漏洞来对付你。

三、软件为什么要分层?

为了实现“高内聚、低耦合”。

把问题划分开来各个解决,易于控制,易于延展,易于分配资源。

常见的设计模式有什么?

首先,你要了解的是GOF的《设计模式–可复用面向对象软件的基础》一书,这本书讲了23种主要的模式,包括:抽象工厂、适配器、外观模式等。

还有其他的很多模式,估计有100多种。

软件设计模式太多,就我的理解简单说一下最常见的MVC模式。

MVC模式是1996年由Buschmann提出的:

模型(Model):就是封装数据和所有基于对这些数据的操作。

视图(View):就是封装的是对数据显示,即用户界面。

控制器(Control):就是封装外界作用于模型的操作和对数据流向的控制等。

另外:

RUP(Rational Unified Process)软件统一过程,XP(Extreme Programming)极端编程,这些通常被叫做“过程方法”,是一种软件项目实施过程的方法论,它是针对软件项目的实施过程提出的方法策略,也是另一个角度的模式。

下一篇:   科普:什么是版本控制系统?
上一篇:   科普:常见的软件开发方法
  • 陈亮 says:
    July 4, 2015 at 08:30

    收益匪浅

    Reply
  • Cancel reply