什么是 Web 框架?为什么要使用它?
“框架”这个词在代码中被频繁使用。那么,框架究竟是什么呢?当我们谈论框架时,这些框架通常分为三类——前端框架、后端框架以及 CSS 或用户界面框架。但是,即使你知道了什么是框架,你仍然应该学习或使用哪一个,以及为什么?这篇文章将讨论什么是框架,有哪些框架,以及如何决定在你的项目中应该使用哪种框架!
什么是框架
如果我们观察几个不同的 Web 应用,就会发现它们有很多重复的功能。许多应用都包含用户身份验证、页面渲染、数据库连接、可查看的配置文件,以及风格化的信息推送等等。如果我愿意,每次构建新应用时,我都可以自己编写所有这些逻辑;然而,也有很多工具可以帮我们完成这些工作。
此外,很多时候,我们在构建应用程序时,都希望以某种方式格式化代码,以提高效率并帮助其他开发者理解我们的代码。Web 框架帮助我们构建应用程序的结构,并提供了无需太多额外工作即可添加的附加功能。框架为我们提供了一个起点,让我们可以专注于功能而不是配置细节。
代码的阅读次数远多于编写次数,因此,当你与其他开发人员合作时,让他们了解特定任务的代码编写位置非常重要,这样他们才能在自己的代码中使用这些代码。框架还制定了关于代码编写和结构的约定,从而规范了开发人员编写代码的方式。
大多数网站都拥有非常相似(甚至可以说是完全相同)的结构。框架的目的是提供一个通用的结构,以便开发人员无需从头开始重新设计,并可以重复使用已提供的代码。这样,框架可以让我们减少大量的工作,节省大量的时间。
总结一下:没有必要重新发明轮子。
来自Awwwards。
从本质上讲,框架只是代码库(即其他人的代码),而且流行的框架都是开源的!所以你可以在线查看你的库的代码!
后端与前端
-
Web 应用程序的前端是您可见并与之交互的部分。它由网页设计和网站交互组成。就编程语言而言,它几乎总是由页面的 CSS、HTML 和 JavaScript 组成。
-
后端由服务器、数据库以及与它们交互的代码组成。后端还包括向网站前端提供动态数据的代码。大多数编程语言都可以处理后端。我们今天主要讨论的是 Python、Ruby 和 Node.js,但还有无数其他编程语言。
用户界面框架
用户界面框架有助于创建风格化且专业的 Web 应用程序。大多数框架都包含某种网格系统,以便您对齐元素;它们拥有配色方案,以便您进行处理;它们还会使用 CSS 为您的 HTML 组件添加样式,使其看起来简洁而专业。这些都属于前端领域;然而,通常我们所说的前端框架指的是 JavaScript 框架。
一些用户界面框架包括:
- 引导程序
- 非常知名且由 Twitter 打造
- 易于学习且看起来很专业
- 很容易就能识别出“Bootstrap 网站”
- 定制组件可能很困难
- 实现
- 干净整洁
- 比 Bootstrap 更“有趣”
- 多种款式和颜色选择
- 遵循 Google 的 Material 风格指南
- 基础
- 很多例子
- 专业外观
- 语义用户界面
- 内置大量
- 内置主题,可定制
- 索环
- 非常注重可访问性
- 看起来非常干净
- 不像其他一些那样常用
- 专为 React JS 打造(我们稍后会介绍的另一个框架)
选择 UI 框架
选择用户界面框架主要取决于个人对外观的偏好以及网站的目标。不同的风格可能适合不同的行业,也可能向用户传达不同的信息。
前端框架
在大多数情况下,前端框架是用 JavaScript 编写的,用于组织网站的功能和交互性。其中包括:
- Vue
- 易于学习
- 非常快
- 所有相关工具都包装得很好
- 从 Angular 和 React 中获取部分内容并进行优化
- 不如其他一些方法广泛采用
- 灵活——您可以通过多种方式使用它
- AngularJS
- 由 Google 打造
- 得到很好的支持
- 大量功能
- 提高应用程序的可扩展性
- 难以调试
- 学习曲线较大
- Angular 2+
- 由 Google 打造
- 得到很好的支持
- 鼓励可重用性
- 提高应用程序的可扩展性
- 学习曲线较大
- 反应
- 由 Facebook 打造
- 将前端代码捆绑到组件中
- 组织代码和数据,使代码更可重用
- 学习曲线较大
- 余烬
- 提供大量开箱即用的功能
- 固执己见(你必须使用它的格式)
- 学习曲线陡峭
选择前端框架
前端框架的世界发展得特别快,似乎每隔几个月就会有一个新的前端框架崛起。学习适合你的东西,不要太在意哪个是当下“最热门”的。
有些人认为 React 和 Vue 是库而不是框架,但很多人认为它们是框架,所以我把它们都包括在内!
后端框架
后端框架种类繁多,种类繁多。它们由各种编程语言编写,功能也各有不同。与上面的列表类似,下面列出了一些用于编写应用程序后端的框架,但并不完整。
- Spring MVC
- Java(更难学的语言)
- 非常快
- 不那么固执己见
- Django
- Python(更容易学习的语言)
- 在非常固执己见和缺乏条理之间取得平衡
- 为您提供许多开箱即用的功能(如用户身份验证、数据库连接和视图渲染)
- 集成一个花哨的前端可能很困难。
- Python 的数据处理能力令人惊叹
- 烧瓶
- Python(更容易学习的语言)
- 与 Django 相比,更少主观性,更可定制
- 给你的开箱即用功能较少(你必须构建更多)
- Ruby on Rails
- Ruby(更容易学习的语言)
- 非常固执己见
- 拥有脚手架等出色的工具,因此您可以快速构建事物
- 为您提供许多开箱即用的功能(如用户身份验证、数据库连接和视图渲染)
- 资产管道有助于前端开发
- Ruby 运行程序所需的时间比其他一些编程语言更长
- 流星
- JavaScript(更容易学习的语言)
- 为您提供许多开箱即用的功能(如用户身份验证、数据库连接和视图渲染)
- 与现代前端完美集成
- 表达
- JavaScript(更容易学习的语言)
- 高度可定制
- 非常轻便
- 内置功能较少
- Node 非常快
选择后端框架
通常,您会根据编写的编程语言来选择后端框架。此外,还要考虑您想要添加的功能——例如,如果您想要为您的网站进行身份验证(或用户登录),那么在内置身份验证的 Django 中编写它会比在需要额外服务的 Flask 中编写它会容易得多。
了解更多
如果您想使用或学习框架,这里有很多使用不同框架构建的应用程序,您可以评估哪一个最适合您。市面上还有更多不同规模和流行程度的框架,但本文将简要介绍一些流行的框架,并告诉您从哪里开始。对于应该先学什么,没有正确的答案!任何事物都有其利弊,所以请权衡对您来说最重要的因素,然后从那里开始。框架非常有用,在大多数情况下可以大大加快代码编写速度,但在此之前拥有扎实的编程基础也非常重要——因此,请确保您首先熟悉框架所用的语言。框架对于编写网站非常有用,因为它们强制使用框架中的其他开发人员可以理解的结构,并且它们为您提供通用的功能,这样您就不必重新发明轮子了!
从哪里开始学习...
- Django Girls 教程- 我通过他们的在线教程学习了我的第一个框架!
- 代码学院
- TodoMVC
- CodeNewbie 播客
- 不同的编程语言有多快?
如果您需要一个应用程序的想法......
如果你想阅读更多关于框架的文章
- 如何使用 Mux、Go、PostgreSQL 和 GORM 构建 API - Mux 是 Go 编程语言的后端框架!
- 使用 Hyperapp 进行 JavaScript 函数式编程- Hyperapp 是一个我非常喜欢的全新前端框架!
- 作为 React 和 Vue 开发人员学习 Angular 5 - Angular 是一个非常流行的编写大型应用程序的前端框架!
保持联系!
如果您喜欢这篇文章,请查看我的完整博客或订阅我的周五每周总结!
文章来源:https://dev.to/aspittel/what-is-a-web-framework-and-why-should-i-use-one-38c0