九章算法Twitter 后端系统 - Python 项目实战2022
课程详情
课程概述
本课程将带领学员从零开始,基于 Python 技术栈搭建一个类似 Twitter 的后端系统。通过实战项目,学员能深入理解后端开发的核心概念和关键技术,掌握从需求分析、架构设计到代码实现、测试部署的完整流程。无论你是刚入门的编程新手,还是想提升后端开发技能的程序员,都能从本课程中获得实用的知识和宝贵的实战经验。
课程亮点
- 实战驱动:以真实的 Twitter 后端系统为原型,所有知识点都围绕项目开发展开,让学员在实践中快速掌握技能。
- 技术全面:涵盖 Python 后端开发的多个重要技术,包括 Web 框架、数据库设计与操作、缓存机制、消息队列等。
- 架构清晰:详细讲解系统架构设计思路,帮助学员树立良好的架构思维,学会如何设计可扩展、高性能的后端系统。
- 代码精讲:对关键代码进行逐行解析,让学员理解代码背后的逻辑和原理,提高代码编写能力。
课程内容
- 需求分析与系统设计:详细分析 Twitter 后端系统的核心功能需求,进行系统架构设计。
- Web 框架与基础搭建:介绍 Python 常用的 Web 框架,并选择合适的框架进行项目搭建。
- 数据库设计与操作:设计数据库表结构,学习使用 ORM 框架进行数据库操作。
- 核心功能实现:实现用户系统、推文功能、关注与粉丝、点赞与评论等功能。
- 性能优化:讲解数据库索引优化、查询优化等提高数据库性能的方法,介绍缓存机制和消息队列的应用。
- 测试与部署:介绍单元测试、集成测试的方法,讲解系统部署的流程,包括服务器环境配置、代码部署等。
项目技术栈
- 编程语言:Python
- Web 框架:Flask / Django
- 数据库:MySQL / PostgreSQL
- ORM 框架:SQLAlchemy
- 缓存:Redis
- 消息队列:RabbitMQ
- 测试框架:pytest
- 部署工具:Docker
学习收获
- 掌握 Python 后端开发的核心技术和实战技能。
- 理解后端系统的架构设计理念。
- 熟悉数据库设计与优化、缓存机制、消息队列等后端开发常用技术的应用。
- 获得一个完整的实战项目经验。
课程目录
01 第一章【直播】先导课程 1. 先导课程 九章算法 - YouTube 02 第二章【互动】必备的 Python 基础知识训练(上) 【Twitter课】2.1 如何 Import 【Twitter课】2.2 字符串 String 【Twitter课】2.3 序列 Sequence 03 第三章【互动】必备的 Python 基础知识训练(中) 【Twitter课】3.1 列表 List 【Twitter课】3.2 元组 Tuple 【Twitter课】3.3 字典 Dict 【Twitter课】3.4 条件分支 If 【Twitter课】3.5 循环 Loop 【Twitter课】3.6 循环中的 else 【Twitter课】3.7 推导式 Comprehension 04 第四章【互动】必备的 Python 基础知识训练(下) 【Twitter课】4. 1 Function 【Twitter课】4. 2 Class 【Twitter课】4. 3 Class Namespace 【Twitter课】4. 4 Class Advanced 【Twitter课】4. 5 Exception 【Twitter课】4. 6 Decorator 【Twitter课】4. 7 Decorator in project 05 第五章【互动】必备的数据库基础知识训练 【Twitter课】5.1 数据库基本概念 【Twitter课】5.2 SQL 【Twitter课】5.3 表单设计 【Twitter课】5.4 数据库的增加和查找 【Twitter课】5.5 数据库的修改和删除 【Twitter课】5.6 数据库的索引 06 第六章【互动】Web 基础知识 【Twitter课】6.1 HTTP URL 【Twitter课】6.2 HTTP 请求报文 【Twitter课】6.3 Cookie 【Twitter课】6.4 HTTP 响应报文 【Twitter课】6.5 DNS域名解析系统 07 第七章【互动】Web Framework 介绍及常用 Linux 和 Git 命令 【Twitter课】7.1 Frontend 【Twitter课】7.2 Backend httpp, server, web 【Twitter课】7.3 Linux command 【Twitter课】7.4 Git 08 第八章【直播】理论课:初始开发环境搭建、Restful API 与 Unit Tests 【Twitter课】8.【直播】理论课:初始开发环境搭建、Restful API 与 Unit Tests 09 第九章【互动】实践课:开发环境搭建与项目初始化 【Twitter课】9.1 Git Repo, Vagrant & Pycharm 【Twitter课】9.2 First Pull Request 【Twitter课】9.3 Create Django Project 【Twitter课】9.4 Django Rest Framework 10 第十章【互动】实践课:手把手 Coding 与常见问题答疑 【Twitter课】10. 1 Login Status 【Twitter课】10. 2 Logout 【Twitter课】10. 3 Login 【Twitter课】10. 4 Signup 11 第十一章【互动】实践课:Debug 工具安装与 Bug Fix 练习 【Twitter课】11. 1 Django DebugTool Installation 【Twitter课】11. 2 Bug Fix Training 2 【Twitter课】11. 3 Bug Fix Training 3 【Twitter课】11. 4 Bug Fix Training 4 【Twitter课】11. 5 Bug Fix Training 5 12 第十二章【直播】实践课:Django ORM 理论与练习 【Twitter课】12 实践课:Django ORM 理论与练习 九章算法 13 第十三章【直播】理论课:核心模块 Tweet, Frendship, NewsFeed 的实现 【Twitter课】13 理论课:核心模块 Tweet, Frendship, NewsFeed 的实现 九章算法 14 第十四章【互动】实践课:Tweet 模块 【Twitter课】14.1 Initial Tweet Model 【Twitter课】14.2 Tweet List API 【Twitter课】14.3 Create Tweet API 【Twitter课】14.4 Create Composite Index 【Twitter课】14.5 Tweet Unit Tests 15 第十五章【互动】实践课:Friendship 模块 【Twitter课】15. 1 Friendship Model 【Twitter课】15. 2 Followers & Following API 【Twitter课】15. 3 Follow & Unfollow 【Twitter课】15. 4 Friendship Tests 16 第十六章【互动】实践课:Newsfeed 模块 【Twitter课】16. 1 NewsFeed Model & Admin 【Twitter课】16. 2 NewsFeed Fanout 【Twitter课】16. 3 NewsFeed 你好是吧API & Tests 17 第十七章【直播】Tweet 后端核心模块答疑串讲 【Twitter课】17 Tweet 后端核心模块答疑串讲 九章算法 18 第十八章【直播】理论课:评论,点赞 18 理论课:评论,点赞 九章算法 19 第十九章【互动】实践课:评论模块 Comment 【Twitter课】19. 1 Comments Model and Admin 【Twitter课】19. 2 Comments你好是吧 Create 【Twitter课】19. 3 Comments Update and Destr 【Twitter课】19. 4 Comments List I 【Twitter课】19. 5 Tweet Retrieve API with Commes 20 第二十章【互动】实践课:点赞模块 Like 20 1 Likes Model and Admin处理过的 20.4 【Twitter课】20. 1 Likes Create API 【Twitter课】20. 2 Likes Cancel API 【Twitter课】20. 3 Insert Likes to other APIs 21 第二十一章【直播】理论课:通知与图像上传 21 理论课:通知与图像上传处理过的 22 第二十二章【互动】实践课:通知模块 【Twitter课】22. 1 Install Notifications 【Twitter课】22. 2 Notifications API Part1 【Twitter课】22. 3 Notifications API Part 2 update 23 第二十三章【互动】实践课:用户资料模块与 Amazon S3 配置 【Twitter课】23. 1 UserProfile Model and Admin 【Twitter课】23. 2 Amazon S3 Django settings 【Twitter课】23. 3 Amazon S3 Web Settings 24 第二十四章【互动】实践课:用户资料模块 API 实现与图像上传模块 【Twitter课】24 .2 Tweet Photos Model and Admin 【Twitter课】24. 1 UserProfile API 【Twitter课】24. 3 Tweet Photo Uploads API 25 第二十五章【直播】答疑课:通知与图像上传模块答疑串讲 【Twitter课】25 答疑课:通知与图像上传模块答疑串讲 九章算法 26 第二十六章【直播】理论课:翻页 Pagination 与缓存 Cache 【Twitter课】26 理论课:翻页 Pagination 与缓存 Cache 九章算法 27 第二十七章【互动】实践课:好友列表翻页 【Twitter课】27 1 Friendships PageNumberPagination 28 第二十八章【互动】实践课:Timeline 与 NewsFeed 翻页 【Twitter课】28. 1 Tweets EndlessPagination 【Twitter课】28. 2 NewsFeeds EndlessPagination 29 第二十九章【互动】实践课:接入缓存 Cache 29.1 Following Cache处理过的 【Twitter课】29. 2 User Cache 【Twitter课】29. 3 Tweet Cache 30 第三十章【直播】理论课:使用 Redis 对 Tweets, NewsFeed 进行缓存 【Twitter课】30 理论课:使用 Redis 对 Tweets, NewsFeed 进行缓存 九章算法 31 第三十一章【互动】安装 Redis 和使用介绍 【Twitter课】31 安装 Redis 和使用介绍 九章算法 32 第三十二章【互动】使用 Redis 缓存用户推文 【Twitter课】32 使用 Redis 缓存用户推文 九章算法 33 第三十三章【互动】使用 Redis 缓存新鲜事和限制长度 【Twitter课】33. 1 Cache Newsfeeds in Redis 【Twitter课】33. 2 Limit List Size in Redis 34 第三十四章【直播】理论课:冗余存储技术 Denormalization, 消息队列 Message Queue 与流器 RateLimiter 34 答疑课:翻页 Pagination 与缓存 Cache 答疑处理过的 35 第三十五章【直播】理论课:冗余存储技术 Denormalization, 消息队列 Message Queue 与流器 RateLimiter 理论课:冗余存储技术 Denormalization, 消息队列 Message Queue 36 第三十六章【互动】Denormalization 优化存储 【Twitter课】36.1 Denormalization Model Change 【Twitter课】36.2 Cache comments_count and likes_count 37 第三十七章【互动】Celery 的使用和 fanout 改进 【Twitter课】37.1 Async Tasks & Celery Introduce 【Twitter课】37.2 Run Celery & Fanout newsfeeds in Async Task 【Twitter课】37.3 Optimize NewsFeeds Fanout 38 第三十八章【互动】RateLimiter 限流器的使用 【Twitter课】38.1 How to RateLimit 【Twitter课】38.2 Coding RateLimit 39 第三十九章【直播】理论课:NoSQL 数据库的安装与 Friendship 的 NoSQL 实现 39 理论课:NoSQL 数据库的安装与 Friendship 的 NoSQL 实现处理过的 40 第四十章【互动】Hbase的介绍与手把手安装 【Twitter课】40.1 Introduction to HBase 【Twitter课】40.2 HBase Install Step by Step. 41 第四十一章【互动】HBase Field 与 Model 【Twitter课】41.1 Hbase Connection 【Twitter课】41.2 HbaseField. 【Twitter课】41.3 HBaseModel 42 第四十二章【互动】扩展知识:从用户系统设计中学习数据库与缓存 【Twitter课】 写多读少如何优化 【Twitter课】 写多读少如何优化(1).mp4 【Twitter课】Cache 如何优化 Database 数据读取 【Twitter课】SQL & NoSQL 的选择标准 【Twitter课】什么是缓存 【Twitter课】以 Cassandra 为例的 NoSQL 【Twitter课】好友关系的存储与查询 【Twitter课】如何实现账户登录服务 【Twitter课】拓展练习1:NoSQL 存单向好友关系 【Twitter课】拓展练习2:NoSQL 存储 User 如何支持多个索引? 【Twitter课】拓展练习3:共同好友 【Twitter课】拓展练习4:LinkedIn 六度关系 【Twitter课】用户系统设计 & QPS 43 第四十三章【互动】扩展知识:分布式数据库 Big Table 8-5 BigTable读取优化 - BloomFilter B-Tree & B+Tree BigTable 的Sharding BigTable 的分布式锁 GFS和Big Table的关系 K路归并 & 外排序 bigtable简介1 bloom filter详解 【Twitter】BigTable一个可行的读写过程 【Twitter课】BigTable的基本设计 【Twitter课】BigTable读取优化 - Index 44 第四十四章【直播】理论课:NewsFeeds 的 NoSQL 实现 44 理论课:NewsFeeds 的 NoSQL 实现 45 第四十五章【互动】HBase 的单元测试和 HBase ORM 【Twitter课】45.1 HBase Unit Tests 【Twitter课】45.2 HBase Table Scan - part 1 【Twitter课】45.3 HBase Table Scan - part 2 46 第四十六章【互动】使用 HBase 存储好友关系 Ⅰ 【Twitter课】46.1 GateKeeper & Friendship Serializer Refactor. 【Twitter课】46.2 Move Friendships to HBase - follow. 47 第四十七章【互动】使用 HBase 存储好友关系 Ⅱ 【Twitter课】47.1 Move Friendship to HBase - unfollow. 【Twitter课】47.2 Move Friendships to HBase - Pagination 48 第四十八章【互动】实践课:云平台部署与 Load Balancer 48 理论课:云平台部署与 Load Balancer 理论课:云平台部署与 Load Balancer(后面有问题的下半段).mp4 课件资料 源码+资料+课件+习题






