关于框架的一些思考

如果你的团队很小并且在软件开发领域也没什么经验,那么放下包袱使用开源框架吧(OSS Framework),但是如果你有一个很大而且有丰富经验的团队,那么最好还是开发自己的框架。

什么是框架,并没有明确的解释,但是似乎我们听到这个名词以后大概都知道是怎么回事。Wiki上是这么定义的:框架是一种可复用的系统化设计。

软件的框架会包括支持程序、代码库、脚本语言以及一些其他的软件来帮助开发或者将项目中不同部分的组件联合起来。外界看来框架的不同部分就像是各种API。

根据这个定义,框架最基本核心的思想就是可复用的设计,更进一步的框架才会包含辅助程序、代码库和粘合性的代码。

“在代码可用这个层面上来讲,框架类似于API或者各种代码库,但与此不同的是,框架中流程控制不是由调用者,而是由框架本身决定的。”

各种各样的框架定义都表明,框架就是定义在开发过程中事情通常是怎么做的,框架定义了代码的结构、通用的样式。

在PHP开发中,框架通常都定义了一种MVC的实现,更进一步的会提供一个抽象的数据层、一套模版系统、一个测试框架或者其他的一些东西。

框架必须提供应用开发指导,这是非常重要的。在指导下进行新模块的设计、建立通用的文件夹结构、命名空间设计、测试设计等等。框架一般都应该包含一些通用的任务,

比如说邮件发送这样在WEB应用中非常常见的功能。另外有一些功能可能只有特定的框架中才有,比如说图像处理这样非常依赖应用类型的功能。有一点我们需要始终记住,选择我们需要的工具来完成任务。

创建自己的框架。

开发自己的框架并不意味着一定要重复的制造轮子,编写MVC这样的扩展代码是非常费时间的一项工作。我们可以根据自己的需要,选择一些开源框架中的组建来加入到自己的框架中。这就需要我们仔细考虑选用何种合适的开源框架组件。

为自己的框架选择部件。

下面这些原则可以帮助在选择框架部件中做出决策:
1、是否满足自己的功能需要;
2、是否理解功能概念,是否容易扩展。打破框架都是我们极力避免的,但有时候却避免不了这种情况;
3、是否有一个活跃的社区,是否有公司在背后支持;
4、社区是否稳定,能否提供稳定的支持;
5、管理是否规范,是否有版本控制和BUG跟踪;
6、当前版本是否未定;
7、当前公开的BUG和关闭的重要BUG的数量;
8、最后,是否有丰富的文档,是否有教程;

cocowool

A FULL STACK DREAMER!