什么是软件框架?

有人能解释一下我的软件框架是什么吗? 为什么我们需要一个框架? 框架如何使编程更容易?


我很迟才回答。 但是,我想分享一个我今天只想到的例子。 如果我告诉你要裁剪一张尺寸为5米乘5米的纸,那么你肯定会这样做的。 但是,假设我要求您裁切1000张尺寸相同的纸张。 在这种情况下,您不会进行1000次测量; 显然,你会制造一个5米×5米的框架,然后在它的帮助下,你可以在较短的时间内裁剪1000张纸。 所以,你所做的是制定一个框架来完成特定类型的任务。 不是一次又一次地为相同类型的应用程序执行相同类型的任务,而是创建一个框架,将所有这些工具组合在一个很好的数据包中,从而为您的应用程序以及更重要的是许多应用程序提供抽象。


从技术上讲,你不需要一个框架。 如果你正在制作一个非常简单的网站(想想1992年的网络),那么你可以用硬编码的HTML和一些CSS来完成。

如果你想制作一个现代的webapp,你实际上并不需要为此使用框架。

您可以选择每次都写自己需要的所有逻辑。 您可以编写自己的数据持久性/存储层,或者 - 如果您太忙 - 只需为每个数据库访问编写自定义SQL。 您可以编写自己的身份验证和会话处理图层。 和你自己的模板渲染逻辑。 还有你自己的异常处理逻辑。 和你自己的安全功能。 和你自己的单元测试框架,以确保一切正常。 而你自己... [持续很长时间]

再次,如果你确实使用了框架 ,那么你可以从好几十个其他开发者那里得到好的,通常是同行评审和非常好的测试工作中受益,他们可能比你更好。 您可以快速构建自己想要的内容,而无需花费时间构建或担心上面列出的基础架构项目。

您可以在更短的时间内完成更多任务,并且知道您正在使用或扩展的框架代码很可能比您自己做的更好。

这个成本呢? 投入一些时间学习框架。 但是 - 几乎所有的Web开发人员都会证明 - 使用任何你选择的框架来学习获得巨大(真正的,巨大的)好处是绝对值得的。


维基百科(软件框架)的摘要(第一次谷歌命中btw)很好地解释它:

计算机编程中的软件框架是一种抽象,其中提供通用功能的通用代码可以被选择性地覆盖或由提供特定功能的用户代码专门化。 框架是软件库的一个特例,它们是可重复使用的抽象代码,包含在定义良好的应用程序编程接口(API)中,但它们包含一些将它们与常规库分开的关键区别特征。

软件框架具有将这些功能与库或普通用户应用程序分开的独特功能:

  • 控制反转 - 在框架中,与库或普通用户应用程序不同,整个程序的控制流程不是由调用者决定的,而是由框架决定的[1]。
  • 默认行为 - 框架具有默认行为。 这种默认行为实际上必须是一些有用的行为,而不是一系列禁止行为。
  • 可扩展性 - 用户通常可以通过选择性覆盖或用户代码专门提供特定功能来扩展框架。
  • 不可修改的框架代码 - 通常不允许修改框架代码 。 用户可以扩展该框架,但不能修改其代码。
  • 你可能“需要”它,因为它可能为开发应用程序提供了一个很好的捷径,因为它包含了许多已经编写和测试过的功能。 原因与我们使用软件库的原因非常相似。

    链接地址: http://www.djcxy.com/p/21639.html

    上一篇: What is a software framework?

    下一篇: reCAPTCHA 2.0 text display