作者 :骆昊说明:从项
目上 线到获得8w+星 标以来 ,一直收到反馈说基础部分(前 15天 的 内容 )对新手 来 说是比 较困难的,建 议有配 套视频进行 讲解。最近 把 基 础部分 的 内容 重 新 制作 了 一 个名为“Python-Core-50-Courses”的 项目,用 更 为简单通俗 的 方式 重 写 了 这部分 内容 并附带了视频讲解,初 学者 可 以看看 这个新 的 仓库。国内 用 户如果 访问GitHub比 较慢的 话,可 以关注 我 的 知 乎号Python-Jack,上面 的 “从零开始学 Python”专栏比 较适合 初学 者 ,其他的 专栏如“数 据 思 维和统计思 维”、“基 于Python的 数 据 分析 ”等 也在持 续创作 和 更新 中 ,欢迎大家 关注、点 赞和评论。
想 获取学 习视频的小 伙伴,大家 可 以扫描下面 的 二维码进入微信小程序,看 看 有 没 有 适合自己 的 内容 。大家 心心 念念 的 机 器 学 习的内容 在 小 程 序 中 都 可 以找到,由 我 和 我 的 同 事 为大家 录制的 。![]()
大家 在学 习过程 中 如果遇 到 一些棘手的问题或者需要相关的学习资源,可 以加入 下面 的 QQ交流 群 ,三个群是一样的加入一个即可,请不要 重 复加群 ,也不要 在 群 里 发布广告和 其他色情 、低俗 或 敏感 内容 。如果缺乏 自律 性 ,有 付 费学习的需求,可 以添加 我 的 微 信 (jackfrued)私 聊,备注好 自己 的 称呼 和 需求,我 会 给大家 提供 一些学习方案和职业规划方面的指导。![]()
配 套的视频在 抖音和 B站持续更新 中 ,有 兴趣的 小 伙伴可 以关注 我 的 抖音或 B站账号 ,最近 刚刚起 号 ,还希望 大家 多多 支持 ,非常 感 谢您!![]()
大家 一 直 催更的 《机 器 学 习和深度 学 习》因 个人和 公司 的 原因 ,一直处于停滞状态,近 期 会 开始更新 相 关内容 ,感 谢大家 一如 既往 的 支持 和 理解 。
简单
学 习曲线低,非 专业人士 也能上手 - 开源
系 统,拥有强大 的 生 态圈 解 释型语言,完 美的 平台 可 移植 性 - 动态类型语言,
支持 面 向 对象和 函数 式 编程 代 码规范程度 高 ,可 读性强
Python
后 端 开发 - Python / Java / Go / PHP- DevOps - Python / Shell / Ruby
数 据 采 集 - Python / C++ / Java量 化 交易 - Python / C++ / R数 据 科学 - Python / R / Julia / Matlab机 器 学 习 - Python / R / C++ / Julia自 动化测试 - Python / Shell
- Python
后 端 开发工程 师(服 务器、云 平台 、数 据 接 口 ) - Python运维
工程 师(自 动化运维、SRE、DevOps) - Python
数 据 分 析师(数 据 分析 、商 业智能 、数字 化 运营) - Python
数 据 挖掘工程 师(机 器 学 习、深度 学 习、算法 专家) - Python爬虫
工程 师 - Python测试
工程 师(自 动化测试、测试开发)
说明:
目前 ,数 据 分析 和 数 据 挖掘是非 常 热门的 方向 ,因 为不管 是 互联网行业还是 传统行 业都已 经积累 了 大 量的 数 据 ,各行 各 业都需要 数 据 分析 师从已 有 的 数 据 中 发现更 多 的 商 业价值,从而为企业的决策提供 数 据 的 支 撑,这就是 所 谓的数 据 驱动决策。
给初
- Make English as your working language. (让英语成为你
的 工作 语言) - Practice makes perfect. (
熟 能生 巧 ) - All experience comes from mistakes. (
所有 的 经验都 源 于你犯 过的错误) - Don't be one of the leeches. (
不要 当 伸 手 党 ) - Either outstanding or out. (
要 么出众,要 么出局 )
Day01 - 初 识Python
- Python简介 - Python
的 历史 / Python的 优缺点 / Python的 应用领域 - 搭建编程环境 - Windows环境 / Linux环境 / MacOS环境
- 从终
端 运行Python程 序 - Hello, world /print
函数 / 运行程 序 使用 IDLE -交互 式 环境(REPL) / 编写多 行 代 码 / 运行程 序 /退出 IDLE注 释 -注 释的作用 / 单行注 释 /多 行 注 释
Day02 - 语言元素
程 序 和 进制 -指令 和 程 序 / 冯诺依曼机 / 二进制和十进制 / 八进制和十六进制- 变量
和 类型 - 变量的 命名 / 变量的 使用 /input
函数 / 检查变量类型 / 类型转换 数字 和字 符 串 -整数 / 浮点数 / 复数 /字 符 串 /字 符 串 基本 操作 /字 符 编码- 运算
符 -数学 运算符 / 赋值运算符 /比 较运算 符 / 逻辑运算符 /身 份运算 符 / 运算符 的 优先级 - 应用
案 例 - 华氏温度 转换成 摄氏温度 / 输入圆的半径 计算周 长和面 积 / 输入年 份判断 是 否 是 闰年
Day03 - 分 支 结构
分 支 结构的 应用场景 -条件 / 缩进 /代 码块 /流 程 图- if语句 - 简单
的 if
/if
-else
结构 /if
-elif
-else
结构 /嵌 套的if
- 应用
案 例 -用 户身份验证 /英 制 单位与 公 制 单位互换 / 掷骰子 决定做什么 / 百分制成绩转等级制 /分段 函数 求 值 / 输入三条边的长度如果能构成三角形就计算周长和面积
Day04 - 循环结构
- 循环结构
的 应用场景 -条件 / 缩进 /代 码块 /流 程 图 - while循环 -
基本 结构 /break
语句 /continue
语句 - for循环 -
基本 结构 /range
类型 / 循环中 的 分 支 结构 /嵌 套的循环 /提 前 结束程 序 - 应用
案 例 - 1~100求 和 /判断 素数 / 猜数字 游 戏 /打 印 九 九 表 /打 印 三角形 图案 / 猴子吃 桃 /百 钱百 鸡
Day05 - 构造程 序 逻辑
- 经典
案 例 :水仙 花 数 /百 钱百 鸡 / Craps赌博游 戏 - 练习题目:斐波
那 契 数列 /完 美 数 /素数
Day06 - 函数 和 模 块的使用
函数 的 作用 -代 码的坏味道 /用 函数 封 装 功 能 模 块定 义函数 -def
关键字 /函数 名 /参 数列 表 /return
语句 / 调用自 定 义函数 - 调用
函数 - Python内 置 函数 / 导入模 块和函数 函数 的 参 数 -默 认参数 /可 变参数 / 关键字 参 数 /命名 关键字 参 数 函数 的 返 回 值 -没 有 返 回 值 /返 回 单个值 /返 回 多 个值作用 域 问题 -局部 作用 域 /嵌 套作用 域 /全局 作用 域 /内 置 作用 域 /和 作用 域 相 关的关键字 用 模 块管理 函数 -模 块的概念 /用 自 定 义模块管理 函数 /命名 冲突的 时候会 怎样(同 一个模块和不同的模块)
Day07 - 字 符 串 和 常用 数 据 结构
字 符 串 的 使用 - 计算长度 /下 标运算 /切片 /常用 方法 列 表 基本 用法 -定 义列表 /用 下表 访问元素 /下 标越界 /添加 元素 / 删除元素 /修 改元 素 /切片 / 循环遍 历列 表 常用 操作 - 连接 / 复制(复制元素 和 复制数 组) / 长度 /排 序 /倒 转 / 查找生成 列 表 -使用 range
创建数字 列 表 /生成 表 达式 /生成 器 元 组的使用 -定 义元组 /使用 元 组中的 值 /修 改元 组变量 /元 组和列 表 转换集合 基本 用法 -集合 和 列 表 的 区 别 / 创建集合 /添加 元素 / 删除元素 /清 空 集合 常用 操作 - 交集 / 并集 /差 集 / 对称差 /子 集 /超 集 字典 的 基本 用法 -字典 的 特 点 / 创建字典 /添加 元素 / 删除元素 /取 值 /清 空 字典 常用 操作 -keys
方法 /values
方法 /items
方法 /setdefault
方法 基 础练习 - 跑马灯 效果 /列 表 找最大 元素 / 统计考 试成绩的平均 分 / Fibonacci数列 / 杨辉三 角 - 综合
案 例 -双 色 球 选号 /井 字 棋
Day08 - 面 向 对象编程基 础
- 类和对象 - 什么
是 类 / 什么是 对象 /面 向 对象其他相 关概念 定 义类 -基本 结构 /属性 和 方法 / 构造器 / 析构器 /__str__
方法 使用 对象 - 创建对象 / 给对象 发消息 面 向 对象的 四 大 支柱 -抽象 /封 装 / 继承 /多 态基 础练习 -定 义学生 类 /定 义时钟类 /定 义图形 类 /定 义汽车类
Day09 - 面 向 对象进阶
属性 - 类属性 / 实例属性 /属性 访问器 /属性 修 改 器 /属性 删除器 /使用 __slots__
- 类中
的 方法 - 实例方法 / 类方法 /静 态方法 - 运算
符 重 载 -__add__
/__sub__
/__or__
/__getitem__
/__setitem__
/__len__
/__repr__
/__gt__
/__lt__
/__le__
/__ge__
/__eq__
/__ne__
/__contains__
- 类(
的 对象)之 间的关系 - 关联 / 继承 /依 赖 - 继承
和 多 态 - 什么是 继承 / 继承的 语法 / 调用父 类方法 /方法 重 写 / 类型判定 /多重 继承 /菱形 继承(钻石继承)和 C3算法 - 综合
案 例 -工 资结算 系 统 / 图书自 动折扣系统 /自 定 义分数 类
Day10 - 图形用 户界面 和 游 戏开发
使用 tkinter
开发GUI程 序 使用 pygame
三方库开发游戏应用- “
大 球 吃 小 球 ”游 戏
Day11 - 文 件 和 异常
- 读文
件 - 读取整 个文件 / 逐行读取 /文 件 路 径 写 文 件 -覆 盖写入 /追加 写 入 /文 本文 件 /二 进制文 件 - 异常处理 - 异常
机 制 的 重要 性 /try
-except
代 码块 /else
代 码块 /finally
代 码块 /内 置 异常类型 / 异常栈 /raise
语句 数 据 持久 化 - CSV文 件 概 述 /csv
模 块的应用 / JSON数 据 格式 /json
模 块的应用
Day12 - 字 符 串 和正 则表达式
字 符 串 高 级操作 - 转义字 符 /原始 字 符 串 /多 行 字 符 串 /in
和 not in
运算符 /is_xxx
方法 /join
和 split
方法 /strip
相 关方法 /pyperclip
模 块 /不 变字符 串 和 可 变字符 串 /StringIO
的 使用 正 则表达式入 门 -正 则表达式的 作用 /元 字 符 / 转义 /量 词 /分 组 /零 宽断言 /贪婪匹 配 与 惰性 匹 配 懒惰 /使用 re
模 块实现正则表达式操作 (匹 配 、搜索 、替 换、捕 获)使用 正 则表达式 -re
模 块 /compile
函数 /group
和 groups
方法 /match
方法 /search
方法 /findall
和 finditer
方法 /sub
和 subn
方法 /split
方法 - 应用
案 例 -使用 正 则表达式验证输入的 字 符 串
Day13 - 进程和 线程
- 进程
和 线程的 概念 - 什么是 进程 / 什么是 线程 /多 线程的 应用场景 使用 进程 -fork
函数 /multiprocessing
模 块 / 进程池 / 进程间通信 使用 线程 -threading
模 块 /Thread
类 /RLock
类 /Condition
类 / 线程池
Day14 - 网络编程入 门和网络应用开发
- 计算
机 网络基 础 - 计算机 网络发展史 / “TCP-IP”模型 / IP地 址 /端 口 / 协议 / 其他相 关概念 - 网络应用
模 式 - “客 户端-服 务器”模 式 / “浏览器 -服 务器”模 式 基 于HTTP协议访问网络资源 - 网络API概 述 / 访问URL /requests
三方 库 /解析 JSON格式 数 据 - Python网络编程 - 套接
字 的 概念 /socket
模 块 /socket
函数 / 创建TCP服 务器 / 创建TCP客 户端 / 创建UDP服 务器 / 创建UDP客 户端 - 电子邮件 - SMTP协议 / POP3协议 / IMAP协议 /
smtplib
模 块 /poplib
模 块 /imaplib
模 块 短 信服 务 - 调用短 信服 务网关
Day15 - 图像和文 档处理
用 Pillow处理图片 - 图片读写 / 图片合成 / 几何变换 /色彩 转换 / 滤镜效果 - 读写Word
文 档 -文 本 内容 的 处理 /段落 / 页眉和 页脚 / 样式的 处理 - 读写Excel
文 件 -xlrd
/xlwt
/openpyxl
Day16~Day20 - Python语言进阶
常用 数 据 结构函数 的 高 级用法 - “一等 公民 ” /高 阶函数 / Lambda函数 /作用 域 和 闭包 /装 饰器面 向 对象高 级知识 - “三 大 支柱 ” / 类与类之间的关系 / 垃圾回收 /魔 术属性 和 方法 /混入 /元 类 /面 向 对象设计原 则 / GoF设计模 式 - 迭代
器 和 生成 器 -相 关魔术方法 / 创建生成 器 的 两种方式 / - 并发
和 异步编程 -多 线程 /多 进程 / 异步IO /async
和 awai
t
Day21~30 - Web前 端 入 门
用 HTML标签承载页面 内容 用 CSS渲染页面用 JavaScript处理交互 式 行 为- jQuery
入 门和提 高 - Vue.js
入 门 - Element
的 使用 - Bootstrap
的 使用
Day31~35 - 玩转Linux操作 系 统
操作 系 统发展 史 和 Linux概 述 - Linux
基 础命令 - Linux
中 的 实用程 序 - Linux
的 文 件 系 统 - Vim编辑
器 的 应用 - 环境变量
和 Shell编程 - 软件
的 安 装 和服 务的配置 - 网络访问
和 管理 - 其他
相 关内容
Day36 - 关系型 数 据 库和MySQL概 述
- 关系
型 数 据 库概述 - MySQL简介
安 装 MySQL- MySQL
基本 命令
Day37 - SQL详解之 DDL
建 库建表 - 删除
表 和 修 改 表
Day38 - SQL详解之 DML
- insert
操作 - delete
操作 - update
操作
Day39 - SQL详解之 DQL
投影 和 别名- 筛选
数 据 空 值处理 去 重 排 序 - 聚合
函数 嵌 套查询分 组表 连接笛 卡尔积内 连接自然 连接外 连接
窗 口 函数 定 义窗口 排 名 函数 取 数 函数
Day40 - SQL详解之 DCL
- 创建
用 户 - 授予权限
- 召回权限
Day41 - MySQL新 特性
- JSON类型
窗 口 函数 公共 表 表 达式
Day42 - 视图、函数 和 过程
- 视图
使用 场景- 创建视图
使用 限 制
函数 内 置 函数 用 户自定 义函数 (UDF)
- 过程
- 创建过程
- 调用过程
Day43 - 索引
- 执行计划
索引 的 原理 - 创建
索引 普通 索引 唯一 索引 前 缀索引 - 复合
索引
注意 事 项
Day44 - Python接 入 MySQL数 据 库
安 装 三方 库- 创建连接
- 获取
游 标 - 执行SQL语句
通 过游标抓取 数 据 事 务提交和回 滚- 释放连接
- 编写ETL
脚本
Day45 - 大数 据 平台 和 HiveSQL
- Hadoop
生 态圈 - Hive
概 述 准 备工作 数 据 类型- DDL
操作 - DML
操作 数 据 查询
Day46 - Django快速 上手
- Web应用
工作 机 制 - HTTP请求
和 响应 - Django
框 架 概 述 - 5
分 钟快速 上手
Day47 - 深入 模型
- 关系
型 数 据 库配置 使用 ORM完成 对模型 的 CRUD操作 管理 后 台 的 使用 - Django
模型 最 佳 实践 模型 定 义参考
Day48 - 静 态资源 和 Ajax请求
加 载静态资源 - Ajax
概 述 用 Ajax实现投票 功 能
Day49 - Cookie和 Session
- 实现
用 户跟踪 - cookie
和 session的 关系 - Django
框 架 对session的 支持 - 视图
函数 中 的 cookie读写操作
Day50 - 报表和 日 志
通 过HttpResponse
修 改 响应头使用 StreamingHttpResponse
处理大 文 件 使用 xlwt
生成 Excel报表使用 reportlab
生成 PDF报表使用 ECharts生成 前 端 图表
Day51 - 日 志和 调试工具 栏
配置 日 志 配置 Django-Debug-Toolbar- 优化ORM
代 码
Day52 - 中 间件的 应用
- 什么
是 中 间件 - Django
框 架 内 置 的中 间件 自 定 义中间件及其应用场景
Day53 - 前 后 端 分 离开发入门
返 回 JSON格式 的 数 据 用 Vue.js渲染页面
Day54 - RESTful架 构和DRF入 门
- REST
概 述 - DRF库
使用 入 门 前 后 端 分 离开发- JWT
的 应用
Day55 - RESTful架 构和DRF进阶
使用 CBV数 据 分 页数 据 筛选
Day56 - 使用 缓存
-
网站优化
第 一 定律 -
在 Django项目中 使用 Redis提供 缓存服 务 -
在 视图函数 中 读写缓存 -
使用 装 饰器实现页面缓存 -
为数
据 接 口 提供 缓存服 务
Day57 - 接 入 三 方 平台
文 件 上 传表单控件 和 图片文 件 预览服 务器端 如何 处理上 传的文 件
Day58 - 异步任 务和定 时任务
- 网站优化
第 二 定律 配置 消息 队列服 务在 项目中 使用 Celery实现任 务异步 化 在 项目中 使用 Celery实现定 时任务
Day59 - 单元测试
Day60 - 项目上 线
- Python
中 的 单元测试 - Django
框 架 对单元 测试的 支持 使用 版本 控 制 系 统配置 和 使用 uWSGI- 动静
分 离和Nginx配置 配置 HTTPS配置 域 名 解析
Day61~65 - 爬虫开发
Day61 - 网络数 据 采 集 概 述
- 网络爬虫
的 概念 及其应用领域 - 网络爬虫
的 合法 性 探 讨 - 开发网络爬虫
的 相 关工具 - 一个爬虫程序的构成
使用 requests
三方库实现数据抓取- 页面
解析 的 三 种方式 正 则表达式解析 - XPath
解析 - CSS选择
器 解析
Day64 - 使用 Selenium抓 取 网页动态内容
安 装 Selenium加 载页面 - 查找
元素 和 模 拟用户行为 - 隐式
等 待 和 显示等 待 - 执行JavaScript
代 码 - Selenium
反 爬破解 - 设置无头浏览
器
Day65 - 爬虫框 架 Scrapy简介
- Scrapy
核心 组件 - Scrapy
工作 流 程 安 装 Scrapy和 创建项目- 编写
蜘蛛 程 序 - 编写
中 间件和 管 道程 序 - Scrapy
配置 文 件
Day66 - 数 据 分析 概 述
数 据 分析 师的职责数 据 分析 师的技能 栈数 据 分析 相 关库
Day67 - 环境准 备
安 装 和 使用 anaconda- conda
相 关命令
- conda
安 装 和 使用 jupyter-lab安 装 和 启动使用 小 技巧
Day68 - NumPy的 应用-1
- 创建
数 组对象 数 组对象 的 属性 数 组对象 的 索引 运算普通 索引 花 式 索引 布 尔索引 切片 索引
案 例 :使用 数 组处理 图像
Day69 - NumPy的 应用-2
数 组对象 的 相 关方法 - 获取描述
性 统计信 息 - 其他
相 关方法
- 获取描述
Day70 - NumPy的 应用-3
数 组的运算数 组跟标量的 运算数 组跟数 组的运算
通用 一 元 函数 通用 二 元 函数 - 广播
机 制 - Numpy
常用 函数
Day71 - NumPy的 应用-4
向 量 行列 式 矩 阵多 项式
Day72 - 深入 浅 出 pandas-1
- 创建
Series
对象 Series
对象的 运算Series
对象的 属性 和 方法
Day73 - 深入 浅 出 pandas-2
- 创建
DataFrame
对象 DataFrame
对象的 属性 和 方法 - 读写
DataFrame
中 的 数 据
Day74 - 深入 浅 出 pandas-3
数 据 重 塑数 据 拼接数 据 合 并
数 据 清 洗 缺 失 值重 复值- 异常值
- 预处
理
Day75 - 深入 浅 出 pandas-4
数 据 透 视- 获取描述
性 统计信 息 排 序 和 头部值分 组聚合 透 视表和 交叉 表
- 获取描述
数 据 呈 现
Day76 - 深入 浅 出 pandas-5
- 计算
同 比 环比 窗 口 计算相 关性判定
Day77 - 深入 浅 出 pandas-6
索引 的 使用 - 范围
索引 分 类索引 多 级索引 - 间隔
索引 日 期 时间索引
- 范围
Day78 - 数 据 可 视化-1
安 装 和 导入matplotlib- 创建
画布 - 创建
坐 标系 - 绘制图表
折 线图散点 图柱状 图- 饼状图
直方 图箱 线图
- 显示
和 保存 图表
Day79 - 数 据 可 视化-2
高 阶图表 - 气泡图
面 积图雷 达图- 玫瑰图
- 3D图表
Day80 - 数 据 可 视化-3
- Seaborn
- Pyecharts
Day81~90 - 机 器 学 习和深度 学 习
Day81 - 机 器 学 习基础
Day82 - k最近 邻分类
Day83 - 决策树
Day84 - 贝叶斯分类
Day85 - 支持 向 量 机
Day86 - K-均 值聚类
Day87 - 回 归分析
Day88 - 深度 学 习入门
Day89 - PyTorch概 述
Day90 - PyTorch实战
Day91~100 - 团队项目开发
第 91天 :团队项目开发的 问题和解 决方案
-
软件过程
模型 -
经典过程
模型 (瀑布 模型 )可 行 性 分析 (研究 做还是 不 做),输出《可 行 性 分析 报告》。- 需求
分析 (研究 做什么),输出《需求规格说明书》和 产品界面 原型 图。 概要 设计和 详细设计,输出概念 模型 图(ER图)、物理 模型 图、类图、时序图等。- 编码 / 测试。
上 线 / 维护。
瀑布 模型 最大 的 缺点 是 无法拥抱需求变化,整 套流程 结束后 才能 看 到 产品,团队士 气低落 。 -
敏捷 开发(Scrum)- 产品所有 者 、Scrum Master、研 发人员 - Sprint- 产品
的 Backlog(用 户故事 、产品原型 )。 - 计划
会 议(评估和 预算)。 日常 开发(站立会 议、番 茄 工作 法 、结对编程、测试先行 、代 码重构……)。修 复bug(问题描述、重 现步骤、测试人 员、被 指 派 人 )。- 发布
版本 。 - 评审
会 议(Showcase,用 户需要 参与 )。 回 顾会议(对当前 迭代周期 做一个总结)。
补充:
敏捷 软件开发宣言 - 个体
和 互动高 于流 程 和 工具 工作 的 软件高 于 详尽的 文 档客 户合作 高 于合同 谈判- 响应变化
高 于 遵循计划
角 色 :产品所有 者 (决定做什么,能 对需求 拍板 的 人 )、团队负责人 (解 决各种问题,专注如何 更 好 的 工作 ,屏 蔽外部 对开发团队的影 响)、开发团队(项目执行人 员,具体 指 开发人 员和测试人 员)。准 备工作 :商 业案例 和 资金、合同 、憧憬 、初 始 产品需求、初 始 发布计划、入 股 、组建团队。敏捷 团队通常 人数 为8-10人 。工作 量 估算:将 开发任 务量化 ,包括 原型 、Logo设计、UI设计、前 端 开发等 ,尽 量 把 每 个工作 分解 到 最小 任 务量,最小 任 务量标准为工作 时间不能 超 过两天 ,然 后 估算总体项目时间。把 每 个任务都贴在看板 上面 ,看板 上分 三 部分 :to do(待 完成 )、in progress(进行中 )和 done(已 完成 )。 - 产品
-
-
项目团队组建
-
团队
的 构成和 角 色 说明:
感 谢付 祥 英 女 士 帮助我 绘制了 下面 这张精美 的 公司 组织架 构图。 -
编程规范
和代 码审查(flake8
、pylint
) -
Python
中 的 一 些“惯例”(请参考 《Python惯例-如何 编写Pythonic的 代 码》) -
影 响代码可读性的 原因 :代 码注释太少 或 者 没 有 注 释代 码破坏了语言的 最 佳 实践反 模 式 编程(意 大利 面 代 码、复制-黏贴编程、自 负编程 、……)
-
-
团队开发
工具 介 绍请
参考 《团队项目开发的 问题和解 决方案 》。
-
选题范围设定
-
CMS(
用 户端):新 闻聚合 网站、问答/分 享 社 区 、影 评/书评网站等 。 -
MIS(
用 户端+管理 端 ):KMS、KPI考 核 系 统、HRS、CRM系 统、供 应链系 统、仓储管理 系 统等。 -
App
后 台 (管理 端 +数 据 接 口 ):二 手 交易 类、报刊杂志类、小 众电商 类、新 闻资讯类、旅 游 类、社交 类、阅读类等。 -
其他类型:
自身 行 业背景 和 工作 经验、业务容易 理解 和 把 控 。
-
-
需求
理解 、模 块划分 和 任 务分配 - 需求
理解 :头脑风暴和 竞品分析 。 模 块划分 :画 思 维导图(XMind),每 个模块是一 个枝节点,每 个具体 的 功 能 是 一 个叶节点(用 动词表 述 ),需要 确保每 个叶节点无法再生 出新 节点,确定每 个叶子 节点的 重要 性 、优先级和工作 量 。任 务分配 :由 项目负责人 根 据 上面 的 指 标为每 个团队成员分配 任 务。
- 需求
-
制定 项目进度表 (每日 更新 )模 块功 能 人 员状 态完成 工 时计划开始 实际开始 计划结束 实际结束 备注 评论 添加 评论王 大 锤正 在 进行50% 4 2018/8/7 2018/8/7 删除评论 王 大 锤等 待 0% 2 2018/8/7 2018/8/7 查看评论 白 元 芳 正 在 进行20% 4 2018/8/7 2018/8/7 需要 进行代 码审查评论 投票 白 元 芳 等 待 0% 4 2018/8/8 2018/8/8 -
OOAD
和 数 据 库设计
-
UML(统一
建 模 语言)的 类图 -
通 过模型 创建表 (正 向 工程 ),例 如在Django项目中 可 以通过下面 的 命令 创建二 维表。python manage.py makemigrations app python manage.py migrate
-
使用 PowerDesigner绘制物理 模型 图。 -
通 过数据 表 创建模型 (反 向 工程 ),例 如在Django项目中 可 以通过下面 的 命令 生成 模型 。python manage.py inspectdb > app/models.py
第 92天 :Docker容器 技 术详解
- Docker简介
安 装 Docker使用 Docker创建容器 (Nginx、MySQL、Redis、Gitlab、Jenkins)- 构建Docker镜像(Dockerfile
的 编写和 相 关指令 ) 容器 编排(Docker-compose)集 群 管理 (Kubernetes)
第 93天 :MySQL性能 优化
基本 原 则- InnoDB引擎
索引 的 使用 和 注意 事 项数 据 分 区 - SQL优化
配置 优化架 构优化
第 94天 :网络API接 口 设计
- 设计
原 则- 关键问题
- 其他问题
文 档撰写
数 据 库的配置 (多数 据 库、主 从复制 、数 据 库路由 )- 缓存
的 配置 (分 区 缓存、键设置 、超 时设置 、主 从复制 、故障 恢复(哨兵 )) 日 志 的 配置 分析 和 调试(Django-Debug-ToolBar)好 用 的 Python模 块(日 期 计算、图像处理、数 据 加 密 、三方 API)
- RESTful
架 构 - API
接 口 文 档的撰 写 - django-REST-framework
的 应用
使用 缓存缓解数 据 库压力 - Redis使用 消息 队列做解耦合和 削 峰 - Celery + RabbitMQ
第 96天 :软件测试和 自 动化测试
- 测试
的 种类 - 编写单元测试(
unittest
、pytest
、nose2
、tox
、ddt
、……) - 测试覆盖率(
coverage
)
部署 前 的 准 备工作 - 关键设置(SECRET_KEY / DEBUG / ALLOWED_HOSTS / 缓存 /
数 据 库) - HTTPS / CSRF_COOKIE_SECUR / SESSION_COOKIE_SECURE
日 志 相 关配置
- 关键设置(SECRET_KEY / DEBUG / ALLOWED_HOSTS / 缓存 /
- Linux
常用 命令 回 顾 - Linux
常用 服 务的安 装 和 配置 - uWSGI/Gunicorn
和 Nginx的 使用 - Gunicorn
和 uWSGI的 比 较- 对于
不 需要 大 量定 制 化 的 简单应用程 序 ,Gunicorn是 一个不错的选择,uWSGI的 学 习曲线比Gunicorn要 陡峭得 多 ,Gunicorn的 默 认参数 就已经能够适应大多数 应用程 序 。 - uWSGI
支持 异构部署 。 由 于Nginx本身 支持 uWSGI,在 线上一般 都 将 Nginx和 uWSGI捆绑在 一 起 部署 ,而且uWSGI属 于功能 齐全且高度 定 制 的 WSGI中 间件。在 性能 上 ,Gunicorn和 uWSGI其实表 现相当 。
- 对于
- Gunicorn
使用 虚 拟化技 术(Docker)部署 测试环境和生 产环境
- AB
的 使用 - SQLslap
的 使用 - sysbench
的 使用
使用 Shell和 Python进行自 动化测试使用 Selenium实现自 动化测试- Selenium IDE
- Selenium WebDriver
- Selenium Remote Control
- 测试
工具 Robot Framework介 绍
第 97天 :电商网站技 术要点 剖析
商 业模式 和 需求要点 物理 模型 设计第 三 方 登 录- 缓存预热
和 查询缓存 - 购物车的实现
支 付 功 能 集成 秒 杀和超 卖问题静 态资源 管理 全文 检索方案
第 98天 :项目部署 上 线和性能 调优
- MySQL
数 据 库调优 - Web
服 务器性能 优化- Nginx负载
均衡 配置 - Keepalived实现
高 可用
- Nginx负载
代 码性能 调优多 线程- 异步
化
静 态资源 访问优化云 存 储- CDN
第 99天 :面 试中的 公共 问题
- 计算
机 基 础 - Python
基 础 - Web
框 架 相 关 - 爬虫
相 关问题 数 据 分析 - 项目
相 关