关于框架的一些思考

简介: 如果你的团队很小并且在软件开发领域也没什么经验,那么放下包袱使用开源框架吧(OSS Framework),但是如果你有一个很大而且有丰富经验的团队,那么最好还是开发自己的框架。什么是框架,并没有明确的解释,但是似乎我们听到这个名词以后大概都知道是怎么回事。
如果你的团队很小并且在软件开发领域也没什么经验,那么放下包袱使用开源框架吧(OSS Framework),但是如果你有一个很大而且有丰富经验的团队,那么最好还是开发
自己的框架。

什么是框架,并没有明确的解释,但是似乎我们听到这个名词以后大概都知道是怎么回事。Wiki上是这么定义的:框架是一种可复用的系统化设计。
软件的框架会包括支持程序、代码库、脚本语言以及一些其他的软件来帮助开发或者将项目中不同部分的组件联合起来。外界看来框架的不同部分就像是各种API。

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

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

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

在PHP开发中,框架通常都定义了一种MVC的实现,更进一步的会提供一个抽象的数据层、一套模版系统、一个测试框架或者其他的一些东西。
框架必须提供应用开发指导,这是非常重要的。在指导下进行新模块的设计、建立通用的文件夹结构、命名空间设计、测试设计等等。框架一般都应该包含一些通用的任务,
比如说邮件发送这样在WEB应用中非常常见的功能。另外有一些功能可能只有特定的框架中才有,比如说图像处理这样非常依赖应用类型的功能。有一点我们需要始终记住,
选择我们需要的工具来完成任务。

创建自己的框架。

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

为自己的框架选择部件。

下面这些原则可以帮助在选择框架部件中做出决策:
1、是否满足自己的功能需要;
2、是否理解功能概念,是否容易扩展。打破框架都是我们极力避免的,但有时候却避免不了这种情况;
3、是否有一个活跃的社区,是否有公司在背后支持;
4、社区是否稳定,能否提供稳定的支持;
5、管理是否规范,是否有版本控制和BUG跟踪;
6、当前版本是否未定;
7、当前公开的BUG和关闭的重要BUG的数量;
8、最后,是否有丰富的文档,是否有教程;
相关文章
|
1月前
|
前端开发 JavaScript
框架
框架
13 3
|
7月前
|
机器学习/深度学习 计算机视觉
AIGM 框架
AIGM (Adaptive Image Generation and Manipulation) 是一个基于深度学习的图像生成和处理框架。它使用先进的生成对抗网络 (GAN) 和变分自编码器 (VAE) 技术,可以实现图像的自动生成、转换、编辑和增强等功能。
141 8
|
8月前
|
SQL XML 前端开发
1.1 初识框架
思考:框架是什么?我们为什么要学习框架呢?“框架(Framework)”一词最早出现在建筑领域,指的是在建造房屋前期构建的建筑骨架。在编程领域,框架就是应用程序的骨架,开发人员可以在这个骨架上加入自己的东西,搭建出符合自己需求的应用系统。实际开发中,随着业务的发展,软件系统变得越来越复杂,如果所有的软件都从底层功能开始开发,那将是一个漫长而繁琐的过程。此外,团队协作开发时,由于没有统一的调用规范,系统会出现大量的重复功能的代码,给系统的二次开发和维护带来不便。为解决上述问题,框架应运而生。
51 0
|
8月前
|
存储 Java 应用服务中间件
|
9月前
v4l2框架
v4l2框架
79 0
|
9月前
|
IDE Linux 开发工具
C++之openFrameworks框架
openFrameworks(简称 oF)是一个基于C++的开源库。 它提供了丰富的功能库和工具,用于快速开发多媒体、交互性和艺术创作相关的应用程序,如艺术装置、互动艺术、音视频作品、实时图形等。oF 的设计目标是让创意编程变得更加简单、直观和灵活,使艺术家、设计师、创意工作者等能够利用编程进行创作和表达。oF提供了丰富的图形、音频、输入输出、计算机视觉等功能库,并支持跨平台开发,适用于Windows、Mac OSX、Linux等操作系统。oF的社区活跃,有大量的用户和开发者共享和贡献了各种扩展、插件和示例代码。
88 0
|
程序员 测试技术
【提高自己】正确的工作方法,形成自己的思考框架
在学习过程中,将老师的知识用脑图的形式记录下来,在这里做个分享,不足之处欢迎大家指出。
|
SQL JSON 前端开发
|
传感器
CoreMotion 框架
CoreMotion框架(一)—— 基础理论CoreMotion框架(三)—— 获取陀螺仪数据CoreMotion框架(二)—— 利用加速度计获取设备的方向CoreMotion框架(四)—— 仿摩拜贴纸小球碰撞动画 ...
940 0