网站开发

如何搭建一个博客

中级

大约 3 个月

6小时每周 (按照自己的节奏)

加入成千上万的全球学员

开始免费课程

加入课程
免费
可享受
课程视频
实战练习
中级

大约 3 个月

6小时每周 (按照自己的节奏)

加入成千上万的全球学员
观看网站开发课程介绍
观看视频

课程概述

试想你坐在计算机前,第一次准备开始开发一个功能齐全的 Web 应用,可在线供上百万人使用。“我该从哪开始?这会花费多长时间?我会在这个过程中犯错吗?”这些问题想必会让你惴惴不安,预感开发之路将充满艰辛。

在此中级课程中,Steve Huffman 将教授他在开始构建 Reddit 及近期推出的 Hipmunk 网站时作为首席工程师所遇到的所有问题及心得。此课程从网页运作的基础原理入手,将带你认识所有核心网页开发概念,例如互联网与浏览器是如何配合工作的、形式验证、数据库、API、与其他网站集成、规模问题等;这些都构成了构建 Web 应用的重要知识板块。

为什么学习这门课程?

通过学习此课程,你将踏上构建自己的 Web 在线应用的数字探险之旅。经验是最好的老师,Steve 将凭借自己长久以来的实践经验,以全新的角度带你在课堂中学习如何轻松应对潜在挑战,成功构建自己的 Web 应用。
此课程提倡从实践中学习。在深入到课程体验阶段后,你将有机会参与众多非常棒的项目:

  • 你是否曾想过一个全新的博客是如何建立起来的?在前 6 课中,你将跟随 Steve 构建一个功能齐全的在线博客,在课程结束时可供任何人阅读。

  • 你是否曾想过维基 (wiki) 是如何运作的?作为此课程的最终项目,你将能够运用新学到的所有知识,建立一个完整的维基。

此课程重点在于后端开发,但是无论是对前端开发、后端开发还是之间的任何环节感兴趣,本课程都将教授你进入网页开发世界的基础知识。准备好了吗?

先修要求

要充分利用此课程,你得先做好足够准备。此课程需要学习者具备使用 Python 编程的中级水平,以及以下话题的扎实知识基础:

  • 基本的计算机科学概念,如程序、决策语句和循环。
  • 基本数据结构,例如列表、字典和哈希表。
  • 面向对象编程。

请自行查看计算机科学导论Python:编程基础课程,确保你了解课程要求的这些概念。

查看使用优达学城的技术要求

学习计划

第 1 课:网页的工作原理(2.5 小时)

在第一课中,你将学习互联网、浏览器、HTML 的基本概念以及这些元素之间是如何联系的。首先你将使用 HTML(超文本标记语言)创建网页内容格式,然后你将逐步理解网页的工作机制:使用超文本传输协议,通过 GET 和 POST 请求运作。在第一个问题集中,你将建立一个简单的网站并借助 Google App Engine 平台运行它。

第 2 课:表单和输入(4 小时)

在此课中,你将了解表单,这是从用户那里获得输入的非常常用的方法。你将学习从网页获取和处理用户输入,使用 Google App Engine 启动和运行活动表单。在此课程结束时,你将知道如何验证用户输入和安全地从用户获取数据。

第 3 课:数据库(6 小时)

在之前的课程中你学习了从用户那里获取各类信息,但是一旦你获得这些信息之后你需要做什么呢?那就是把它们存储起来!在此第 3 课中,Steve 将深入浅出教授你关于数据库你需要知道的一切,这也是你建立完整博客所需的最后一个环节!你将学到各种数据库技术、结构化查询语言 (SQL) 和 Google App Engine 数据库。

第 4 课:用户帐户和安全(6 小时)

在此第 4 课中,你将学习身份验证和安全的基础知识,这对于如今建立的几乎任何 Web 应用来说都是具有很高相关性的话题。我们将首先介绍网站如何使用 Cookie 验证用户身份以及如何从 Web 应用的后端管理 Cookie。你将为你的博客实现一个登录系统,然后学习如何使用散列法安全读取和传输用户密码。

第 5 课:API(4.5 小时)

到目前为止,你的程序已生成了浏览器可用于为用户渲染网页的 HTML。但是,在数字世界里,应用程序和网站不仅与人通信,而且还与其他应用和网站通信。在此课程结束后,你的博客将可与人类及其他计算机通信。你的 Web 应用将生成 XML 和 JSON 等格式的数据,其他电脑可通过应用程序编程接口 (API) 访问这些数据。你将首先学习如何使用 API,然后构建 Web 应用即服务以使其他电脑可从你的应用收集数据。届时我们将了解 XML 和 JSON 这两种格式,探讨如何读取、解释和操纵它们。

第 6 课:缓存(3.5 小时)

在此课程中,我们将探索如何为你的应用大规模运行做准备。到目前为止,我们已编写了面向一两名的用户“顶级”应用。如果我们想开始面向上千甚至上百万用户编写应用,那么很显然我们需要思考扩大规模的问题。我们所说的扩大规模是指在多台机器上运行你的应用,存储大量数据或消耗大量带宽。特别是,我们将学习缓存,包括缓存的使用,使用缓存的原因以及特定缓存实现,如 Memcached。

第 7 课:扩展(2.5 小时 )

在此课程的最后一课,Steve 准备了一个放松性的故事分享环节。你将听到前辈们的网页开发轶事。届时还将安排来自 Reddit 的工程师 Neil Williams 和优达学城的工程师 Chris Chew 访谈。他们将分享自身网页开发经验,到时你会发现你在本课程所学的一切都将派上用场。

最终项目(8小时)

在最终项目中,你将构建一个功能完整的维基,即一个可允许对任何网页进行编辑的网站。你在课程结束时能够构建的维基将:

  • 可使用维基编辑功能轻松创建新网页。你可输入不存在的URL,重导向至编辑页面和从此处创建新页面。
  • 设置用户帐户,这样仅登录的用户将拥有编辑特权。
  • 使用缓存功能。
  • 具备历史部分,显示之前的不同维基版本。
  • 讲师与合作伙伴

    Steve Huffman

    Steve Huffman

    Steve Huffman 在 2005 年与大学室友共同创立了社交新闻网站 reddit.com。自此以后,reddit.com 成为了最大的在线社区之一。在 2010 年,他与他人共同成立了 Hipmunk,使人们不再为搜索机票和预订酒店而烦恼。Steve 曾入选《Inc.》杂志2011年“30位30岁以下创业者”榜单。他在弗吉利亚大学攻读了计算机科学学位。

    Sean Bennett

    Sean Bennett

    Sean Bennett 是优达学城的一名课程设计师,热衷于使用网页提升全世界教学质量。Sean 之前从事网页编程,他喜欢尝试功能性的网页编程。工作之余,Sean 喜欢跑步、远足及为僵尸末日的到来做准备。

    官方微信公众号二维码

    优达学城(Udacity)微信