关于本课程
获取课程的简要介绍。
过去二十年间,Web 开发变得越来越复杂。
从最初在桌面电脑的 Internet Explorer 中由服务器请求并渲染的简单 HTML & CSS,
到如今针对网络带宽有限的移动设备优化的代码拆分和按需内容加载,
这趟旅程可谓精彩纷呈,且似乎毫无放缓迹象。与此同时,众多“最佳实践”也让开发者在工具链和流程上感到不堪重负。在本课程中,我们将踏上一段旅程,实现每次向默认分支提交代码时的自动化生产环境部署。
JAMstack
截至 2020 年春季,当前的 Web 开发趋势被称为
“JAMstack”。
JAM 代表 JavaScript、API 与 Markup。
在课程后续内容中,我们将深入探讨这一主题。
目前,你只需理解 JAMstack 的高层概念即可:
“你在构建时生成 Web 应用的静态版本,该版本由 HTML、CSS 和 JavaScript 组成。将这些资源部署到内容分发网络(CDN),从而供你的 Web 应用用户浏览器访问。”
让我们稍作思考。这听起来是否很熟悉?它与“基本 HTML & CSS 由服务器请求并在 Internet Explorer 中渲染”非常相似。你可能会觉得我们花了大约二十五年才回到原点,而这个想法其实并不算离谱。然而,一路上我们取得了巨大进步,如今的 Web 框架、浏览器和编程语言相比二十年前要强大和复杂得多。
常见问题
伴随着这些进步,框架、编程语言、工具和最佳实践的列表也不断增长:你想要的应有尽有。无论你是经验丰富的 Web 开发者,还是第一次学习如何构建 Web 应用,都可能问自己一系列问题:
-
我们应该使用哪些框架?
-
使用 JavaScript?还是 TypeScript?CoffeeScript 呢?或者另一种语言?
-
我们如何为 Web 应用进行样式设计?纯 CSS?CSS-in-JS?Sass?是否使用 CSS 框架?如果使用,是哪一个?
此外,Web 应用很可能需要某种后端和持久化层。这又引出更多问题:
-
前端与后端通信的最佳方式是什么?REST API?大家都在谈论 GraphQL 是最佳选择。
-
我们该如何托管后端?哪种方案最经济实惠?哪种能全球扩展?我们需要全球扩展吗?
-
数据存储在哪里?MySQL?PostgreSQL?基于文档的 NoSQL 数据库?
即使我们找到了上述所有问题的答案,仍需考虑:
- 代码质量与维护
- 测试
- 部署
- 生产支持
我们邀请勇敢者查看下方图片,以直观感受我们所指的复杂性。
在本课程中,我们将学习对个人项目和团队项目最有效的方案。同样重要的是,我们还将了解哪些方法行不通,以便你和你的团队能够避免他人已经犯过的错误。