当你刚刚学习编程时,你会经常听到“框架”这个词,萌新的开发工程师可能感到有点难于掌握。
在与其它开发者交谈时,在学习新的编码工具时以及其它项目时,你也通常会在技术路线图中遇到不同的框架要用,有时心里不免出现紧张,唯恐掌握不及丢了面儿。
放弃这些无意义的情绪——在本文中你将了解什么是软件工程中的框架、为什么需要框架、有哪些不同类型的框架(以及它们的示例),包括如何开始学习框架。
现在我们开始!
什么是软件框架?
框架从概念上指的是结构,它可以是系统、建筑物、项目或其他任何东西的结构。
现在可以在软件工程中应用此定义,即软件的框架就是软件架构。
软件框架是可用来构建软件的结构。它充当系统的基础,因此上开发者不必从头开始创建,比如非必要的额外逻辑。
框架还类似于模板,你可以对其进行修改并添加某些特性和更高级功能,然后创建许多人可以使用的复杂而普适的项目。
注意:软件框架通常与特定的编程语言相关联。另外还有专门用于后端开发的框架、用于前端开发的框架、用于移动开发的移动框架等。
为什么要使用软件框架?
编写程序很复杂,而编写别人也可以读懂理解并管理维护的代码则更加困难,因为你必须处理好语言的语法、声明、性能等一致性等问题。
软件框架提供了一套模板,其中几乎所有的通用任务都已经处理完毕。这使得开发者可以专注于核心软件开发,而不是流程的细节。
因为框架提供了一个固定的结构,因此与他人协作变得很容易。
如今使用软件框架,而不是从头开始重新发明轮子越来越成为趋势。其最最重要的原因,就是开发者不必从头开始编写所有内容,这减少了蹩脚开发者向代码中添加Bug的机率。
使用框架的主要原因,我们总结如下:
它可以帮助你避免重复和冗余的代码;
没有编写代码的开发人员容易测试和调试;
框架是由一组专门的人员维护,开发者可以放心地使用它们;
框架可帮你编写干净且安全的代码;
开发应用程序所需的时间显著减少,可以专注于编写与项目相关的程序。
软件框架的类型
当你有一个项目需要构建或处理时,首先要决定要使用的编程语言。一旦确定好编程语言,然后寻找适合需求的框架。
市面有许多这样的框架,每一个都有与众不同的独特特征。你可以在软件工程的所有领域找到它们,包括 Web 开发(前端和后端)、移动应用程序、数据科学等等。
让我们看一下在开发过程中会遇到的一些主要类型之软件框架。
Web开发框架
Web 开发涉及创建在互联网上运行的网站。这可以是单页 Web 应用程序、静态网站、动态网站等类型。
在创建这些网页产品时,通常有一个用户可以看到的前端和一个控制和处理逻辑的后端(例如数据库、API 还有其它东西)。
让我们将这些框架分为几类,以便大家知道何时选择和使用。
前端开发框架
React是由 Meta(以前的 Facebook)开发的前端 JavaScript 框架。它可以帮助开发者为网站和 Web 应用程序创建用户界面。它是一种流行的框架,全球数百万开发人员使用它来创建单页应用程序 (SPA)。
React 使用 Redux 进行状态管理,并使用 hooks 来处理组件的行为和逻辑。它还使用 JSX 在 JavaScript 中创建 HTML 和 CSS。
Angular是由 Google Angular 团队开发的基于 TypeScript 的框架。它是一个开源框架,可用于创建单页 Web 应用程序,它类似于 React 。
Angular 具有双向数据绑定(减少开发时间)和依赖注入(使不同代码段更容易交互)等功能。
Vue是用于创建用户界面和单页应用程序的渐进式 JavaScript 框架。它易于学习且写起来很愉快。它是由曾在 Google 工作的 Evan You 构建的,旨在利用 Angular 的最佳部分并围绕它构建一个自定义工具。
Vue3 是目前的最新版本,比以前的版本更快更轻。它还带有改进的 TypeScript 支持和许多其他功能,例如组合 API等特性。
Bootstrap是一个CSS框架,它使开发人员可以使用可重用的 HTML、CSS 和 JavaScript 代码的集合轻松构建完全响应的网站或 Web 应用程序。它在可下载文件或 CDN 中有一组预定义代码,任何人都可以访问与使用。
还有许多其它前端框架,例如 Svelte、Semantic UI 等,这些框架都已经被 Netflix、Uber、Airbnb 等著名互联网公司采用。
后端开发框架
Django是一个后端 Python Web 框架,可以与任何前端框架联合一起使用。它可以帮助开发人员专注于编写和构建一个大项目,而不必再重新发明轮子。
Rails是一个类似于 Django 的开源后端框架,由 Ruby 语言提供支持。它为数据库、Web 服务和网页提供默认结构。它旨在减少代码和重复,并得到大型社区的支持。
它也被称为 Ruby on Rails。您可以在本课程中了解更多关于 Rails 以及如何开始的信息。
还有许多其它后端框架,例如 Express、Laravel 等等。这些框架被 Twitter、Shopify、Coinbase 等著名互联网公司用于构建网站和应用程序。
移动应用程序框架
Flutter是由 Google 创建的开源 UI 软件开发工具包。它使用 Dart 编程语言和一些 C/C++。你可以使用它从单个代码库中为 Android、Windows、Linux、macOS、iOS、Web 等设备开发跨平台应用程序。
它于 2017 年开发发布,此后被阿里巴巴、宝马等大公司使用,如Flutter 展示网页所示。
React Native是 Meta 开发的开源跨平台 Javascript 框架。跨平台意味着你可以用它来开发一个代码库的Andriod、IOS和Web应用。
React Native 使用 React 框架并提供许多内置组件和 API。还有许多其他移动应用程序框架,例如 ionic、Xamarin 等等。这些框架用于为 Discord、Bloomberg 等著名公司构建流行的应用程序。
数据科学框架
PyTorch是一个基于 Python 语言和 Torch 库的开源机器学习框架。它是深度学习研究的首选平台之一。它旨在加快研究原型设计和生产部署之间的过程。
TensorFlow是由 Google 开发的用于机器学习和人工智能的免费开源 Python 库。它拥有一个由工具、库和社区资源组成的全面、灵活的生态系统,可让研究人员深入研究机器学习。开发人员还可以使用它来快速构建和部署 ML 驱动的应用程序。
还有许多其他数据科学框架,例如 Apache Spark、Scikit-learn 等等。微软、思科、亚马逊等大公司亦在使用这些框架。
如何开始学习软件框架
在讨论这些框架时,你会注意到我们还讨论了特定的编程语言,这是因为每个框架都严重依赖于特定的编程语言。
在学习框架之前,我们应该对框架使用的编程语言有充分的了解。例如,如果想学习 React,你必须首先了解JavaScript 和它的一些关键概念。这也适用于其它框架。
最后,你对编程语言了解得越多,就越容易掌握框架的功能。编程语言为许多技术职业道路提供了坚实的基础,这对于理解框架至关重要。
总结
在本文中,我们了解了软件框架是什么、它们如何工作以及如何开始学习其中的任何一个框架。
需要注意的是,这只是众多可用框架中的一小部分。几乎每种编程语言都有N个框架,旨在使该语言的使用更加直接,让开发者可以专注于构建自己的项目。
在开始构建或编写代码之前,最好先研究哪个框架最适合我们的需求。
祝各位玩得开心!Happy Coding!
作者:手扶托拉斯基