我们究竟应不应该使用框架?

栏目: IT资讯 · 发布时间: 5年前

内容简介:Van Buul 认为,类库是由类和函数组成的一组代码,这些代码可供应用程序使用,但本身又不是应用程序的一部分,应用程序通过函数调用或方法调用与类库交互。而框架则是一种特殊的类库,应用程序实现了框架提供的接口,或者使用框架提供的注解。代码在两者中的调用方向完全相反,框架调用应用程序代码,而类库则被应用程序代码调用。

AxonIQ 商业主管及 Axon 框架 布道师 Frans van Buul 近日在其博客中发表了一篇关于框架和类库孰优孰劣的文章,引起了人们的热议。虽然很多人提倡类库反对框架,但 Frans 仍然提出了一些倾向于框架的见解,详细内容请见正文。

AxonIQ 商业主管及 Axon 框架 布道师 Frans van Buul 近日在其博客中发表了一篇关于框架和类库孰优孰劣的文章,引起了人们的热议。尽管很多人更倾向类库,但 Van Buul 仍然认为框架对 商业程序开发非常有价值 ,尤其是那些使用了 CQRS (命令查询职责分离)、 DDD (领域驱动设计)、 event sourcing (事件溯源)等架构的应用程序。

Van Buul 认为,类库是由类和函数组成的一组代码,这些代码可供应用程序使用,但本身又不是应用程序的一部分,应用程序通过函数调用或方法调用与类库交互。而框架则是一种特殊的类库,应用程序实现了框架提供的接口,或者使用框架提供的注解。代码在两者中的调用方向完全相反,框架调用应用程序代码,而类库则被应用程序代码调用。

Van Buul 认为,几乎所有的应用程序都用到了框架,即使只是一个单纯的 Java 应用程序也在无形中使用了框架,毕竟 Java 代码仍然需要运行在 Java 虚拟机这个“大框架”中。他还指出,大多数商业应用程序都会提供基于 Web 的接口,并使用抽象层为应用程序创建入口,这其实也是在使用框架。

Van Buul 认为,框架之所以优越,是因为 CQRS、DDD 以及事件溯源。首先使用框架可以把 程序员 从底层开发中解放出来,只需要关注业务逻辑。他指出,很多时候,人们没有使用类库而是选择构建自己的框架,这只会让事情变得更复杂,也会让程序员花费很多额外的时间。他强烈反对这种情形,因为这样不但会加大风险,还会增加成本。他引用了 CQRS 之父 Greg Yong 在 2016 年 DDD 欧洲大会 中的 演讲 原话:

不要自己开发 CQRS 框架。

Peter Kummins 则认为,框架是 系统开发中最大的反模式 ,他认为框架难于上手,也大大增加了项目的复杂度和依赖性。他认为软件开发应该保持简单,使用稳定的基础工具,尽量采用核心语言方案,最大程度地避免使用框架或类库。

Kummins 反对框架的主要原因有:

  • 难学,技术很难应用到其他地方

  • 限制了开发人员的创造性

  • 增加了项目的复杂度

  • 框架随时有被遗弃的可能性

Mathias Verraes 同意 Van Buul 对框架的定义,并做了如下引用:

类库被你的代码调用,但框架主动调用你的代码。

反对 使用 框架 ,认为一个超过十年的框架将比那些难懂、过时甚至抽象混乱的代码更难维护。他建议只在短周期开发项目中使用框架,如果开发周期允许,还是尽量避免使用框架。

Tomas Petricek 也同意 Van Buul 对框架的定义,但他认为使用框架最大的问题是 难以 共容 。当使用两种框架时,几乎很难把一个框架应用到另一个框架中,但是类库就可以很容易的避免这个问题。他同时也认为框架很难深入理解并且会影响你的编码方式。

Petricek 倾向于使用功能类库的设计原则,并指出,避免使用框架和回调的一种方法是使用异步工作流和基于事件驱动的编程机制。这种机制并不是要提供抽象函数或虚函数,而是在需要完成某些操作时触发事件。他还指出,事件机制并不能让我们控制什么时候发生事件,我们只能控制事件发生后的东西。如果你不喜欢这种方式的话,就只能使用可组合的类库,而且要为问题的不同部分选择不同的类库。

最后, Van Buul 强调,类库比框架更灵活,但这也要取决于所使用的框架。如果是不能扩展的框架,那自然也就没什么灵活性可言,但如果是定义了开放性接口的开源框架,其灵活性则一点不会比类库差。

英文原文: https://www.infoq.com/news/2019/02/frameworks-libraries-axon


以上所述就是小编给大家介绍的《我们究竟应不应该使用框架?》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

C# Primer Plus

C# Primer Plus

Klaus Michelsen / Sams / 2001-12-15 / USD 49.99

C# Primer Plus is a tutorial based introduction to the C# language and important parts of the .Net Framework. Throughout the book the reader will be exposed to proven principles enabling him to write ......一起来看看 《C# Primer Plus》 这本书的介绍吧!

HTML 压缩/解压工具
HTML 压缩/解压工具

在线压缩/解压 HTML 代码

SHA 加密
SHA 加密

SHA 加密工具

HSV CMYK 转换工具
HSV CMYK 转换工具

HSV CMYK互换工具