本课程内容概览
了解本课程的交付成果、适合人群以及课程结构。
构建一个网络应用
本课程旨在简化创建交互式、数据驱动的网络应用的路径。网络应用是推动现代经济的核心引擎,但只要有计算机和学习的意愿,任何人都可以创建它们。
对初学者而言,学习如何构建网络应用时会面临令人眼花缭乱的选择。常常难以判断哪些选项是互斥的,哪些可以协同使用(即可以组合在一起)。
同时也会产生许多问题:应该构建静态网站、多页面应用还是单页面应用?是否需要数据库?如果需要,应选择 SQL 还是 No-SQL?如何编写在浏览器中运行的前端代码?是否需要管理前端与服务器之间的通信?如何确保你的应用按预期工作?假设所有这些都顺利进行,又该如何将应用部署到互联网上,让他人使用?
这些问题很多,而网络论坛中充斥着各种基于技术细节的争论。本课程避免陷入这类争论,而是帮助你做出合理选择并坚定执行。当然,某些应用可能确实受益于特定的技术方案,比如特定语言、框架或数据库,但对于初学者来说,最好从通用方案入手。换句话说,我们只需选择合适的后端和前端框架,以及一个可靠的数据库来开始学习。我们将挑选那些文档完善、社区支持良好且能适应绝大多数需求的技术,然后深入理解它们的工作原理以及如何协同工作。最后,我们会引入一些最佳实践,如身份验证、测试和文档编写,并以最简便的方式完成部署。本课程已为你做出这些合理选择,以优化学习流程,让你快速获得动手实践经验。
适合谁来学习这门课程?
本课程适合任何希望从零开始掌握完整网络应用开发(从前端到后端)的人,但又不想陷入“产品X vs 产品Y”这类无休止争论的人。这不仅适用于创业者和发明家,也适合那些更关注应用本身而非纠结于哪种工具“最酷”的人。
除了开发者之外,本课程也适合那些希望将网络应用开发作为职业或严肃爱好,却不知从何入手的人。与其一开始就专攻某个方向(如后端、前端、用户体验、数据库管理),不如先体验每个环节。只有这样,你才能充分了解自己是否愿意深入某个领域,以及具体想专精哪一部分。
作为一名全栈网络开发者,拥有独立自主的成就感是独一无二的。你可以独自将一个想法变为现实。这也意味着当你需要帮助时,你能更好地理解各个角色的需求,从而更有效地获取和利用资源。这种更广阔的视角正是从全栈开发起步的一大优势。在此基础上,你可以选择深入某个技术模块,拓展学习其他技术,转型为产品经理,或实现自己的宏大项目。本课程的内容将为你打开众多可能性。
熟悉 Python 和 JavaScript 会有帮助,因为我们将在这两种语言中编写代码。不过你只需要具备基础理解,如果目前不熟悉,也可以在学习过程中逐步掌握。
本课程采用的技术栈基于 Flask(Python)框架、React(JavaScript 或 JSX)框架,以及通过 SQLAlchemy 包(Python)连接的 PostgreSQL 数据库。这些选择非常优秀,因为它们功能强大、易于使用、可扩展性强且广受欢迎。
如果你喜欢学习具有广泛适用性的知识,那么这门课程非常适合你。它将帮助你开展更有趣的个人项目,更容易获得工作机会,或将你的创业构想打造为最小可行产品。
课程结构
本课程的设计目标是从完全的网络开发新手,逐步引导你独立构建一个网络应用。为此,我们将从基础组件开始,逐步搭建。
课程遵循从头到尾的应用开发流程,同时融入一些实用的工程技能,如文档编写和测试。即使独自工作,这些方法也至关重要,有助于我们持续追踪代码的功能演变,并建立对代码正确性的信心。
示例网站与代码
在 REST API 创建和网络应用开发教程中,最常见的例子是一个待办事项列表,用户可以添加和标记完成任务。这个例子足以展示 REST API 的运作机制,但并未深入讲解其内部组件如何协同工作。本课程则构建了一个“猜字游戏”(Hangman)的变体版本,玩家需猜测缺失的单词。我们对其进行了改进:支持语言选择,并从一部著名小说中提取对应语言的上下文句子。
动手尝试
- 点击“运行”按钮,启动后端服务器。
- 要启动前端,请点击“+”打开新终端,然后在其中执行以下命令:
1cd langman/client 2export PORT=5000 3npm start
- 打开“输出”标签页,输入你的名字,然后点击“开始游戏”。
No configuration found for ID: 49aa269e3bf266464285275d22497d36baf0a50afe4930a1fded8119088388ae