关于框架的一些思考

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

自己的框架。

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

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

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

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

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

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

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

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

选择我们需要的工具来完成任务。

创建自己的框架。

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

的框架中。这就需要我们仔细考虑选用何种合适的开源框架组件。

为自己的框架选择部件。

下面这些原则可以帮助在选择框架部件中做出决策:

1、是否满足自己的功能需要;

2、是否理解功能概念,是否容易扩展。打破框架都是我们极力避免的,但有时候却避免不了这种情况;

3、是否有一个活跃的社区,是否有公司在背后支持;

4、社区是否稳定,能否提供稳定的支持;

5、管理是否规范,是否有版本控制和BUG跟踪;

6、当前版本是否未定;

7、当前公开的BUG和关闭的重要BUG的数量;

8、最后,是否有丰富的文档,是否有教程;

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏WeTest质量开放平台团队的专栏

【iOS性能测试工具】五步快速上手指南

WeTest 提供的iOS性能测试工具包括兼容测试、性能测试、功能测试等,测试结果包括CPU消耗、内存消耗、Log日志、错误原因及分析。

2622
来自专栏企鹅号快讯

互联网应用架构标准模型

随着互联网的普及,越来越多的企业也开始往互联网化转型,相应的企业也要为此构建配套的互联网应用。软件架构方面,很多企业一味求快,而放弃很多需要坚持的原则,这会带来...

2660
来自专栏编程微刊

推荐一个好用的截屏动态图制作工具

在这篇文章之前,每次写博客的时候,想要展示一下实现的效果,截图展示,不方便理解,一直想着去做成gif动态图片,但以为是一件很麻烦的事情,所以就撂下了,今天研究了...

672
来自专栏Youngxj

捕鱼达人html在线游戏源码

2404
来自专栏互联网杂技

小程序来了

2017年1月9日,小程序如约而至。 小程序究竟该如何获取?首先,你需要将微信更新至iOS6.5.3版本或Android6.5.3版本,其次,你得尝试使用一个小...

3848
来自专栏CSDN技术头条

为什么要从PHP转向Go,及满足于使用MySQL

? 左:ElePHPant(Vincent Pontier),右:Gophers (golang.org)。此二者分别是PHP和Golang的吉祥物 【译者注...

42310
来自专栏ATYUN订阅号

【业界】iOS Bug解决办法:如何防止Siri读出隐藏的通知

AiTechYun 编辑:yuxiangyu ? 尽管苹果尚未针对iOS错误展开修复,使得Siri能够读出隐藏的锁屏通知,但以下方法可以解决目前的安全漏洞。 ...

3444
来自专栏Python自动化测试

对接口自动化测试的几点思考(一)

在自动化的测试体系中,目前应用的比较多,包含了UI自动化测试和接口自动化测试,在UI的自动化测试中使用最广泛的是Selenium框架,移动端是Ap...

1694
来自专栏云计算D1net

如何最小化云API升级造成的中断?

云提供商升级API时,开发者必须升级并重新测试自己的软件,如何为这个过程做好准备并且最小化影响? 云提供商为了扩展和改善服务进行了服务升级,通常需要进行API升...

2823
来自专栏Rainbond开源「容器云平台」

【微服务干货系列】Yelp公司总结的微服务架构的实践经验

1242

扫码关注云+社区

领取腾讯云代金券