九歌资源
极客时间23门实用课程合集

极客时间23门实用课程合集

技能学习 夸克网盘 1 2026-08-24

文件目录

📁 极客时间
├── 📁 【极客时间-100005901】9 小时搞定微信小程序开发
│   ├── 🎬 01丨小程序的背景.mp4
│   ├── 🎬 02丨什么是小程序.mp4
│   ├── 🎬 03丨小程序生态及应用前景.mp4
│   ├── 🎬 04丨小程序开发前的准备.mp4
│   ├── 🎬 05丨安装微信开发者工具.mp4
│   ├── 🎬 06丨小程序代码结构简介.mp4
│   ├── 🎬 07丨小程序配置文件介绍.mp4
│   ├── 🎬 08丨开发者工具详解(一).mp4
│   ├── 🎬 09丨开发者工具详解(二).mp4
│   ├── 🎬 10丨创建第一个小程序.mp4
│   ├── 🎬 11丨开发框架组成介绍.mp4
│   ├── 🎬 12丨WXML之语法.mp4
│   ├── 🎬 13丨WXML特性之数据绑定.mp4
│   ├── 🎬 14丨WXML特性之列表渲染.mp4
│   ├── 🎬 15丨WXML特性之条件渲染.mp4
│   ├── 🎬 16丨WXML特性之模板及引用.mp4
│   ├── 🎬 17丨WXSS特性之响应式像素.mp4
│   ├── 🎬 18丨WXSS特性之样式.mp4
│   ├── 🎬 19丨WXSS特性之选择器.mp4
│   ├── 🎬 20丨JavaScript介绍.mp4
│   ├── 🎬 21丨小程序JavaScript实现.mp4
│   ├── 🎬 22丨小程序宿主环境差异.mp4
│   ├── 🎬 23丨学会使用WXS.mp4
│   ├── 🎬 24丨MINA框架讲解.mp4
│   ├── 🎬 25丨小程序运行机制.mp4
│   ├── 🎬 26丨小程序加载机制.mp4
│   ├── 🎬 27丨生命周期.mp4
│   ├── 🎬 28丨页面路由.mp4
│   ├── 🎬 29丨小程序事件流.mp4
│   ├── 🎬 30丨view容器.mp4
│   ├── 🎬 31丨scroll-view滚动容器.mp4
│   ├── 🎬 32丨swiper滑块容器.mp4
│   ├── 🎬 33丨movable-view移动缩放容器.mp4
│   ├── 🎬 34丨cover-view原生视图容器.mp4
│   ├── 🎬 35丨微信小程序基础内容组件之icon.mp4
│   ├── 🎬 36丨微信小程序基础内容组件之text.mp4
│   ├── 🎬 37丨微信小程序基础内容组件之rich-text.mp4
│   ├── 🎬 38丨微信小程序基础内容组件之progress.mp4
│   ├── 🎬 39丨微信小程序表单组件之button.mp4
│   ├── 🎬 40丨微信小程序表单组件之checkbox.mp4
│   ├── 🎬 41丨微信小程序表单组件之form.mp4
│   ├── 🎬 42丨微信小程序表单组件之input.mp4
│   ├── 🎬 43丨微信小程序表单组件之label.mp4
│   ├── 🎬 44丨微信小程序表单组件之picker.mp4
│   ├── 🎬 45丨微信小程序表单组件之picker-view.mp4
│   ├── 🎬 46丨微信小程序表单组件之radio.mp4
│   ├── 🎬 47丨信小程序表单组件之slider.mp4
│   ├── 🎬 48丨微信小程序表单组件之switch.mp4
│   ├── 🎬 49丨微信小程序表单组件之text-area.mp4
│   ├── 🎬 50丨微信小程序导航组件navigator.mp4
│   ├── 🎬 51丨微信小程序媒体组件之audio.mp4
│   ├── 🎬 52丨微信小程序媒体组件之image.mp4
│   ├── 🎬 53丨微信小程序媒体组件之video.mp4
│   ├── 🎬 54丨微信小程序媒体组件之camera.mp4
│   ├── 🎬 55丨微信小程序媒体组件之live-player和live-pusher.mp4
│   ├── 🎬 56丨微信小程序地图组件map.mp4
│   ├── 🎬 57丨微信小程序画布组件canvas.mp4
│   ├── 🎬 58丨微信小程序开放能力组件之open-data.mp4
│   ├── 🎬 59丨微信小程序开放能力组件之web-view.mp4
│   ├── 🎬 60丨微信小程序之API概述.mp4
│   ├── 🎬 61丨微信小程序API之网络请求.mp4
│   ├── 🎬 62丨微信小程序API之上传下载.mp4
│   ├── 🎬 63丨微信小程序API之socket请求.mp4
│   ├── 🎬 64丨微信小程序API之图片应用.mp4
│   ├── 🎬 65丨微信小程序API之音频控制.mp4
│   ├── 🎬 66丨微信小程序API之视频控制.mp4
│   ├── 🎬 67丨微信小程序API之实时音视频.mp4
│   ├── 🎬 68丨微信小程序API之文件应用.mp4
│   ├── 🎬 69丨微信小程度API之数据缓存.mp4
│   ├── 🎬 70丨微信小程序API之地图控制.mp4
│   ├── 🎬 71丨微信小程序API之网络设备信息.mp4
│   ├── 🎬 72丨微信小程序API之加速度计应用.mp4
│   ├── 🎬 73丨微信小程序API之其他设备操作.mp4
│   ├── 🎬 74丨微信小程序API之界面相关设置.mp4
│   ├── 🎬 75丨微信小程序API之页面路由控制.mp4
│   ├── 🎬 76丨微信小程序API之操作动画.mp4
│   ├── 🎬 77丨微信小程序API之绘图介绍.mp4
│   ├── 🎬 78丨微信小程序开放功能之登录授权.mp4
│   ├── 🎬 79丨微信小程序开放功能之微信支付.mp4
│   ├── 🎬 80丨微信小程序开放功能之模板消息.mp4
│   ├── 🎬 81丨微信小程序开放功能之转发分享.mp4
│   ├── 🎬 82丨微信小程序开放功能之打开APP.mp4
│   ├── 🎬 83丨小程序实战项目小书架之开发前的准备.mp4
│   ├── 🎬 84丨小程序实战项目小书架之书籍列表模块.mp4
│   ├── 🎬 85丨小程序实战项目小书架之登录授权.mp4
│   ├── 🎬 86丨小程序实战项目小书架之个人中心模块.mp4
│   ├── 🎬 87丨小程序实战项目小书架之书籍详情页面.mp4
│   ├── 🎬 88丨小程序实战项目小书架之评论及消息模块.mp4
│   ├── 🎬 89丨小程序实战项目小书架之已购书籍模块.mp4
│   ├── 🎬 90丨小程序之WePY框架介绍.mp4
│   ├── 🎬 91丨小程序之性能优化.mp4
│   ├── 📄 超全干货500T.xlsx
│   └── 🖼️ 干货工具箱priceeasy.png
├── 📁 【极客时间-100007001】微服务架构实战 160 讲
│   ├── 📁 001-050
│   │   ├── 🎬 01 第一模块课程介绍.mp4
│   │   ├── 🎬 02 微服务安全要解决什么问题.mp4
│   │   ├── 🎬 03 白话 OAuth2.mp4
│   │   ├── 🎬 04 OAuth2 的正式定义.mp4
│   │   ├── 🎬 05 OAuth2 有哪些典型模式.mp4
│   │   ├── 🎬 06 OAuth2 模式该如何选型.mp4
│   │   ├── 🎬 07 Spring Security OAuth2 架构简介.mp4
│   │   ├── 🎬 08 【实验】授权码模式授权服务器.mp4
│   │   ├── 🎬 09 【实验】简化模式授权服务器.mp4
│   │   ├── 🎬 10 【实验】密码模式授权服务器.mp4
│   │   ├── 🎬 11 【实验】客户端模式授权服务器.mp4
│   │   ├── 🎬 12 实验一扩展环节.mp4
│   │   ├── 🎬 13 【实验】Web 应用接入授权服务器.mp4
│   │   ├── 🎬 14 实验二扩展环节.mp4
│   │   ├── 🎬 15 什么是 JWT 令牌.mp4
│   │   ├── 🎬 16 【实验】授权服务器支持 JWT 令牌.mp4
│   │   ├── 🎬 17 实验三扩展环节.mp4
│   │   ├── 🎬 18 【实验】Android 无线应用接入授权服务器.mp4
│   │   ├── 🎬 19 【实验】AngularJS 单页应用实验和课后扩展.mp4
│   │   ├── 🎬 20 【实验】GitHub社交登录实验和课后扩展.mp4
│   │   ├── 🎬 21 【实验】OAuth2安全风险CSRF实验.mp4
│   │   ├── 🎬 22 OpenId Connect简介.mp4
│   │   ├── 🎬 23 下一代微服务安全架构.mp4
│   │   ├── 🎬 24 参考资源和后续课程预览.mp4
│   │   ├── 🎬 25 Apollo作者的产品介绍.mp4
│   │   ├── 🎬 26 第二模块课程介绍.mp4
│   │   ├── 🎬 27 课程概述.mp4
│   │   ├── 🎬 28 业务需求.mp4
│   │   ├── 🎬 29 配置定义和场景.mp4
│   │   ├── 🎬 30 开关驱动开发原理.mp4
│   │   ├── 🎬 31 携程 Apollo 配置中心介绍.mp4
│   │   ├── 🎬 32 Apollo核心概念.mp4
│   │   ├── 🎬 33 Apollo快速起步(Lab01).mp4
│   │   ├── 🎬 34 Apollo快速起步扩展实验.mp4
│   │   ├── 🎬 35 Apollo架构设计之服务器端.mp4
│   │   ├── 🎬 36 Apollo架构设计之客户端.mp4
│   │   ├── 🎬 37 Apollo架构设计之高可用和监控.mp4
│   │   ├── 🎬 38 Apollo分布式部署指南.mp4
│   │   ├── 🎬 39 Apollo Java客户端和多语言接入.mp4
│   │   ├── 🎬 40 Apollo Client API实操(Lab02).mp4
│   │   ├── 🎬 41 Apollo Client和Spring集成~XML方式(Lab03).mp4
│   │   ├── 🎬 42 Apollo Client和Spring集成~代码方式(Lab04).mp4
│   │   ├── 🎬 43 Apollo Client和Spring Boot集成(Lab05).mp4
│   │   ├── 🎬 44 Apollo开放平台接入实操(Lab06).mp4
│   │   ├── 🎬 45 Spring Cloud Config简介.mp4
│   │   ├── 🎬 46 Apollo vs Spring Cloud Config.mp4
│   │   ├── 🎬 47 Apollo FAQ和开发常见问题.mp4
│   │   ├── 🎬 48 参考资源和后续课程预览.mp4
│   │   ├── 🎬 49 第三模块课程介绍.mp4
│   │   └── 🎬 50 Zuul网关和基本应用场景.mp4
│   ├── 📁 051-099
│   │   ├── 🎬 51 Zuul网关高级应用场景.mp4
│   │   ├── 🎬 52 Zuul网关架构剖析.mp4
│   │   ├── 🎬 53 Zuul网关代码剖析(Code Review).mp4
│   │   ├── 🎬 54 Zuul网关过滤器管理工具(Code Review).mp4
│   │   ├── 🎬 55 前置过滤器实验(Lab01).mp4
│   │   ├── 🎬 56 路由过滤器实验(Lab02).mp4
│   │   ├── 🎬 57 后置过滤器实验(Lab03).mp4
│   │   ├── 🎬 58 Zuul网关对接Apollo(Lab04).mp4
│   │   ├── 🎬 59 Zuul网关生产部署实践.mp4
│   │   ├── 🎬 60 Zuul网关路由管理实践.mp4
│   │   ├── 🎬 61 基于网关的两层路由体系.mp4
│   │   ├── 🎬 62 Spring Cloud Zuul(Lab05).mp4
│   │   ├── 🎬 63 Zuul2.mp4
│   │   ├── 🎬 64 Zuul网关生产最佳实践.mp4
│   │   ├── 🎬 65 参考资源和后续课程预览.mp4
│   │   ├── 🎬 66 第四模块课程介绍.mp4
│   │   ├── 🎬 67 调用链监控业务需求.mp4
│   │   ├── 🎬 68 调用链监控原理.mp4
│   │   ├── 🎬 69 调用链监控产品和比较.mp4
│   │   ├── 🎬 70 点评 CAT 背景介绍.mp4
│   │   ├── 🎬 71 CAT 典型报表.mp4
│   │   ├── 🎬 72 CAT 告警简介.mp4
│   │   ├── 🎬 73 CAT 架构设计.mp4
│   │   ├── 🎬 74 【实验】CAT 本地部署.mp4
│   │   ├── 🎬 75 CAT 埋点案例和代码剖析(Code Review).mp4
│   │   ├── 🎬 76 【实验】CAT 埋点案例.mp4
│   │   ├── 🎬 77 Zuul 网关集成 CAT 代码剖析(Code Review).mp4
│   │   ├── 🎬 78 【实验】Zuul 网关集成 CAT.mp4
│   │   ├── 🎬 79 CAT 生产埋点实践.mp4
│   │   ├── 🎬 80 CAT 生产部署实践.mp4
│   │   ├── 🎬 81 CAT 生产治理实践.mp4
│   │   ├── 🎬 82 Spring Cloud Sleuth 简介.mp4
│   │   ├── 🎬 83 【实验】Spring Cloud Sleuth.mp4
│   │   ├── 🎬 84 参考资源和后续课程预览.mp4
│   │   ├── 🎬 85 第五模块课程介绍.mp4
│   │   ├── 🎬 86 容错限流需求.mp4
│   │   ├── 🎬 87 容错限流原理.mp4
│   │   ├── 🎬 88 Netflix Hystrix 背景介绍.mp4
│   │   ├── 🎬 89 Hystrix 设计原理.mp4
│   │   ├── 🎬 90 Hystrix 主要概念.mp4
│   │   ├── 🎬 91 信号量 vs 线程池隔离.mp4
│   │   ├── 🎬 92 Hystrix 主要配置项.mp4
│   │   ├── 🎬 93 【实验】Hystrix 基础实验.mp4
│   │   ├── 🎬 94 Hystrix 模拟案例分析 (Code Review).mp4
│   │   ├── 🎬 95 【实验】Hystrix + Dashboard 实验(上).mp4
│   │   ├── 🎬 96 【实验】Hystrix + Dashboard 实验(下).mp4
│   │   ├── 🎬 97 网关集成 Hystrix (Code Review).mp4
│   │   ├── 🎬 98 【实验】Spring Cloud Hystrix 实验.mp4
│   │   ├── 🎬 99 Netflix Turbine 简介.mp4
│   │   └── 🖼️ 干货工具箱priceeasy.png
│   └── 📁 100~171
│       ├── 🎬 100 Hystrix 生产最佳实践.mp4
│       ├── 🎬 101 参考资源和后续课程预览.mp4
│       ├── 🎬 102 第六模块课程介绍.mp4
│       ├── 🎬 103 服务发现需求和模式(上).mp4
│       ├── 🎬 104 服务发现需求和模式(下).mp4
│       ├── 🎬 105 Netflix Eureka 和 Ribbon 背景介绍.mp4
│       ├── 🎬 106 Eureka 和 Ribbon 架构设计原理.mp4
│       ├── 🎬 107 【实验】Spring Cloud Eureka 和 Ribbon 基础实战.mp4
│       ├── 🎬 108 【实验】Spring Cloud Eureka 和 Ribbon 高级实验.mp4
│       ├── 🎬 109 Spring Cloud Eureka 和 Ribbon 主要配置项.mp4
│       ├── 🎬 110 Eureka进阶:自保护模式.mp4
│       ├── 🎬 111 Eureka进阶:健康检查和蓝绿部署.mp4
│       ├── 🎬 112 【实验】Spring Cloud Zuul、Eureka 和 Ribbon 集成实验(上).mp4
│       ├── 🎬 113 【实验】Spring Cloud Zuul、Eureka 和 Ribbon 集成实验(下).mp4
│       ├── 🎬 114 常用服务发现组件比较.mp4
│       ├── 🎬 115 ServiceMesh 和 Istio 简介.mp4
│       ├── 🎬 116 基于 Eureka、Zuul 和容器云的持续交付架构.mp4
│       ├── 🎬 117 参考资源和后续课程预览.mp4
│       ├── 🎬 118 第七模块课程介绍.mp4
│       ├── 🎬 119 监控模式分类.mp4
│       ├── 🎬 120 BusDevOps 和测量驱动开发 MDD.mp4
│       ├── 🎬 121 Prometheus 简介.mp4
│       ├── 🎬 122 Prometheus 架构设计.mp4
│       ├── 🎬 123 Prometheus 基本概念.mp4
│       ├── 🎬 124 【实验】Prometheus 起步查询实验(上).mp4
│       ├── 🎬 125 【实验】Prometheus起步查询实验(中).mp4
│       ├── 🎬 126 【实验】Prometheus起步查询实验(下).mp4
│       ├── 🎬 127 【实验】Prometheus + Grafana 展示实验(上).mp4
│       ├── 🎬 128 【实验】Prometheus + Grafana 展示实验(下).mp4
│       ├── 🎬 129 【实验】Prometheus + Alertmanager 告警实验(上).mp4
│       ├── 🎬 130 【实验】Prometheus + Alertmanager 告警实验(下).mp4
│       ├── 🎬 131 【实验】Java 应用埋点和监控实验.mp4
│       ├── 🎬 132 【实验】NodeExporter 系统监控实验.mp4
│       ├── 🎬 133 【实验】Spring Boot Actuator 监控实验.mp4
│       ├── 🎬 134 Prometheus 监控最佳实践.mp4
│       ├── 🎬 135 主流开源时序数据库比较.mp4
│       ├── 🎬 136 开源分布式监控平台 ZMon 简介.mp4
│       ├── 🎬 137 微服务监控体系总结.mp4
│       ├── 🎬 138 参考资源和后续课程预览.mp4
│       ├── 🎬 139 课程概述和背景.mp4
│       ├── 🎬 140 架构和设计.mp4
│       ├── 🎬 141 开发环境搭建.mp4
│       ├── 🎬 142 基础代码(code review).mp4
│       ├── 🎬 143 数据访问模块(code review).mp4
│       ├── 🎬 144 OAuth2服务模块(code review).mp4
│       ├── 🎬 145 Web服务模块(code review).mp4
│       ├── 🎬 146 启动流程(code review).mp4
│       ├── 🎬 147 起步准备实验(lab02).mp4
│       ├── 🎬 148 OAuth2授权码模式实验(lab03).mp4
│       ├── 🎬 149 OAuth2简化模式实验(lab04).mp4
│       ├── 🎬 150 OAuth2用户名密码模式实验(lab05).mp4
│       ├── 🎬 151 OAuth2客户端模式实验(lab06).mp4
│       ├── 🎬 152 OAuth2令牌校验实验(lab07).mp4
│       ├── 🎬 153 OAuth2令牌刷新实验(lab08).mp4
│       ├── 🎬 154 项目复盘和扩展环节.mp4
│       ├── 🎬 155 参考资源和后续课程预览.mp4
│       ├── 🎬 156 课程概述和背景.mp4
│       ├── 🎬 157 需求和架构设计.mp4
│       ├── 🎬 158 开发环境搭建(lab01)(上).mp4
│       ├── 🎬 159 开发环境搭建(lab01)(下).mp4
│       ├── 🎬 160 项目业务代码(Code Review).mp4
│       ├── 🎬 161 Apollo配置中心集成(lab02).mp4
│       ├── 🎬 162 Zuul-Eureka-Ribbon-Hystrix集成(Code Review).mp4
│       ├── 🎬 163 Gravitee OAuth2集成(lab03).mp4
│       ├── 🎬 164 Zuul网关集中令牌校验(Code Review).mp4
│       ├── 🎬 165 CAT调用链集成(lab04)(上).mp4
│       ├── 🎬 166 CAT调用链集成(lab04)(下).mp4
│       ├── 🎬 167 Demo展示(lab05)(上).mp4
│       ├── 🎬 168 Demo展示(lab05)(下).mp4
│       ├── 🎬 169 Prometheus监控集成(Code Review).mp4
│       ├── 🎬 170 生产扩展环节.mp4
│       ├── 🎬 171 课程复盘总结.mp4
│       └── 🖼️ 干货工具箱priceeasy.png
├── 📁 【极客时间-100009301】React 实战进阶 45 讲
│   ├── 🎬 01丨React出现的历史背景及特性介绍.mp4
│   ├── 🎬 02丨以组件方式考虑UI的构建.mp4
│   ├── 🎬 03丨JSX 的本质  不是模板引擎,而是语法糖.mp4
│   ├── 🎬 04丨React组件的生命周期及其使用场景.mp4
│   ├── 🎬 05丨理解 Virtual DOM 及 key 属性的作用.mp4
│   ├── 🎬 06丨组件设计模式  高阶组件和函数作为子组件.mp4
│   ├── 🎬 07丨理解新的 Context API 及其使用场景.mp4
│   ├── 🎬 08丨使用脚手架工具创建 React 项目.mp4
│   ├── 🎬 09丨打包和部署.mp4
│   ├── 🎬 10丨Redux(1)  前端为何需要状态管理库.mp4
│   ├── 🎬 11丨Redux(2)  深入理解 Store, Action, Reducer.mp4
│   ├── 🎬 12丨Redux(3)  在React中使用Redux.mp4
│   ├── 🎬 13丨Redux(4)  理解异步 Action,Redux 中间件.mp4
│   ├── 🎬 14丨Redux(5)  如何组织Action和Reducer.mp4
│   ├── 🎬 15丨Redux(6)  理解不可变数据(Immutability)).mp4
│   ├── 🎬 16丨React Router(1):路由不只是页面切换,更是代码组织方式.mp4
│   ├── 🎬 17丨React Router(2):参数定义,嵌套路由的使用场景.mp4
│   ├── 🎬 18丨UI组件库对比和介绍:Ant.mp4
│   ├── 🎬 19丨使用Next.mp4
│   ├── 🎬 20丨使用Jest,Enzyme等工具进行单元测试.mp4
│   ├── 🎬 21丨常用开发调试工具:ESLint,Prettier,React DevTool,Redux DevTool.mp4
│   ├── 🎬 22丨前端项目的理想架构:可维护,可扩展,可测试,易开发,易建构.mp4
│   ├── 🎬 23丨拆分复杂度(1):按领域模型(feature)组织代码,降低耦合度.mp4
│   ├── 🎬 24丨拆分复杂度(2):如何组织component,action和reducer.mp4
│   ├── 🎬 25丨拆分复杂度(3):如何组织React Router的路由配置.mp4
│   ├── 🎬 26丨使用Rekit(1):创建项目,代码生成和重构.mp4
│   ├── 🎬 27丨使用Rekit(2):遵循最佳实践,保持代码一致性.mp4
│   ├── 🎬 28丨使用React Router管理登录和授权.mp4
│   ├── 🎬 29丨实现表单(1):初始数据,提交和跳转.mp4
│   ├── 🎬 30丨实现表单(2):错误处理,动态表单元素,内容动态加载.mp4
│   ├── 🎬 31丨列表页(1):搜索,数据缓存和分页.mp4
│   ├── 🎬 32丨列表页(2):缓存更新,加载状态,错误处理.mp4
│   ├── 🎬 33丨页面数据需要来源多个请求的处理.mp4
│   ├── 🎬 34丨内容页的加载与缓存.mp4
│   ├── 🎬 35丨基于React Router实现分步操作.mp4
│   ├── 🎬 36丨常见页面布局的实现.mp4
│   ├── 🎬 37丨使用 React Portals 实现对话框,使用 antd 对话框.mp4
│   ├── 🎬 38丨集成第三方JS库:以 d3.mp4
│   ├── 🎬 39丨基于路由实现菜单导航.mp4
│   ├── 🎬 40丨React 中拖放的实现.mp4
│   ├── 🎬 41丨性能永远是第一需求:时刻考虑性能问题.mp4
│   ├── 🎬 42丨网络性能优化:自动化按需加载.mp4
│   ├── 🎬 43丨使用Reselect避免重复计算.mp4
│   ├── 🎬 44丨下一代 React:异步渲染.mp4
│   ├── 🎬 45丨使用Chrome DevTool进行性能调优.mp4
│   └── 🖼️ 干货工具箱priceeasy.png
├── 📁 【极客时间-100019701】算法面试通关 40 讲
│   ├── 🎬 01  合格程序员的第一步:算法与数据结构.mp4
│   ├── 🎬 02  如何事半功倍地学习算法与数据结构.mp4
│   ├── 🎬 03  如何计算算法的复杂度.mp4
│   ├── 🎬 04  如何通过LeetCode来进行算法题目练习.mp4
│   ├── 🎬 05  理论讲解:数组&链表.mp4
│   ├── 🎬 06  面试题:反转一个单链表&判断链表是否有环.mp4
│   ├── 🎬 07  理论讲解:堆栈&队列.mp4
│   ├── 🎬 08  面试题:判断括号字符串是否有效.mp4
│   ├── 🎬 09  面试题:用队列实现栈&用栈实现队列.mp4
│   ├── 🎬 10  理论讲解:优先队列.mp4
│   ├── 🎬 11  面试题:返回数据流中的第K大元素.mp4
│   ├── 🎬 12  面试题:返回滑动窗口中的最大值.mp4
│   ├── 🎬 13  理论讲解:哈希表.mp4
│   ├── 🎬 14  面试题:有效的字母异位词.mp4
│   ├── 🎬 15  面试题:两数之和.mp4
│   ├── 🎬 16  面试题:三数之和.mp4
│   ├── 🎬 17  理论讲解:树&二叉树&二....mp4
│   ├── 🎬 18  面试题:验证二叉搜索树.mp4
│   ├── 🎬 19  面试题:二叉树&二叉搜索....mp4
│   ├── 🎬 20  理论讲解:二叉树遍历.mp4
│   ├── 🎬 21  理论讲解:递归&分治.mp4
│   ├── 🎬 22  面试题:Pow(x,n).mp4
│   ├── 🎬 23  面试题:求众数.mp4
│   ├── 🎬 24  理论讲解:贪心算法.mp4
│   ├── 🎬 25  面试题:买卖股票的最佳时机.mp4
│   ├── 🎬 26  理论讲解:广度优先搜索.mp4
│   ├── 🎬 27  理论讲解:深度优先搜索.mp4
│   ├── 🎬 28  面试题:二叉树层次遍历.mp4
│   ├── 🎬 29  面试题:二叉树的最大和最小深度.mp4
│   ├── 🎬 30  面试题:生成有效括号组合.mp4
│   ├── 🎬 31  理论讲解:剪枝.mp4
│   ├── 🎬 32  面试题:N皇后问题.mp4
│   ├── 🎬 33  面试题:数独问题.mp4
│   ├── 🎬 34  理论讲解:二分查找.mp4
│   ├── 🎬 35  面试题:实现一个求解平方....mp4
│   ├── 🎬 36  理论讲解:字典树.mp4
│   ├── 🎬 37  面试题:二维网格中的单词搜索问题.mp4
│   ├── 🎬 38  面试题:实现一个字典树.mp4
│   ├── 🎬 39  理论讲解:位运算.mp4
│   ├── 🎬 40  面试题:统计位1的个数.mp4
│   ├── 🎬 41  面试题:2的幂次方问题&比特位计数问题.mp4
│   ├── 🎬 42  面试题:N皇后问题的另一种解法.mp4
│   ├── 🎬 43  理论理解:动态规划(上).mp4
│   ├── 🎬 44  理论理解:动态规划(下).mp4
│   ├── 🎬 45  面试题:爬楼梯.mp4
│   ├── 🎬 46  面试题:三角形的最小路径和.mp4
│   ├── 🎬 47  面试题:乘积最大子序列.mp4
│   ├── 🎬 48  面试题:股票买卖系列.mp4
│   ├── 🎬 48  面试题:股票买卖系列2.mp4
│   ├── 🎬 49  面试题:最长上升子序列.mp4
│   ├── 🎬 50  面试题:零钱兑换.mp4
│   ├── 🎬 51  面试题:编辑距离.mp4
│   ├── 🎬 52  理论讲解:并查集.mp4
│   ├── 🎬 53  面试题:岛屿的个数&朋友圈(上).mp4
│   ├── 🎬 54  面试题:岛屿的个数&朋友圈(下).mp4
│   ├── 🎬 55  理论讲解: LRU Cache.mp4
│   ├── 🎬 56  面试题:设计和实现一个LRU Cache缓存机制.mp4
│   ├── 🎬 57  理论讲解:布隆过滤器.mp4
│   ├── 🎬 58  课程重点回顾.mp4
│   ├── 🎬 59  FAQ答疑&面试中切题四件套.mp4
│   ├── 🎬 60  回到起点:斐波拉契数列.mp4
│   ├── 🎬 61  白板实战番外篇:斐波拉契数列.mp4
│   ├── 🎬 62  最后的一些经验分享.mp4
│   └── 🖼️ 干货工具箱priceeasy.png
├── 📁 【极客时间-100020301】Nginx 核心知识 150 讲
│   ├── 📁 001-050
│   │   ├── 🎬 01丨 课程综述.mp4
│   │   ├── 🎬 02丨 Nginx 适用于哪些场景?.mp4
│   │   ├── 🎬 03丨 Nginx 出现的历史背景.mp4
│   │   ├── 🎬 04丨 为什么用 Nginx:它的 5 个主要优点.mp4
│   │   ├── 🎬 05丨 Nginx 的四个主要组成部分.mp4
│   │   ├── 🎬 06丨 Nginx 的版本发布历史.mp4
│   │   ├── 🎬 07丨 选择哪一个 Nginx 发行版本?.mp4
│   │   ├── 🎬 08丨 编译出适合自己的 Nginx.mp4
│   │   ├── 🎬 09丨 Nginx 配置文件的通用语法介绍.mp4
│   │   ├── 🎬 10丨 Nginx 命令行及演示:重载、热部署、日志切割.mp4
│   │   ├── 🎬 11丨 用 Nginx 搭建一个可用的静态资源 Web 服务器.mp4
│   │   ├── 🎬 12丨 用 Nginx 搭建一个具备缓存功能的反向代理服务.mp4
│   │   ├── 🎬 13丨 用 GoAccess 实现可视化并实时监控 access 日志.mp4
│   │   ├── 🎬 14丨 从网络原理来看 SSL 安全协议.mp4
│   │   ├── 🎬 15丨 对称加密与非对称加密各自的应用场景.mp4
│   │   ├── 🎬 16丨 SSL 证书的公信力是如何保证的?.mp4
│   │   ├── 🎬 17丨 SSL 协议握手时 Nginx 的性能瓶颈在哪里?.mp4
│   │   ├── 🎬 18丨 用免费 SSL 证书实现一个 HTTPS 站点.mp4
│   │   ├── 🎬 19丨 基于 OpenResty 用 Lua 语言实现简单服务.mp4
│   │   ├── 🎬 20丨 Nginx的请求处理流程.mp4
│   │   ├── 🎬 21丨 Nginx的进程结构.mp4
│   │   ├── 🎬 22丨 Nginx的进程结构实例演示.mp4
│   │   ├── 🎬 23丨 使用信号管理Nginx的父子进程.mp4
│   │   ├── 🎬 24丨 reload重载配置文件的真相.mp4
│   │   ├── 🎬 25丨 热升级的完整流程.mp4
│   │   ├── 🎬 26丨 优雅地关闭worker进程.mp4
│   │   ├── 🎬 27丨 网络收发与Nginx事件间的对应关系.mp4
│   │   ├── 🎬 28丨 Nginx网络事件实例演示.mp4
│   │   ├── 🎬 29丨 Nginx的事件驱动模型.mp4
│   │   ├── 🎬 30丨 epoll的优劣及原理.mp4
│   │   ├── 🎬 31丨Nginx的请求切换.mp4
│   │   ├── 🎬 32丨 同步&异步、阻塞&非阻塞之间的区别.mp4
│   │   ├── 🎬 33丨 Nginx的模块究竟是什么?.mp4
│   │   ├── 🎬 34丨 Nginx模块的分类.mp4
│   │   ├── 🎬 35丨 Nginx如何通过连接池处理网络请求.mp4
│   │   ├── 🎬 36丨 内存池对性能的影响.mp4
│   │   ├── 🎬 37丨 所有worker进程协同工作的关键:共享内存.mp4
│   │   ├── 🎬 38丨 用好共享内存的工具:Slab管理器.mp4
│   │   ├── 🎬 39丨 哈希表的max_size与bucket_size如何配置.mp4
│   │   ├── 🎬 40丨 Nginx中最常用的容器:红黑树.mp4
│   │   ├── 🎬 41丨 使用动态模块来提升运维效率.mp4
│   │   ├── 🎬 42丨 第三章内容介绍.mp4
│   │   ├── 🎬 43丨 冲突的配置指令以谁为准?.mp4
│   │   ├── 🎬 44丨 Listen指令的用法.mp4
│   │   ├── 🎬 45丨 处理HTTP请求头部的流程.mp4
│   │   ├── 🎬 46丨 Nginx中的正则表达式.mp4
│   │   ├── 🎬 47丨 如何找到处理请求的server指令块.mp4
│   │   ├── 🎬 48丨 详解HTTP请求的11个阶段.mp4
│   │   ├── 🎬 49丨 11个阶段的顺序处理.mp4
│   │   └── 🎬 50丨 postread阶段:获取真实客户端地址的realip模块.mp4
│   ├── 📁 051-099
│   │   ├── 🎬 51丨 rewrite阶段的rewrite模块:return指令.mp4
│   │   ├── 🎬 52丨 rewrite阶段的rewrite模块:重写URL.mp4
│   │   ├── 🎬 53丨 rewrite阶段的rewrite模块:条件判断.mp4
│   │   ├── 🎬 54丨 find_config阶段:找到处理请求的location指令块.mp4
│   │   ├── 🎬 55丨 preaccess阶段:对连接做限制的limit_conn模块.mp4
│   │   ├── 🎬 56丨 preaccess阶段:对请求做限制的limit_req模块.mp4
│   │   ├── 🎬 57丨 access阶段:对ip做限制的access模块.mp4
│   │   ├── 🎬 58丨 access阶段:对用户名密码做限制的auth_basic模块.mp4
│   │   ├── 🎬 59丨 access阶段:使用第三方做权限控制的auth_request模块.mp4
│   │   ├── 🎬 60丨 access阶段的satisfy指令.mp4
│   │   ├── 🎬 61丨 precontent阶段:按序访问资源的try_files模块.mp4
│   │   ├── 🎬 62丨 实时拷贝流量:precontent阶段的mirror模块.mp4
│   │   ├── 🎬 63丨 content阶段:详解root和alias指令.mp4
│   │   ├── 🎬 64丨 static模块提供的3个变量.mp4
│   │   ├── 🎬 65丨 static模块对url不以斜杠结尾却访问目录的做法.mp4
│   │   ├── 🎬 66丨 index和autoindex模块的用法.mp4
│   │   ├── 🎬 67丨 提升多个小文件性能的concat模块.mp4
│   │   ├── 🎬 68丨 access日志的详细用法.mp4
│   │   ├── 🎬 69丨 HTTP过滤模块的调用流程.mp4
│   │   ├── 🎬 70丨 用过滤模块更改响应中的字符串:sub模块.mp4
│   │   ├── 🎬 71丨 用过滤模块在http响应的前后添加内容:addition模块.mp4
│   │   ├── 🎬 72丨 Nginx变量的运行原理.mp4
│   │   ├── 🎬 73丨 HTTP框架提供的请求相关的变量.mp4
│   │   ├── 🎬 74丨 HTTP框架提供的其他变量.mp4
│   │   ├── 🎬 75丨 使用变量防盗链的referer模块.mp4
│   │   ├── 🎬 76丨 使用变量实现防盗链功能实践:secure_link模块.mp4
│   │   ├── 🎬 77丨 为复杂的业务生成新的变量:map模块.mp4
│   │   ├── 🎬 78丨 通过变量指定少量用户实现AB测试:split_client模块.mp4
│   │   ├── 🎬 79丨 根据IP地址范围的匹配生成新变量:geo模块.mp4
│   │   ├── 🎬 80丨 使用变量获得用户的地理位置:geoip模块.mp4
│   │   ├── 🎬 81丨 对客户端使用keepalive提升连接效率.mp4
│   │   ├── 🎬 82丨 反向代理与负载均衡原理.mp4
│   │   ├── 🎬 83丨 负载均衡策略:round-robin.mp4
│   │   ├── 🎬 84丨 负载均衡哈希算法:ip_hash与hash模块.mp4
│   │   ├── 🎬 85丨 一致性哈希算法:hash模块.mp4
│   │   ├── 🎬 86丨 最少连接算法以及如何跨worker进程生效.mp4
│   │   ├── 🎬 87丨 http upstream模块提供的变量.mp4
│   │   ├── 🎬 88丨 http反向代理proxy处理请求的流程.mp4
│   │   ├── 🎬 89丨 proxy模块中的proxy_pass指令.mp4
│   │   ├── 🎬 90丨 根据指令修改发往上游的请求.mp4
│   │   ├── 🎬 91丨 接收用户请求包体的方式.mp4
│   │   ├── 🎬 92丨 与上游服务建立连接.mp4
│   │   ├── 🎬 93丨 接收上游的响应.mp4
│   │   ├── 🎬 94丨 处理上游的响应头部.mp4
│   │   ├── 🎬 95丨 上游出现失败时的容错方案.mp4
│   │   ├── 🎬 96丨 对上游使用SSL连接.mp4
│   │   ├── 🎬 97丨 用好浏览器的缓存.mp4
│   │   ├── 🎬 98丨 Nginx决策浏览器过期缓存是否有效.mp4
│   │   └── 🎬 99丨 缓存的基本用法.mp4
│   └── 📁 100-155
│       ├── 🎬 100丨 对客户端请求的缓存处理流程.mp4
│       ├── 🎬 101丨 接收上游响应的缓存处理流程.mp4
│       ├── 🎬 102丨 如何减轻缓存失效时上游服务的压力.mp4
│       ├── 🎬 103丨 及时清除缓存.mp4
│       ├── 🎬 104丨 uwsgi、fastcgi、scgi指令的对照表.mp4
│       ├── 🎬 105丨 memcached反向代理的用法.mp4
│       ├── 🎬 106丨 搭建websocket反向代理.mp4
│       ├── 🎬 107丨 用分片提升缓存效率.mp4
│       ├── 🎬 108丨 open file cache提升系统性能.mp4
│       ├── 🎬 109丨 http2协议介绍.mp4
│       ├── 🎬 110丨 搭建http2服务并推送资源.mp4
│       ├── 🎬 111丨 grpc反向代理.mp4
│       ├── 🎬 112丨 stream四层反向代理的7个阶段及常用变量.mp4
│       ├── 🎬 113丨 proxy protocol协议与realip模块.mp4
│       ├── 🎬 114丨 限并发连接、限IP、记日志.mp4
│       ├── 🎬 115丨 stream四层反向代理处理SSL下游流量.mp4
│       ├── 🎬 116丨 stream_preread模块取出SSL关键信息.mp4
│       ├── 🎬 117丨 stream proxy四层反向代理的用法.mp4
│       ├── 🎬 118丨 UDP反向代理.mp4
│       ├── 🎬 119丨 透传IP地址的3个方案.mp4
│       ├── 🎬 120丨 性能优化方法论.mp4
│       ├── 🎬 121丨 如何高效使用CPU.mp4
│       ├── 🎬 122丨 多核间的负载均衡.mp4
│       ├── 🎬 123丨 控制TCP三次握手参数.mp4
│       ├── 🎬 124丨 建立TCP连接的优化.mp4
│       ├── 🎬 125丨 滑动窗口与缓冲区.mp4
│       ├── 🎬 126丨 优化缓冲区与传输效率.mp4
│       ├── 🎬 127丨 慢启动与拥塞窗口.mp4
│       ├── 🎬 128丨 TCP协议的keepalive功能.mp4
│       ├── 🎬 129丨 减少关闭连接时的time_wait端口数量.mp4
│       ├── 🎬 130丨 lingering_close延迟关闭TCP连接.mp4
│       ├── 🎬 131丨 应用层协议的优化.mp4
│       ├── 🎬 132丨 磁盘IO的优化.mp4
│       ├── 🎬 133丨 减少磁盘读写次数.mp4
│       ├── 🎬 134丨 零拷贝与gzip_static模块.mp4
│       ├── 🎬 135丨 用tcmalloc优化内存分配.mp4
│       ├── 🎬 136丨 使用Google PerfTools分析Nginx.mp4
│       ├── 🎬 137丨 使用stub_status模块监控Nginx的状态.mp4
│       ├── 🎬 138丨 第三方模块源码的阅读.mp4
│       ├── 🎬 139丨 Nginx的启动流程.mp4
│       ├── 🎬 140丨 HTTP第三方模块的初始化.mp4
│       ├── 🎬 141丨 if指令是邪恶的吗?.mp4
│       ├── 🎬 142丨 解读Nginx的核心转储文件.mp4
│       ├── 🎬 143丨 通过debug日志定位问题.mp4
│       ├── 🎬 144丨 OpenResty概述.mp4
│       ├── 🎬 145丨 OpenResty中的Nginx模块与Lua模块.mp4
│       ├── 🎬 146丨 如何在Nginx中嵌入Lua代码.mp4
│       ├── 🎬 147丨 OpenResty中Lua与C代码交互的原理.mp4
│       ├── 🎬 148丨 获取、修改请求与响应的SDK.mp4
│       ├── 🎬 149丨 工具类型的SDK.mp4
│       ├── 🎬 150丨 同步且非阻塞的底层SDK:cosocket.mp4
│       ├── 🎬 151丨 基于协程的并发编程SDK.mp4
│       ├── 🎬 152丨 定时器及时间相关的SDK.mp4
│       ├── 🎬 153丨 share.mp4
│       ├── 🎬 154丨 子请求的使用方法.mp4
│       ├── 🎬 155丨 基于OpenResty的WAF防火墙.mp4
│       └── 🖼️ 干货工具箱priceeasy.png
├── 📁 【极客时间-100021601】玩转 Git 三剑客
│   ├── 🎬 01丨课程综述.mp4
│   ├── 🎬 02丨安装Git.mp4
│   ├── 🎬 03丨使用Git之前需要做的最小配置.mp4
│   ├── 🎬 04丨创建第一个仓库并配置local用户信息.mp4
│   ├── 🎬 05丨通过几次commit来认识工作区和暂存区.mp4
│   ├── 🎬 06丨给文件重命名的简便方法.mp4
│   ├── 🎬 07丨通过git log 查看版本演变历史.mp4
│   ├── 🎬 08丨gitk:通过图形界面工具来查看版本历史.mp4
│   ├── 🎬 09丨探密.mp4
│   ├── 🎬 10丨commit、tree和blob三个对象之间的关系.mp4
│   ├── 🎬 11丨小练习:数一数tree的个数.mp4
│   ├── 🎬 12丨分离头指针情况下的注意事项.mp4
│   ├── 🎬 13丨进一步理解HEAD和branch.mp4
│   ├── 🎬 14丨怎么删除不需要的分支?.mp4
│   ├── 🎬 15丨怎么修改最新commit的message?.mp4
│   ├── 🎬 16丨怎么修改老旧commit的message?.mp4
│   ├── 🎬 17丨怎样把连续的多个commit整理成1个?.mp4
│   ├── 🎬 18丨怎样把间隔的几个commit整理成1个?.mp4
│   ├── 🎬 19丨怎么比较暂存区和HEAD所含文件的差异?.mp4
│   ├── 🎬 20丨怎么比较工作区和暂存区所含文件的差异?.mp4
│   ├── 🎬 21丨如何让暂存区恢复成和HEAD的一样?.mp4
│   ├── 🎬 22丨如何让工作区的文件恢复为和暂存区一样?.mp4
│   ├── 🎬 23丨怎样取消暂存区部分文件的更改?.mp4
│   ├── 🎬 24丨消除最近的几次提交.mp4
│   ├── 🎬 25丨看看不同提交的指定文件的差异.mp4
│   ├── 🎬 26丨正确删除文件的方法.mp4
│   ├── 🎬 27丨开发中临时加塞了紧急任务怎么处理?.mp4
│   ├── 🎬 28丨如何指定不需要Git管理的文件?.mp4
│   ├── 🎬 29丨如何将Git仓库备份到本地?.mp4
│   ├── 🎬 30丨注册一个GitHub账号.mp4
│   ├── 🎬 31丨配置公私钥.mp4
│   ├── 🎬 32丨在GitHub上创建个人仓库.mp4
│   ├── 🎬 33丨把本地仓库同步到GitHub.mp4
│   ├── 🎬 34丨不同人修改了不同文件如何处理?.mp4
│   ├── 🎬 35丨不同人修改了同文件的不同区域如何处理?.mp4
│   ├── 🎬 36丨不同人修改了同文件的同一区域如何处理?.mp4
│   ├── 🎬 37丨同时变更了文件名和文件内容如何处理?.mp4
│   ├── 🎬 38丨把同一文件改成了不同的文件名如何处理?.mp4
│   ├── 🎬 39丨禁止向集成分支执行push -f操作.mp4
│   ├── 🎬 40丨禁止向集成分支执行变更历史的操作.mp4
│   ├── 🎬 41丨GitHub为什么会火?.mp4
│   ├── 🎬 42丨GitHub都有哪些核心功能?.mp4
│   ├── 🎬 43丨怎么快速淘到感兴趣的开源项目.mp4
│   ├── 🎬 44丨怎样在GitHub上搭建个人博客.mp4
│   ├── 🎬 45丨开源项目怎么保证代码质量?.mp4
│   ├── 🎬 46丨为何需要组织类型的仓库?.mp4
│   ├── 🎬 47丨创建团队的项目.mp4
│   ├── 🎬 48丨怎样选择适合自己团队的工作流?.mp4
│   ├── 🎬 49丨如何挑选合适的分支集成策略?.mp4
│   ├── 🎬 50丨启用issue跟踪需求和任务.mp4
│   ├── 🎬 51丨如何用project管理issue?.mp4
│   ├── 🎬 52丨项目内部怎么实施code review?.mp4
│   ├── 🎬 53丨团队协作时如何做多分支的集成?.mp4
│   ├── 🎬 54丨怎样保证集成的质量?.mp4
│   ├── 🎬 55丨怎样把产品包发布到GitHub上?.mp4
│   ├── 🎬 56丨怎么给项目增加详细的指导文档?.mp4
│   ├── 🎬 57丨国内互联网企业为什么喜欢GitLab?.mp4
│   ├── 🎬 58丨GitLab有哪些核心的功能?.mp4
│   ├── 🎬 59丨GitLab上怎么做项目管理?.mp4
│   ├── 🎬 60丨GitLab上怎么做code review?.mp4
│   ├── 🎬 61丨GitLab上怎么保证集成的质量?.mp4
│   ├── 🎬 62丨怎么把应用部署到AWS上?.mp4
│   └── 🖼️ 干货工具箱priceeasy.png
├── 📁 【极客时间-100027801】零基础学 Java
│   ├── 📁 001-050
│   │   ├── 🎬 01丨零基础学Java课程介绍.mp4
│   │   ├── 🎬 02丨内容综述.mp4
│   │   ├── 🎬 03丨开发环境搭建(macOS).mp4
│   │   ├── 🎬 04丨HelloWorld程序编译和运行(macOS).mp4
│   │   ├── 🎬 05丨开发环境搭建(Windows).mp4
│   │   ├── 🎬 06丨HelloWorld程序编译和运行(Windows).mp4
│   │   ├── 🎬 07丨详解HelloWorld程序.mp4
│   │   ├── 🎬 08丨IntelliJ IDEA集成开发环境的安装和使用(macOS).mp4
│   │   ├── 🎬 09丨IntelliJ IDEA集成开发环境的安装和使用(Windows).mp4
│   │   ├── 🎬 10丨从加减乘除到变量.mp4
│   │   ├── 🎬 11丨再探计算加减乘除的程序.mp4
│   │   ├── 🎬 12丨Java中的基本数据类型.mp4
│   │   ├── 🎬 13丨Java 中的运算符.mp4
│   │   ├── 🎬 14丨Java中的位运算符.mp4
│   │   ├── 🎬 15丨基本数据类型的更多语法点.mp4
│   │   ├── 🎬 16丨字符集编码和字符串.mp4
│   │   ├── 🎬 17丨操作符和数据类型总结.mp4
│   │   ├── 🎬 18丨程序执行流程之if-else语句(上).mp4
│   │   ├── 🎬 19丨程序执行流程之if-else语句(下).mp4
│   │   ├── 🎬 20丨程序循环之for语句.mp4
│   │   ├── 🎬 21丨代码块和变量的作用域.mp4
│   │   ├── 🎬 22丨程序循环之while语句.mp4
│   │   ├── 🎬 23丨程序执行流程之switch语句.mp4
│   │   ├── 🎬 24丨循环和判断的总结(上).mp4
│   │   ├── 🎬 25丨循环和判断的总结(下).mp4
│   │   ├── 🎬 26丨用数组保存成绩.mp4
│   │   ├── 🎬 27丨认识变量和数组(上).mp4
│   │   ├── 🎬 28丨认识变量和数组(下).mp4
│   │   ├── 🎬 29丨多维数组.mp4
│   │   ├── 🎬 30丨用数组灵活处理程序.mp4
│   │   ├── 🎬 31丨类(class).mp4
│   │   ├── 🎬 32丨初探类和对象.mp4
│   │   ├── 🎬 33丨认识引用类型(上).mp4
│   │   ├── 🎬 34丨认识引用类型(下).mp4
│   │   ├── 🎬 35丨类、对象和引用的关系.mp4
│   │   ├── 🎬 36丨认识数组类型.mp4
│   │   ├── 🎬 37丨引用的缺省值null.mp4
│   │   ├── 🎬 38丨像自定义类型一样使用类.mp4
│   │   ├── 🎬 39丨Java中的包和访问修饰符(上).mp4
│   │   ├── 🎬 40丨Java中的包和访问修饰符(下).mp4
│   │   ├── 🎬 41丨打造一个小超市.mp4
│   │   ├── 🎬 42丨IntelliJ调试程序初探.mp4
│   │   ├── 🎬 43丨方法:让Merchandise对象有行为.mp4
│   │   ├── 🎬 44丨返回值:让Merchandise计算毛利润.mp4
│   │   ├── 🎬 45丨参数:让Merchandise计算多件商品的总价.mp4
│   │   ├── 🎬 46丨参数和返回值是怎么传递的.mp4
│   │   ├── 🎬 47丨分清参数、局部变量和实例的地盘.mp4
│   │   ├── 🎬 48丨隐藏的this自引用.mp4
│   │   ├── 🎬 49丨理解方法:一种特殊的代码块.mp4
│   │   └── 🎬 50丨理解方法的调用:代码的一种特殊跳转.mp4
│   ├── 📁 051-100
│   │   ├── 🎬 51丨给类和方法加Java注释.mp4
│   │   ├── 🎬 52丨成熟的类的对象要自己做事情.mp4
│   │   ├── 🎬 53丨方法的签名和重载.mp4
│   │   ├── 🎬 54丨重载的参数匹配规则.mp4
│   │   ├── 🎬 55丨构造方法:构造实例的方法.mp4
│   │   ├── 🎬 56丨构造方法的重载和互相调用.mp4
│   │   ├── 🎬 57丨静态变量.mp4
│   │   ├── 🎬 58丨静态方法.mp4
│   │   ├── 🎬 59丨静态方法的重载.mp4
│   │   ├── 🎬 60丨static代码块和static变量初始化.mp4
│   │   ├── 🎬 61丨方法和属性的可见性修饰符.mp4
│   │   ├── 🎬 62丨重新认识老朋友:Math 和 Scanner(上).mp4
│   │   ├── 🎬 63丨重新认识老朋友:Math 和 Scanner(下).mp4
│   │   ├── 🎬 64丨最熟悉的陌生人:String (上).mp4
│   │   ├── 🎬 65丨最熟悉的陌生人:String (下).mp4
│   │   ├── 🎬 66丨重新认识老朋友: main方法和System类.mp4
│   │   ├── 🎬 67丨String 类的好兄弟.mp4
│   │   ├── 🎬 68丨继承:方便让商品增加新的类别.mp4
│   │   ├── 🎬 69丨子类对象里藏着一个父类对象.mp4
│   │   ├── 🎬 70丨覆盖:子类想要一点不一样.mp4
│   │   ├── 🎬 71丨super:和父类对象沟通的桥梁.mp4
│   │   ├── 🎬 72丨super:调用父类的构造方法.mp4
│   │   ├── 🎬 73丨父类和子类的引用赋值关系.mp4
│   │   ├── 🎬 74丨多态:到底调用的哪个方法?(上).mp4
│   │   ├── 🎬 75丨多态:到底调用的哪个方法?(下).mp4
│   │   ├── 🎬 76丨多态里更多的语法点(上).mp4
│   │   ├── 🎬 77丨多态里更多的语法点(下).mp4
│   │   ├── 🎬 78丨instanceof操作符.mp4
│   │   ├── 🎬 79丨继承专属的访问控制:protected.mp4
│   │   ├── 🎬 80丨final修饰符(上).mp4
│   │   ├── 🎬 81丨final修饰符(下).mp4
│   │   ├── 🎬 82丨继承里的静态方法.mp4
│   │   ├── 🎬 83丨插曲:for循环的另一种写法.mp4
│   │   ├── 🎬 84丨万类之祖:Object类.mp4
│   │   ├── 🎬 85丨hashCode和equals方法(上).mp4
│   │   ├── 🎬 86丨hashCode和equals方法(下).mp4
│   │   ├── 🎬 87丨toString方法.mp4
│   │   ├── 🎬 88丨初探Class类.mp4
│   │   ├── 🎬 89丨初探反射(上).mp4
│   │   ├── 🎬 90丨初探反射(下).mp4
│   │   ├── 🎬 91丨面向对象三要素:封装、继承和多态.mp4
│   │   ├── 🎬 92丨枚举:定义商品的门类.mp4
│   │   ├── 🎬 93丨接口:让商品类型更丰富(上).mp4
│   │   ├── 🎬 94丨接口:让商品类型更丰富(下).mp4
│   │   ├── 🎬 95丨抽象类:接口和类的混合体.mp4
│   │   ├── 🎬 96丨有方法代码的接口.mp4
│   │   ├── 🎬 97丨接口内代码的更多内容.mp4
│   │   ├── 🎬 98丨静态内部类.mp4
│   │   ├── 🎬 99丨成员内部类.mp4
│   │   └── 🎬 100丨局部内部类.mp4
│   ├── 🎬 101丨匿名类.mp4
│   ├── 🎬 102丨特殊类的总结.mp4
│   ├── 🎬 103丨让我们的超市运转起来:设计篇.mp4
│   ├── 🎬 104丨让我们的超市运转起来:代码篇.mp4
│   ├── 🎬 105丨初识异常:trycatch.mp4
│   ├── 🎬 106丨Java中异常的分类.mp4
│   ├── 🎬 107丨抛出异常的语法.mp4
│   ├── 🎬 108丨Java异常的传递.mp4
│   ├── 🎬 109丨自定义异常.mp4
│   ├── 🎬 110丨异常传递不是凌波微步.mp4
│   ├── 🎬 111丨trycatchfinally语句.mp4
│   ├── 🎬 112丨自动回收资源的try语句.mp4
│   ├── 🎬 113丨Java中的常见异常.mp4
│   ├── 🎬 114丨Collection类族简介.mp4
│   ├── 🎬 115丨Collection中的List(上).mp4
│   ├── 🎬 116丨Collection中的List(下).mp4
│   ├── 🎬 117丨Collection中的Set.mp4
│   ├── 🎬 118丨范型简析(上).mp4
│   ├── 🎬 119丨范型简析(下).mp4
│   ├── 🎬 120丨再探范型.mp4
│   ├── 🎬 121丨Iterator接口.mp4
│   ├── 🎬 122丨Map:key和value的映射.mp4
│   ├── 🎬 123丨定义自己的注解.mp4
│   ├── 🎬 124丨lambda的理解和使用(上).mp4
│   ├── 🎬 125丨lambda的理解和使用(下).mp4
│   ├── 🎬 126丨基本类型的自动装箱和拆箱.mp4
│   ├── 🎬 127丨Java中的File类.mp4
│   ├── 🎬 128丨Java I-O简介.mp4
│   ├── 🎬 129丨写文件内容小程序.mp4
│   ├── 🎬 130丨读文件内容小程序.mp4
│   ├── 🎬 131丨网络通讯名词简介.mp4
│   ├── 🎬 132丨简单的网络通讯小程序(上).mp4
│   ├── 🎬 133丨简单的网络通讯小程序(下).mp4
│   ├── 🎬 134丨简单的抓取网页内容的程序.mp4
│   ├── 🎬 135丨JDK和JRE.mp4
│   ├── 🎬 136丨初识线程.mp4
│   ├── 🎬 137丨创建自己的线程.mp4
│   ├── 🎬 138丨再探线程.mp4
│   ├── 🎬 139丨多线程:混乱开始了.mp4
│   ├── 🎬 140丨同步控制之synchronized.mp4
│   ├── 🎬 141丨同步控制之waitnotify.mp4
│   ├── 🎬 142丨多线程经典模型:生产者消费者.mp4
│   ├── 🎬 143丨线程同步之join.mp4
│   ├── 🎬 144丨死锁.mp4
│   ├── 🎬 145丨ThreadLocal线程专属的变量.mp4
│   ├── 🎬 146丨定时任务.mp4
│   ├── 🎬 147丨volatile关键字的作用.mp4
│   ├── 🎬 148丨concurrent包基本原理.mp4
│   ├── 🎬 149丨concurrent包中的Atomic类族.mp4
│   ├── 🎬 150丨concurrent包中的锁.mp4
│   ├── 🎬 151丨concurrent包中的数据结构.mp4
│   ├── 🎬 152丨concurrent包中的线程池.mp4
│   ├── 🎬 153丨聊天室开张喽(上).mp4
│   ├── 🎬 154丨聊天室开张喽(下).mp4
│   ├── 🎬 155丨什么是学习一门语言.mp4
│   ├── 🎬 156丨Java平台简介.mp4
│   ├── 🎬 157丨Maven概念简介.mp4
│   ├── 🎬 158丨Maven的安装和配置.mp4
│   ├── 🎬 159丨创建一个简单的Maven项目.mp4
│   ├── 🎬 160丨一个从pptx文件中抽取文字的小工具.mp4
│   ├── 🎬 161丨Maven常用命令和插件.mp4
│   ├── 🎬 162丨Intellij更多功能介绍.mp4
│   ├── 🎬 163丨值得学习的类库简介.mp4
│   ├── 🎬 164丨如何在StackOverflow上提问才不会被骂.mp4
│   ├── 🎬 165丨浅谈程序设计.mp4
│   ├── 🎬 166丨游戏小程序功能定义.mp4
│   ├── 🎬 167丨游戏小程序设计和模块划分.mp4
│   ├── 🎬 168丨游戏小程序代码分析.mp4
│   ├── 🎬 169丨使用Swagger创建一个SpringBoot的Web服务.mp4
│   ├── 🎬 170丨结束语.mp4
│   └── 🖼️ 干货工具箱priceeasy.png
├── 📁 【极客时间-100029601】Linux 实战技能 100 讲
│   ├── 🎬 001丨课程介绍.mp4
│   ├── 🎬 002丨内容综述.mp4
│   ├── 🎬 003丨什么是Linux.mp4
│   ├── 🎬 004丨Linux的内核版本及常见发行版.mp4
│   ├── 🎬 005丨安装VirtualBox虚拟机.mp4
│   ├── 🎬 006丨在虚拟机中安装Linux.mp4
│   ├── 🎬 007丨第一次启动Linux.mp4
│   ├── 🎬 008丨万能的帮助命令:man help info.mp4
│   ├── 🎬 009丨初识pwd和ls命令.mp4
│   ├── 🎬 010丨详解ls命令.mp4
│   ├── 🎬 011丨详解cd命令.mp4
│   ├── 🎬 012丨创建和删除目录.mp4
│   ├── 🎬 013丨复制和移动目录.mp4
│   ├── 🎬 014丨如何在Linux下进行文本查看.mp4
│   ├── 🎬 015丨打包压缩和解压缩.mp4
│   ├── 🎬 016丨vi的四种模式.mp4
│   ├── 🎬 017丨Vim的正常模式.mp4
│   ├── 🎬 018丨Vim的命令模式.mp4
│   ├── 🎬 019丨Vim的可视模式.mp4
│   ├── 🎬 020丨用户和用户组管理.mp4
│   ├── 🎬 021丨su和sudo.mp4
│   ├── 🎬 022丨用户和用户组的配置文件介绍.mp4
│   ├── 🎬 023丨文件与目录权限的表示方法.mp4
│   ├── 🎬 024丨文件权限的修改方法和数字表示方法.mp4
│   ├── 🎬 025丨权限管理以及文件的特殊权限.mp4
│   ├── 🎬 026丨网络管理.mp4
│   ├── 🎬 027丨查看网络配置.mp4
│   ├── 🎬 028丨修改网络配置.mp4
│   ├── 🎬 028丨修改网络配置_20190725_141705.mp4
│   ├── 🎬 029丨网络故障排除命令.mp4
│   ├── 🎬 030丨网络管理和配置文件.mp4
│   ├── 🎬 031丨软件包管理器的使用.mp4
│   ├── 🎬 032丨使用rpm命令安装软件包.mp4
│   ├── 🎬 033丨使用yum包管理器安装软件包.mp4
│   ├── 🎬 034丨通过源代码编译安装软件包.mp4
│   ├── 🎬 035丨如何进行内核升级.mp4
│   ├── 🎬 036丨grub配置文件介绍.mp4
│   ├── 🎬 037丨使用ps和top命令查看进程.mp4
│   ├── 🎬 038丨进程的控制与进程之间的关系.mp4
│   ├── 🎬 039丨进程的通信方式与信号:kill命令.mp4
│   ├── 🎬 040丨守护进程.mp4
│   ├── 🎬 041丨screen命令和系统日志.mp4
│   ├── 🎬 042丨服务管理工具systemctl.mp4
│   ├── 🎬 043丨SELinux简介.mp4
│   ├── 🎬 044丨内存与磁盘管理.mp4
│   ├── 🎬 045丨内存查看命令.mp4
│   ├── 🎬 046丨磁盘分区和文件大小查看.mp4
│   ├── 🎬 047丨文件系统管理.mp4
│   ├── 🎬 048丨i节点和数据块操作.mp4
│   ├── 🎬 049丨分区和挂载.mp4
│   ├── 🎬 050丨分区和挂载磁盘配额.mp4
│   ├── 🎬 051丨交换分区swap的查看与创建.mp4
│   ├── 🎬 052丨软件RAID的使用.mp4
│   ├── 🎬 053丨逻辑卷LVM的用途与创建.mp4
│   ├── 🎬 054丨系统综合状态查看命令sar以及第三方命令.mp4
│   ├── 🎬 055丨什么是Shell.mp4
│   ├── 🎬 056丨Linux的启动过程.mp4
│   ├── 🎬 057丨Shell脚本的格式.mp4
│   ├── 🎬 058丨脚本不同执行方式的影响.mp4
│   ├── 🎬 059丨管道.mp4
│   ├── 🎬 060丨重定向.mp4
│   ├── 🎬 061丨变量赋值.mp4
│   ├── 🎬 062丨变量引用及作用范围.mp4
│   ├── 🎬 063丨环境变量、预定义变量与位置变量.mp4
│   ├── 🎬 064丨环境变量配置文件.mp4
│   ├── 🎬 065丨数组.mp4
│   ├── 🎬 066丨转义和引用.mp4
│   ├── 🎬 067丨运算符.mp4
│   ├── 🎬 068丨特殊字符大全.mp4
│   ├── 🎬 069丨test比较.mp4
│   ├── 🎬 070丨if判断的使用.mp4
│   ├── 🎬 071丨if-else判断的使用.mp4
│   ├── 🎬 072丨嵌套if的使用.mp4
│   ├── 🎬 073丨case分支.mp4
│   ├── 🎬 074丨for的基本使用.mp4
│   ├── 🎬 075丨C语言风格的for.mp4
│   ├── 🎬 076丨while循环和until循环.mp4
│   ├── 🎬 077丨循环的嵌套和break、continue语句.mp4
│   ├── 🎬 078丨使用循环处理位置参数.mp4
│   ├── 🎬 079丨自定义函数.mp4
│   ├── 🎬 080丨系统函数库介绍.mp4
│   ├── 🎬 081丨脚本资源控制.mp4
│   ├── 🎬 082丨信号.mp4
│   ├── 🎬 083丨一次性计划任务.mp4
│   ├── 🎬 084丨周期性计划任务.mp4
│   ├── 🎬 085丨为脚本加锁.mp4
│   ├── 🎬 086丨元字符介绍.mp4
│   ├── 🎬 087丨find演示.mp4
│   ├── 🎬 088丨sed和awk介绍.mp4
│   ├── 🎬 089丨sed替换命令讲解.mp4
│   ├── 🎬 090丨sed指令加强版.avi
│   ├── 🎬 091丨sed其他指令.mp4
│   ├── 🎬 092丨sed多行模式空间.mp4
│   ├── 🎬 093丨保持空间.mp4
│   ├── 🎬 094丨认识awk.mp4
│   ├── 🎬 095丨awk的字段.mp4
│   ├── 🎬 096丨awk表达式.mp4
│   ├── 🎬 097丨awk判断和循环.mp4
│   ├── 🎬 098丨awk数组.mp4
│   ├── 🎬 099丨awk数组功能的使用.mp4
│   ├── 🎬 100丨awk函数.mp4
│   ├── 🎬 101丨防火墙概述.mp4
│   ├── 🎬 102丨iptables规则的基本使用演示.mp4
│   ├── 🎬 103丨iptables过滤规则的使用.mp4
│   ├── 🎬 104丨iptablesnat表的使用.mp4
│   ├── 🎬 105丨firewalld.mp4
│   ├── 🎬 106丨SSH介绍之Telnet明文漏洞.mp4
│   ├── 🎬 107丨SSH服务演示.mp4
│   ├── 🎬 108丨FTP服务搭建.mp4
│   ├── 🎬 109丨vsftpd配置文件介绍.mp4
│   ├── 🎬 110丨vsftp虚拟用户.avi
│   ├── 🎬 111丨samba服务演示.mp4
│   ├── 🎬 112丨NFS服务.mp4
│   ├── 🎬 113丨Nginx基本配置文件.mp4
│   ├── 🎬 114丨Nginx域名虚拟主机.mp4
│   ├── 🎬 115丨LNMP.mp4
│   ├── 🎬 116丨DNS.mp4
│   ├── 🎬 117丨NAS演示.mp4
│   ├── 🎬 118丨结束语.avi
│   └── 🖼️ 干货工具箱priceeasy.png
├── 📁 【极客时间-100030501】Elasticsearch 核心技术与实战
│   ├── 🎬 01丨课程介绍.mp4
│   ├── 🎬 02丨内容综述及学习建议.mp4
│   ├── 🎬 03丨Elasticsearch简介及其发展历史.mp4
│   ├── 🎬 04丨ElasticStack家族成员及其应用场景.mp4
│   ├── 🎬 05丨Elasticsearch的安装与简单配置.mp4
│   ├── 🎬 06丨Kibana的安装与界面快速浏览.mp4
│   ├── 🎬 07丨在Docker容器中运行ElasticsearchKibana和Cerebro.mp4
│   ├── 🎬 08丨Logstash安装与导入数据.mp4
│   ├── 🎬 09丨基本概念(1):索引,文档和RESTAPI.mp4
│   ├── 🎬 10丨基本概念:节点、集群、分片及副本.mp4
│   ├── 🎬 11丨文档的基本CRUD与批量操作.mp4
│   ├── 🎬 12丨倒排索引介绍.mp4
│   ├── 🎬 13丨通过Analyzer进行分词.mp4
│   ├── 🎬 14丨SearchAPI概览.mp4
│   ├── 🎬 15丨URISearch详解.mp4
│   ├── 🎬 16丨RequestBody与QueryDSL简介.mp4
│   ├── 🎬 17丨QueryString&SimpleQueryString查询.mp4
│   ├── 🎬 18丨DynamicMapping和常见字段类型.mp4
│   ├── 🎬 19丨显式Mapping设置与常见参数介绍.mp4
│   ├── 🎬 20丨多字段特性及Mapping中配置自定义Analyzer.mp4
│   ├── 🎬 21丨IndexTemplate和DynamicTemplate.mp4
│   ├── 🎬 22丨Elasticsearch聚合分析简介.mp4
│   ├── 🎬 23丨第一部分总结.mp4
│   ├── 🎬 24丨基于词项和基于全文的搜索.mp4
│   ├── 🎬 25丨结构化搜索.mp4
│   ├── 🎬 26丨搜索的相关性算分.mp4
│   ├── 🎬 27丨Query&Filtering与多字符串多字段查询.mp4
│   ├── 🎬 28丨单字符串多字段查询:DisMaxQuery.mp4
│   ├── 🎬 29丨单字符串多字段查询:MultiMatch.mp4
│   ├── 🎬 30丨多语言及中文分词与检索.mp4
│   ├── 🎬 31丨Space Jam,一次全文搜索的实例.mp4
│   ├── 🎬 32丨使用Search Template和Index Alias查询.mp4
│   ├── 🎬 33丨综合排序:Function Score Query优化算分.mp4
│   ├── 🎬 34丨Term&Phrase Suggester.mp4
│   ├── 🎬 35丨自动补全与基于上下文的提示.mp4
│   ├── 🎬 36丨配置跨集群搜索.mp4
│   ├── 🎬 37丨集群分布式模型及选主与脑裂问题.mp4
│   ├── 🎬 38丨分片与集群的故障转移.mp4
│   ├── 🎬 39丨文档分布式存储.mp4
│   ├── 🎬 40丨分片及其生命周期.mp4
│   ├── 🎬 41丨剖析分布式查询及相关性算分.mp4
│   ├── 🎬 42丨排序及DocValues&Fielddata.mp4
│   ├── 🎬 43丨分页与遍历:From,Size,SearchAfter&ScrollAPI.mp4
│   ├── 🎬 44丨处理并发读写操作.mp4
│   ├── 🎬 45丨Bucket&Metric聚合分析及嵌套聚合.mp4
│   ├── 🎬 46丨Pipeline聚合分析.mp4
│   ├── 🎬 47丨作用范围与排序.mp4
│   ├── 🎬 48丨聚合分析的原理及精准度问题.mp4
│   ├── 🎬 49丨对象及Nested对象.mp4
│   ├── 🎬 50丨文档的父子关系.mp4
│   ├── 🎬 51丨UpdateByQuery&ReindexAPI.mp4
│   ├── 🎬 52丨IngestPipeline&PainlessScript.mp4
│   ├── 🎬 53丨Elasticsearch数据建模实例.mp4
│   ├── 🎬 54丨Elasticsearch数据建模最佳实践.mp4
│   ├── 🎬 55丨第二部分总结回顾.mp4
│   ├── 🎬 56丨集群身份认证与用户鉴权.mp4
│   ├── 🎬 57丨集群内部安全通信.avi
│   ├── 🎬 58丨集群与外部间的安全通信.mp4
│   ├── 🎬 59丨常见的集群部署方式.mp4
│   ├── 🎬 60丨Hot & Warm架构与Shard Filtering.mp4
│   ├── 🎬 61丨分片设计及管理.mp4
│   ├── 🎬 62丨如何对集群进行容量规划.mp4
│   ├── 🎬 63丨在私有云上管理Elasticsearch集群的一些方法.mp4
│   ├── 🎬 64丨在公有云上管理与部署Elasticsearch集群.mp4
│   ├── 🎬 65丨生产环境常用配置与上线清单.mp4
│   ├── 🎬 66丨监控Elasticsearch集群.mp4
│   ├── 🎬 67丨诊断集群的潜在问题.mp4
│   ├── 🎬 68丨解决集群Yellow与Red的问题.mp4
│   ├── 🎬 69丨提升集群写性能.mp4
│   ├── 🎬 70丨提升进群读性能.mp4
│   ├── 🎬 71丨集群压力测试.mp4
│   ├── 🎬 72丨段合并优化及注意事项.mp4
│   ├── 🎬 73丨缓存及使用Breaker限制内存使用.mp4
│   ├── 🎬 74丨一些运维的相关建议.MP4
│   ├── 🎬 75丨使用Shrink与Rollover API有效管理时间序列索引.MP4
│   ├── 🎬 76丨索引全生命周期管理及工具介绍.mp4
│   ├── 🎬 77丨Logstash入门及架构介绍.MP4
│   ├── 🎬 78丨利用JDBC插件导入数据到Elasticsearch.MP4
│   ├── 🎬 79丨Beats介绍.MP4
│   ├── 🎬 80丨使用Index Pattern配置数据.MP4
│   ├── 🎬 81丨使用Kibana Discover探索数据.MP4
│   ├── 🎬 82丨基本可视化组件介绍.MP4
│   ├── 🎬 83丨构建Dashboard.MP4
│   ├── 🎬 84丨用Monitoring和Alerting监控Elasticsearch集群.mp4
│   ├── 🎬 85丨用APM进行程序性能监控.MP4
│   ├── 🎬 86丨用机器学习实现时序数据的异常检测(上).MP4
│   ├── 🎬 87丨用机器学习实现时序数据的异常检测(下).MP4
│   ├── 🎬 88丨用ELK进行日志管理.MP4
│   ├── 🎬 89丨用Canvas做数据演示.MP4
│   ├── 🎬 90丨项目需求分析及架构设计.mp4
│   ├── 🎬 91丨将电影数据导入Elasticsearch.mp4
│   ├── 🎬 92丨搭建你的电影搜索服务.mp4
│   ├── 🎬 93丨需求分析及架构设计.mp4
│   ├── 🎬 94丨数据Extract & Enrichment.mp4
│   ├── 🎬 95丨构建Insights Dashboard.mp4
│   ├── 🎬 96丨Elastic认证介绍.mp4
│   ├── 🎬 97丨考点梳理.mp4
│   ├── 🎬 98丨集群数据备份.mp4
│   ├── 🎬 99丨基于Java和Elasticseach构建应用.mp4
│   ├── 🖼️ 干货工具箱priceeasy.png
│   └── 🎬 结束语.mp4
├── 📁 【极客时间-100036701】Netty 源码剖析与实战
│   ├── 🎬 01丨课程介绍.mp4
│   ├── 🎬 02丨内容综述.mp4
│   ├── 🎬 03丨揭开Netty面纱.mp4
│   ├── 🎬 04丨为什么舍近求远:不直接用JDKNIO?.mp4
│   ├── 🎬 05丨为什么孤注一掷:独选Netty?.mp4
│   ├── 🎬 06丨Netty的前尘往事.mp4
│   ├── 🎬 07丨Netty的现状与趋势.mp4
│   ├── 🎬 08丨Netty怎么切换三种I-O模式?.mp4
│   ├── 🎬 09丨源码剖析:Netty对I-O模式的支持.mp4
│   ├── 🎬 10丨Netty如何支持三种Reactor?.mp4
│   ├── 🎬 11丨源码剖析:Netty对Reactor的支持.mp4
│   ├── 🎬 12丨TCP粘包-半包Netty全搞定.mp4
│   ├── 🎬 13丨源码剖析:Netty对处理粘包-半包的支持.mp4
│   ├── 🎬 14丨常用的“二次”编解码方式.mp4
│   ├── 🎬 15丨源码剖析:Netty对常用编解码的支持.mp4
│   ├── 🎬 16丨keepalive与idle监测.mp4
│   ├── 🎬 17丨源码剖析:Netty对keepalive与idle监测的支持.mp4
│   ├── 🎬 18丨Netty的那些“锁”事.mp4
│   ├── 🎬 19丨Netty如何玩转内存使用.mp4
│   ├── 🎬 20丨源码解析:Netty对堆外内存和内存池的支持.mp4
│   ├── 🎬 21丨Netty代码编译与总览.mp4
│   ├── 🎬 22丨源码剖析:启动服务.mp4
│   ├── 🎬 23丨源码剖析:构建连接.mp4
│   ├── 🎬 24丨源码剖析:接收数据.mp4
│   ├── 🎬 25丨源码剖析:业务处理.mp4
│   ├── 🎬 26丨源码剖析:发送数据.mp4
│   ├── 🎬 27丨源码剖析:断开连接.mp4
│   ├── 🎬 28丨源码剖析:关闭服务.mp4
│   ├── 🎬 29丨遍写网络应用程序的基本步骤.mp4
│   ├── 🎬 30丨案例介绍和数据结构设计.mp4
│   ├── 🎬 31丨实现服务器端编解码.mp4
│   ├── 🎬 32丨实现一个服务器端.mp4
│   ├── 🎬 33丨实现客户端编解码.mp4
│   ├── 🎬 34丨完成一个客户端雏形.mp4
│   ├── 🎬 35丨引入响应分发完善客户端.mp4
│   ├── 🎬 36丨Netty编码中易错点解析.mp4
│   ├── 🎬 37丨调优参数:调整System参数夯实基础.mp4
│   ├── 🎬 38丨调优参数:权衡Netty核心参数.mp4
│   ├── 🎬 39丨调优参数:图解费脑的三个参数.mp4
│   ├── 🎬 40丨跟踪诊断:如何让应用易诊断?.mp4
│   ├── 🎬 41丨跟踪诊断:应用能可视,心理才有底.mp4
│   ├── 🎬 42丨跟踪诊断:让应用内存不“泄露”?.mp4
│   ├── 🎬 43丨优化使用:用好自带注解省点心.mp4
│   ├── 🎬 44丨优化使用:“整改”线程模型让响应健步如飞.mp4
│   ├── 🎬 45丨优化使用:增强写,延迟与吞吐量的抉择.mp4
│   ├── 🎬 46丨优化使用:如何让应用丝般“平滑”?.mp4
│   ├── 🎬 47丨优化使用:为不同平台开启native.mp4
│   ├── 🎬 48丨安全增强:设置“高低水位线”等保护好自己.mp4
│   ├── 🎬 49丨安全增强:启用空闲监测.mp4
│   ├── 🎬 50丨安全增强:简单有效的黑白名单.mp4
│   ├── 🎬 51丨安全增强:少不了的自定义授权.mp4
│   ├── 🎬 52丨安全增强:拿来即用的SSL-对话呈现表象.mp4
│   ├── 🎬 53丨安全增强:拿来即用的SSL-抓包暴露本质.mp4
│   ├── 🎬 54丨安全增强:拿来即用的SSL-轻松融入案例.mp4
│   ├── 🎬 55丨Cassandra如何使用Netty?.mp4
│   ├── 🎬 56丨Dubbo如何使用Netty?.mp4
│   ├── 🎬 57丨Hadoop如何使用Netty?.mp4
│   ├── 🎬 58丨赏析Netty之美.mp4
│   ├── 🎬 59丨如何给Netty贡献代码?.mp4
│   ├── 🎬 60丨课程回顾与总结.mp4
│   └── 🖼️ 干货工具箱priceeasy.png
├── 📁 【极客时间-100044201】Electron 开发实战
│   ├── 📁 第01章:Electron基础篇 (12讲)
│   │   ├── 🎬 01丨课程介绍.mp4
│   │   ├── 🎬 02丨内容综述:学完这门课程你能得到什么?.mp4
│   │   ├── 🎬 03丨Electron介绍:为什么Electron这么火?.mp4
│   │   ├── 🎬 04丨揭秘Electron架构原理:Chromium + Node-js是如何一起工作?.mp4
│   │   ├── 🎬 05丨桌面端技术选型:如何选择合适的桌面端技术?.mp4
│   │   ├── 🎬 06丨Electron开发准备:环境搭建及前期准备.mp4
│   │   ├── 🎬 07丨第一个Electron应用:开发一个简单版的番茄钟(上).mp4
│   │   ├── 🎬 08丨第一个Electron应用:开发一个简单版的番茄钟(下).mp4
│   │   ├── 🎬 09丨与Web开发不同(一):主进程与渲染进程.mp4
│   │   ├── 🎬 10丨与Web开发不同(二):进程间通信.mp4
│   │   ├── 🎬 11丨与Web开发不同(三):Native能力及原生GUI.mp4
│   │   └── 🎬 12丨与Web开发不同(四): 释放前端想象力,基于Electron能做什么?.mp4
│   ├── 📁 第02章:实战篇 - 远程控制软件 (13讲)
│   │   ├── 🎬 13丨实战项目综述:整体需求分析.mp4
│   │   ├── 🎬 14丨设计思路:做远程控制有几步?.mp4
│   │   ├── 🎬 15丨项目架构与基础业务:Electron 与 React 框架结合.mp4
│   │   ├── 🎬 16丨主页面基础业务:Real World IPC.mp4
│   │   ├── 🎬 17丨傀儡端实现(一):基于Electron能力捕获桌面视频流.mp4
│   │   ├── 🎬 18丨傀儡端实现(二):如何接收&响应指令?.mp4
│   │   ├── 🎬 19丨傀儡端实现(三):基于WebRTC传输视频流(上).mp4
│   │   ├── 🎬 20丨傀儡端实现(四):基于WebRTC传输视频流(下).mp4
│   │   ├── 🎬 21丨信令服务:如何连接两端(上).mp4
│   │   ├── 🎬 22丨信令服务:如何连接两端(下).mp4
│   │   ├── 🎬 23丨指令传输实现:如何建立数据传输?.mp4
│   │   ├── 🎬 24丨项目完善与总结(上):App特性.mp4
│   │   └── 🎬 25丨项目完善与总结(下):原生GUI.mp4
│   ├── 📁 第03章:Electron 工程篇 (10讲)
│   │   ├── 🎬 26丨Electron 应用打包:从HTML到安装包.mp4
│   │   ├── 🎬 27丨Electron 应用更新(一):软件更新的痛点.mp4
│   │   ├── 🎬 28丨Electron 应用更新(二):线上项目如何更新?.mp4
│   │   ├── 🎬 29丨Electron 质量监控:桌面端的质量抓手是什么?.mp4
│   │   ├── 🎬 30丨使用原生能力:如何集成C++能力?.mp4
│   │   ├── 🎬 31丨Electron 自动化测试:如何编写端到端测试?.mp4
│   │   ├── 🎬 32丨Electron体验优化:如何优化白屏问题?.mp4
│   │   ├── 🎬 33丨Electron客户端的安全:从XSS到RCE.mp4
│   │   ├── 🎬 34丨Electron bad parts:辩证看待Electron技术.mp4
│   │   └── 🎬 35丨结束语.mp4
│   └── 🖼️ 干货工具箱priceeasy.png
├── 📁 【极客时间-100051101】分布式缓存高手课
│   ├── 🎬 01丨课程介绍.mp4
│   ├── 🎬 02丨内容综述.mp4
│   ├── 🎬 03丨场景:缓存可以用于解决哪些问题?.mp4
│   ├── 🎬 04丨使用演进(一):从单体架构看缓存.mp4
│   ├── 🎬 05丨使用演进(二):从集群架构看缓存.mp4
│   ├── 🎬 06丨使用演进(三):从微服务架构看缓存.mp4
│   ├── 🎬 07丨缓存分类(一):客户端缓存的分类和介绍.mp4
│   ├── 🎬 08丨缓存分类(二):服务端缓存的分类和介绍.mp4
│   ├── 🎬 09丨缓存规范:跟我一起来解读 JSR107 缓存定义规范.mp4
│   ├── 🎬 10丨客户端缓存选型:Ehcache、GuavaCache、SpringCache的区别与技术选型.mp4
│   ├── 🎬 11丨Ehcache:常见用法的代码演示.mp4
│   ├── 🎬 12丨Ehcache:深⼊介绍Ehcache的原理.mp4
│   ├── 🎬 13丨GuavaCache:深⼊介绍GuavaCache的原理.mp4
│   ├── 🎬 14丨GuavaCache:代码演示.mp4
│   ├── 🎬 15丨SpringCache:深⼊介绍SpringCache的原理与实现.mp4
│   ├── 🎬 16丨框架整合:SpringCache如何与Ehcache框架整合.mp4
│   ├── 🎬 17丨服务端缓存选型:Redis、Memcached的区别与技术选型.mp4
│   ├── 🎬 18丨Redis(一):Redis与Reactor模式两者有什么关系.mp4
│   ├── 🎬 19丨Redis(二):以小例子方式解读常用命令的用法.mp4
│   ├── 🎬 20丨Redis(三):Redis的分片、集群用法.mp4
│   ├── 🎬 21丨Redis(四):Redis的线程模型究竟是什么样的?.mp4
│   ├── 🎬 22丨Redis(五):Redis6.0多线程模型解读.mp4
│   ├── 🎬 23丨Redis(六):以小例子方式解读常用命令的用法.mp4
│   ├── 🎬 24丨Memcached(一):Memcached的多线程模型.mp4
│   ├── 🎬 25丨Memcached(二):Memcached的常⽤命令解读.mp4
│   ├── 🎬 26丨Memcached(三):分布式Memcached探险揭秘及课后练习.mp4
│   ├── 🎬 27丨课后练习解答.mp4
│   ├── 🎬 28丨缓存穿透:发⽣场景和常⻅的破解招数.mp4
│   ├── 🎬 29丨缓存雪崩:发生场景和常见的破解招数.mp4
│   ├── 🎬 30丨缓存一致性(一):多级缓存与数据库之间的⼀致性怎么保证.mp4
│   ├── 🎬 31丨缓存一致性(二):Ehcache和Redis如何搭配来实现缓存的最终一致性.mp4
│   ├── 🎬 32丨在MyBatis下:缓存究竟是怎么玩的?.mp4
│   ├── 🎬 33丨实时排行榜:如何使用缓存来实现?.mp4
│   ├── 🎬 34丨分布式并发锁(一):利用Redis来自己实现.mp4
│   ├── 🎬 35丨分布式并发锁(二):利用RedLock实现分布式并发锁以及常见的坑.mp4
│   ├── 🎬 36丨分布式并发锁(三):利用缓存能不能做分布式锁,有哪些坑?.mp4
│   ├── 🎬 37丨Session共享:如何利用缓存来实现?.mp4
│   ├── 🎬 38丨多机房:缓存在多机房场景下如何应用?.mp4
│   ├── 🎬 39丨自己实现缓存(一):⾃己动⼿实现缓存框架的设计思路和知识点详解.mp4
│   ├── 🎬 40丨自己实现缓存(二):⾃己动⼿实现缓存框架的示例代码讲解.mp4
│   ├── 🎬 41丨微服务统一配置中心(一):架构介绍.mp4
│   ├── 🎬 42丨微服务统一配置中心(二):如何利用缓存来保存配置数据?.mp4
│   ├── 🎬 43丨秒杀案例(一):一个电商秒杀业务的架构介绍.mp4
│   ├── 🎬 44丨秒杀案例(二):秒杀是如何利用缓存来实现库存扣减的?.mp4
│   ├── 🎬 45丨支付案例(一):支付中台业务架构介绍.mp4
│   ├── 🎬 46丨秒杀案例(二):秒杀是如何利用缓存来实现库存扣减的?.mp4
│   ├── 🎬 47丨支付案例(一):支付中台业务架构介绍.mp4
│   ├── 🎬 48丨支付案例(二):基于Redis实现延时队列.mp4
│   ├── 🎬 49丨支付案例(三):付中台的通知中架构介绍.mp4
│   ├── 🎬 50丨支付案例(四):在高并发场景下如何使用缓存来保存配置数据?.mp4
│   ├── 🎬 51丨支付案例(五):通知中心是如何利用Redis来保存和发送通知信息的?.mp4
│   ├── 🎬 52丨课后练习.mp4
│   ├── 🎬 53丨课后练习解答.mp4
│   ├── 🎬 54丨结束语.mp4
│   └── 🖼️ 干货工具箱priceeasy.png
├── 📁 【极客时间-100053201】TensorFlow 2 项目进阶实战
│   ├── 🎬 01丨课程介绍:AI进阶需要落地实战.mp4
│   ├── 🎬 02丨内容综述:如何快速⾼效学习AI与TensorFlow2.mp4
│   ├── 🎬 03丨TensorFlow2新特性.mp4
│   ├── 🎬 04丨TensorFlow2核心模块.mp4
│   ├── 🎬 05丨TensorFlow2vsTensorFlow1.x.mp4
│   ├── 🎬 06丨TensorFlow2落地应⽤.mp4
│   ├── 🎬 07丨TensorFlow2开发环境搭建.mp4
│   ├── 🎬 08丨TensorFlow2数据导入与使⽤.mp4
│   ├── 🎬 09丨使用tf.keras.datasets加载数据.mp4
│   ├── 🎬 10丨使用tf.keras管理Sequential模型.mp4
│   ├── 🎬 11丨使用tf.keras管理functionalAPI.mp4
│   ├── 🎬 12丨FashionMNIST数据集介绍.mp4
│   ├── 🎬 13丨使用TensorFlow2训练分类网络.mp4
│   ├── 🎬 14丨行业背景:AI新零售是什么.mp4
│   ├── 🎬 15丨用户需求:线下门店业绩如何提升?.mp4
│   ├── 🎬 16丨长期⽬标:货架数字化与业务智能化.mp4
│   ├── 🎬 17丨短期目标:自动化陈列审核和促销管理.mp4
│   ├── 🎬 18丨方案设计:基于深度学习的检测.mp4
│   ├── 🎬 19丨方案交付:支持在线识别和API调用的AI SaaS 已学完.mp4
│   ├── 🎬 20丨基础:目标检测问题定义与说明.mp4
│   ├── 🎬 21丨基础:深度学习在目标检测中的应用.mp4
│   ├── 🎬 22丨理论R-CNN系列二阶段模型综述.mp4
│   ├── 🎬 23丨理论:YOLO系列一阶段模型概述.mp4
│   ├── 🎬 24丨应用:RetinaNet与FacolLoss带来了什么.mp4
│   ├── 🎬 25丨应用:检测数据标注方法与流程.mp4
│   ├── 🎬 26丨应用:划分检测训练集与测试集.mp4
│   ├── 🎬 27丨应用:生成CSV格式数据集与标注.mp4
│   ├── 🎬 28丨应用:使用TensorFlow2训练RetinaNet.mp4
│   ├── 🎬 29丨应用:使用RetinaNet检测货架商品.mp4
│   ├── 🎬 30丨扩展:目标检测常用数据集综述.mp4
│   ├── 🎬 31丨扩展:目标检测更多应用场景介绍.mp4
│   ├── 🎬 32丨基础:图像分类问题定义与说明.mp4
│   ├── 🎬 33丨基础:越来越深的图像分类网络.mp4
│   ├── 🎬 34丨应0:检测SKU抠图与分类标注流程.mp4
│   ├── 🎬 35丨应用:分类训练集与验证集划分.mp4
│   ├── 🎬 36丨应0:使4TensorFlow2训练ResNet.mp4
│   ├── 🎬 37丨应用:使用ResNet识别货架商品.mp4
│   ├── 🎬 38丨扩展:图像分类常用数据集综述.mp4
│   ├── 🎬 39丨扩展:图像分类更多应3场景介绍.mp4
│   ├── 🎬 40丨串联AI流程理论:商品检测与商品识别.mp4
│   ├── 🎬 41丨串联AI流程实战:商品检测与商品识别.mp4
│   ├── 🎬 42丨展现AI效果理论:使用OpenCV可视化识别结果.mp4
│   ├── 🎬 43丨展现AI效果实战:使用OpenCV可视化识别结果.mp4
│   ├── 🎬 44丨搭建AI SaaS理论:Web框架选型.mp4
│   ├── 🎬 45丨搭建AISaaS理论:数据库ORM选型.mp4
│   ├── 🎬 46丨搭建AISaaS理论:10分钟快速开发AISaaS.mp4
│   ├── 🎬 47丨搭建AISaaS实战:10分钟快速开发AISaaS.mp4
│   ├── 🎬 48丨交付AISaaS:10分钟快速掌握容器部署.mp4
│   ├── 🎬 49丨交付AISaaS:部署和测试AISaaS.mp4
│   ├── 🎬 50丨使TensorFlow2实现图像数据增强.mp4
│   ├── 🎬 51丨使TensorFlow2实现分布式训练.mp4
│   ├── 🎬 52丨使TensorFlowHub迁移学习.mp4
│   ├── 🎬 53丨使@tf.function提升性能.mp4
│   ├── 🎬 54丨使TensorFlowServing部署云端服务.mp4
│   ├── 🎬 55丨使TensorFlowLite实现边缘智能.mp4
│   ├── 🎬 56丨结束语.mp4
│   └── 🖼️ 干货工具箱priceeasy.png
├── 📁 【极客时间-100053601】分布式系统案例课
│   ├── 🎬 01丨课程介绍.mp4
│   ├── 🎬 02丨内容综述.mp4
│   ├── 🎬 03丨需求收集和总体架构设计.mp4
│   ├── 🎬 04丨存储设计.mp4
│   ├── 🎬 05丨计数服务设计(上).mp4
│   ├── 🎬 06丨计数服务设计(下).mp4
│   ├── 🎬 07丨查询服务设计.mp4
│   ├── 🎬 08丨技术栈选型.mp4
│   ├── 🎬 09丨进一步考量和总结.mp4
│   ├── 🎬 10丨PMQ 2.0项目背景.mp4
│   ├── 🎬 11丨PMQ 2.0的设计解析(上).mp4
│   ├── 🎬 12丨PMQ 2.0的设计解析(中).mp4
│   ├── 🎬 13丨PMQ 2.0的设计解析(下).mp4
│   ├── 🎬 14丨PMQ3.0的演进.mp4
│   ├── 🎬 15丨Kafka的动态重平衡是如何工作的?(上).mp4
│   ├── 🎬 16丨Kafka的动态重平衡是如何工作的?(下).mp4
│   ├── 🎬 17丨消息队列设计和治理最佳实践.mp4
│   ├── 🎬 20丨如何解决微服务的数据一致性分发问题?.mp4
│   ├── 🎬 21丨如何解决微服务的数据聚合Join问题?.mp4
│   ├── 🎬 22丨如何解决微服务的分布式事务问题?(上).mp4
│   ├── 🎬 23丨如何解决微服务的分布式事务问题?(下).mp4
│   ├── 🎬 24丨阿里分布式事务中间件Seata解析.mp4
│   ├── 🎬 25丨Uber微服务编排引擎Cadence解析.mp4
│   ├── 🎬 26丨如何理解UberCadence的架构设计?.mp4
│   ├── 🎬 28丨拍拍贷系统拆分项目案例.mp4
│   ├── 🎬 29丨CQRS-CDC技术在Netflix的实践.mp4
│   ├── 🎬 30丨本章总结.mp4
│   ├── 🎬 31丨SessionServer项目背景.mp4
│   ├── 🎬 32丨总体架构设计.mp4
│   ├── 🎬 33丨如何设计一个高性能基于内存的LRU Cache?.mp4
│   ├── 🎬 34丨如何设计一个高性能大容量持久化的ConcurrentHashmap?.mp4
│   ├── 🎬 35丨设计评估和总结.mp4
│   ├── 🎬 36丨SaaS项目healthchecks.io的背景和架构(上).mp4
│   ├── 🎬 37丨SaaS项目healthchecks.io的背景和架构(下).mp4
│   ├── 🎬 38丨如何设计一个轻量级的基于DB的延迟任务队列?.mp4
│   ├── 🎬 39丨如何设计一把轻量级的锁?.mp4
│   ├── 🎬 40丨如何设计一个分布式限流系统?.mp4
│   ├── 🎬 41丨如何设计一个分布式TopK系统实现实时防爬虫?.mp4
│   ├── 🎬 42丨第七章目标和大纲.mp4
│   ├── 🎬 43丨为什么说ServiceMesh是微服务的未来(上).mp4
│   ├── 🎬 44丨为什么说ServiceMesh是微服务的未来(下).mp4
│   ├── 🎬 45丨解析EnvoyProxy(上).mp4
│   ├── 🎬 46丨解析EnvoyProxy(下).mp4
│   ├── 🎬 47丨Envoy在Lyft的实践.mp4
│   ├── 🎬 48丨解析Istio.mp4
│   ├── 🎬 49丨K8sIngress、IstioGateway和APIGateway该如何选择?(上).mp4
│   ├── 🎬 50丨K8sIngress、IstioGateway和APIGateway该如何选择?(下).mp4
│   ├── 🎬 51丨SpringCloud、K8s和Istio该如何集成?.mp4
│   ├── 🎬 52丨第八章目标和大纲.mp4
│   ├── 🎬 53丨拍拍贷案例:大型网站架构是如何演进的?.mp4
│   ├── 🎬 54丨最小可用架构:MinimumViableArchitecture(上).mp4
│   ├── 🎬 55丨最小可用架构:MinimumViableArchitecture(下).mp4
│   ├── 🎬 56丨如何构建基于OAuth2JWT的微服务架构?(上).mp4
│   ├── 🎬 57丨如何构建基于OAuth2JWT的微服务架构?(下).mp4
│   ├── 🎬 58丨拍拍贷案例:如何实现数据中心机房的迁移?.mp4
│   ├── 🎬 59丨携程Netflix案例:如何实现同城双活和异地多活?.mp4
│   ├── 🎬 60丨第九章大纲.mp4
│   ├── 🎬 61丨学习开源项目的6个层次和8种方法(上).mp4
│   ├── 🎬 62丨学习开源项目的6个层次和8种方法(中).mp4
│   ├── 🎬 63丨学习开源项目的6个层次和8种方法(下).mp4
│   ├── 🎬 64丨百万年薪架构师是如何炼成的?.mp4
│   ├── 🎬 65丨解读一份大厂的研发岗职级体系.mp4
│   ├── 🎬 66丨结课测试&结束语.mp4
│   └── 🖼️ 干货工具箱priceeasy.png
├── 📁 【极客时间-100055601】Selenium自动化测试实战
│   ├── 🎬 01丨课程介绍.mp4
│   ├── 🎬 02丨内容综述.mp4
│   ├── 🎬 03丨聊聊Web自动化测试:黑盒、白盒、α测试、β测试、冒烟测试、回归测试.mp4
│   ├── 🎬 04丨Selenium三剑客:WebDriver、IDE、Grid一网打尽.mp4
│   ├── 🎬 05丨Selenium开发环境搭建.mp4
│   ├── 🎬 06丨下载安装浏览器驱动:教你解决最麻烦的版本匹配问题.mp4
│   ├── 🎬 07丨第一个Selenium测试:Selenium测试流程、源码分析.mp4
│   ├── 🎬 08丨实现元素定位:掌握Selenium八大定位方法.mp4
│   ├── 🎬 09丨通过打车生活案例,深入剖析WebDriver运行原理.mp4
│   ├── 🎬 10丨掌握WebDriver核心方法和属性的使用.mp4
│   ├── 🎬 11丨掌握WebElement核心方法和属性的使用.mp4
│   ├── 🎬 12丨form表单:熟练掌握form表单操作步骤.mp4
│   ├── 🎬 13丨掌握checkbox和radiobutton的定位技巧.mp4
│   ├── 🎬 14丨下拉列表:熟练使用Select类,来实现下拉列表定位.mp4
│   ├── 🎬 15丨弹框处理:掌握alert、confirm、prompt三种弹出的用法.mp4
│   ├── 🎬 16丨Selenium三种等待方式:剖析原理、用法和应用场景.mp4
│   ├── 🎬 17丨Selenium等待条件:掌握17种元素等待条件.mp4
│   ├── 🎬 18丨掌握鼠标单击、双击、右击,键盘输入、键盘组合键的应用.mp4
│   ├── 🎬 19丨熟练执行JavaScript的方法和技巧,掌握JavaScript操作滚动条.mp4
│   ├── 🎬 20丨Selenium屏幕截图:实现屏幕截屏、按照日期时间格式保存图片.mp4
│   ├── 🎬 21丨掌握frame、iframe定位,熟练frame的切入和切出.mp4
│   ├── 🎬 22丨下载安装Selenium IDE:下载安装Chrome、Firefox插件IDE.mp4
│   ├── 🎬 23丨熟练Selenium IDE菜单栏、工具类、命令窗口的使用.mp4
│   ├── 🎬 24丨Selenium IDE实现录制和回放及脚本导出.mp4
│   ├── 🎬 25丨项目环境搭建:安装JDK、MySQL、Tomcat和测试系统.mp4
│   ├── 🎬 26丨需求分析和用例设计:深度挖掘需求,掌握测试用例设计范式.mp4
│   ├── 🎬 27丨项目架构设计:掌握分层设计思想,合理设计目录和包结构.mp4
│   ├── 🎬 28丨解决验证码问题-方案一:使用pytesseract和Pillow实现验证码识别.mp4
│   ├── 🎬 29丨解决验证码问题-方案二:通过第三方AI库识别验证码.mp4
│   ├── 🎬 30丨实现工具类:设计获得验证码、随机字符串生成、cookie操作工具类.mp4
│   ├── 🎬 31丨完成用户注册测试用例:解决验证码、等待弹框等复杂内容.mp4
│   ├── 🎬 32丨完成用户登录测试用例:实现登录成功和失败测试.mp4
│   ├── 🎬 33丨完成管理员登录测试用例:完成验证码正确和错误测试用例.mp4
│   ├── 🎬 34丨完成文章分类测试用例:解决测试用例依赖问题.mp4
│   ├── 🎬 35丨完成添加、删除文章测试用例.mp4
│   ├── 🎬 36丨unittest简介:测试用例、测试套件、测试运行器、测试加载器.mp4
│   ├── 🎬 37丨unittest中的方法:掌握各种setup、teardown和断言方法.mp4
│   ├── 🎬 38丨测试用例、测试套件和测试加载器:掌握加载测试用例的四种方法.mp4
│   ├── 🎬 39丨使用unittest重构测试用例:掌握使用unittest模块的方法和技巧.mp4
│   ├── 🎬 40丨为项目添加测试报告:使用第三方模块实现测试报告.mp4
│   ├── 🎬 41丨pytest框架简介:pytest安装、用例编写规则、执行用例.mp4
│   ├── 🎬 42丨pytest标记:查找测试策略、标记测试函数.mp4
│   ├── 🎬 43丨pytest参数化处理:使用参数化装饰器、解析列表、元组、字典等数据.mp4
│   ├── 🎬 44丨pytest Fixture:使用fixture实现用例之间的调用.mp4
│   ├── 🎬 45丨pytest setup 和 teardown.mp4
│   ├── 🎬 46丨pytest allure生成测试报告.mp4
│   ├── 🎬 47丨使用pytest重构项目:实现用例依赖、测试报告、数据参数化.mp4
│   ├── 🎬 48丨logging模块简介:日志的作用、等级和常用函数.mp4
│   ├── 🎬 49丨logging日志格式输出:日志发生的时间、文件、模块、行号等信息格式输出.mp4
│   ├── 🎬 50丨logging模块四大组件:Logger、Handler、Formatter、Filter的用法.mp4
│   ├── 🎬 51丨为项目添加日志:将日志应用到项目.mp4
│   ├── 🎬 52丨使用csv模块读取CSV文件,使用pytest参数化实现DDT.mp4
│   ├── 🎬 53丨使用json模块读取json文件,使用pytest参数化实现DDT.mp4
│   ├── 🎬 54丨使用xlrd模块读取excel文件,使用pytest参数化实现DDT.mp4
│   ├── 🎬 55丨Selenium读取数据库数据:将数据保存到数据库,实现数据驱动的测试.mp4
│   ├── 🎬 56丨Selenium DDT:使用DDT模块实现数据驱动的测试.mp4
│   ├── 🎬 57丨使用DDT思想重构项目:使用数据库保存数据,将数据驱动思想应用到项目.mp4
│   ├── 🎬 58丨POM设计模式简介:理解页面-对象-模型设计模式,实现代码的松耦合.mp4
│   ├── 🎬 59丨设计BasePage类:设计基类,提高项目的代码重用性.mp4
│   ├── 🎬 60丨设计项目页面对应的PO类:使用POM设计模式设计PO类.mp4
│   ├── 🎬 61丨设计项目测试用例:将POM设计模式应用到项目.mp4
│   ├── 🎬 62丨Selenium Grid下载安装:配置Java运行环境,下载安装Selenium Grid.mp4
│   ├── 🎬 63丨Selenium注册node节点.mp4
│   ├── 🎬 64丨使用Selenium执行远程测试.mp4
│   ├── 🎬 65丨Jenkins环境搭建:下载安装Jenkins.mp4
│   ├── 🎬 66丨在Jenkins中运行项目.mp4
│   ├── 🎬 67丨邮件通知:实现邮件通知功能.mp4
│   ├── 🎬 68丨定时运行项目,实现真正的自动化测试.mp4
│   ├── 🎬 69丨结课测试&结束语.mp4
│   └── 🖼️ 干货工具箱priceeasy.png
├── 📁 【极客时间-100056601】Pandas 数据分析实战
│   ├── 🎬 01  课程介绍02丨第一章学习目标.mp4
│   ├── 🎬 03丨为什么使用Python和Pandas进行数据分析.mp4
│   ├── 🎬 04丨安装Python的两种主要方式.mp4
│   ├── 🎬 05丨运行Python的几种主要方式06丨第二章学习目标.mp4
│   ├── 🎬 07  加载你的第一个数据集08丨查看数据集行和列的一些基本操作.mp4
│   ├── 🎬 09丨对数据集做一些简单的数据分析.mp4
│   ├── 🎬 10丨第三章学习目标11丨创建Series和DataFrame.mp4
│   ├── 🎬 12丨pandas.Series的基本操作.mp4
│   ├── 🎬 13丨pandas.DataFrame的基本操作.mp4
│   ├── 🎬 14丨导入和导出数据.mp4
│   ├── 🎬 15丨第四章学习目标16丨理解数据可视化的重要性.mp4
│   ├── 🎬 17丨在Matplotlib中创建基本图形.mp4
│   ├── 🎬 18丨在Seaborn中创建基本图形.mp4
│   ├── 🎬 19丨如何使用Pandas来绘图.mp4
│   ├── 🎬 20丨第五章学习目标.mp4
│   ├── 🎬 21丨数据拼接.mp4
│   ├── 🎬 22丨去标准化.mp4
│   ├── 🎬 23丨第六章学习目标24丨理解NaN值的概念25丨如何处理缺失的数据.mp4
│   ├── 🎬 26-33.mp4
│   └── 🖼️ 干货工具箱priceeasy.png
├── 📁 【极客时间-100058801】Flink 核心技术与实战
│   ├── 🎬 01丨课程介绍.mp4
│   ├── 🎬 02丨内容综述.mp4
│   ├── 🎬 03丨流处理技术概览.mp4
│   ├── 🎬 04丨Flink发展历史与应用场景.mp4
│   ├── 🎬 05丨Flink核心特性.mp4
│   ├── 🎬 06丨Flink集群架构.mp4
│   ├── 🎬 07丨Flink集群运行模式.mp4
│   ├── 🎬 08丨Flink集群资源管理器支持.mp4
│   ├── 🎬 09丨Standalone原理讲解与实操演示.mp4
│   ├── 🎬 10丨Flink On Yarn部署讲解.mp4
│   ├── 🎬 11丨Flink On Yarn实操演示.mp4
│   ├── 🎬 12丨Flink On Kubernetes部署讲解.mp4
│   ├── 🎬 13丨Flink On Kubernetes实操-Session模式.mp4
│   ├── 🎬 14丨Flink On Kubernetes实操-Per-Job模式.mp4
│   ├── 🎬 15丨Flink On Kubernetes Native部署讲解.mp4
│   ├── 🎬 16丨Flink On Kubernetes Native实操演示.mp4
│   ├── 🎬 17丨Flink高可用配置原理讲解.mp4
│   ├── 🎬 18丨Flink高可用配置实操演示.mp4
│   ├── 🎬 19丨分布式流处理模型.mp4
│   ├── 🎬 20丨DataStream API 实践原理.mp4
│   ├── 🎬 21丨Flink 时间概念.mp4
│   ├── 🎬 22丨Watermark实践原理.mp4
│   ├── 🎬 23丨Watermark与Window的关系.mp4
│   ├── 🎬 24丨Watermark Generator.mp4
│   ├── 🎬 25丨Windows窗口计算.mp4
│   ├── 🎬 26丨Window Assigner.mp4
│   ├── 🎬 27丨Window Trigger.mp4
│   ├── 🎬 28丨Window Evictors.mp4
│   ├── 🎬 29丨Window Function.mp4
│   ├── 🎬 30丨Windows多流合并.mp4
│   ├── 🎬 31丨Process Function应用.mp4
│   ├── 🎬 32丨SideOutput旁路输出.mp4
│   ├── 🎬 33丨Asynchronous IO异步操作.mp4
│   ├── 🎬 34丨Pipeline与StreamGraph转换.mp4
│   ├── 🎬 35丨Flink类型系统.mp4
│   ├── 🎬 36丨自定义SourceFunction.mp4
│   ├── 🎬 37丨项目实战:基于DataStream API实现PV,UV统计.mp4
│   ├── 🎬 38丨有状态计算概念.mp4
│   ├── 🎬 39丨状态类型及应用.mp4
│   ├── 🎬 40丨KeyedState介绍与使用.mp4
│   ├── 🎬 41丨OperatorState介绍与使用.mp4
│   ├── 🎬 42丨BroadcastState介绍与使用.mp4
│   ├── 🎬 43丨Checkpoint实现原理.mp4
│   ├── 🎬 44丨Savepoint与Checkpoint.mp4
│   ├── 🎬 45丨StateBackends状态管理器.mp4
│   ├── 🎬 46丨State Schema Evolution.mp4
│   ├── 🎬 47丨State序列化与反序列化.mp4
│   ├── 🎬 48丨Querable State介绍与使用.mp4
│   ├── 🎬 49丨项目实战:实时交易反欺诈项目介绍.mp4
│   ├── 🎬 50丨项目实战:实时交易反欺诈项目演示.mp4
│   ├── 🎬 51丨FlinkTableAPI-SQL介绍与使用.mp4
│   ├── 🎬 52丨TableAPI-SQL核心概念.mp4
│   ├── 🎬 53丨DataStream&DataSet与Table相互转换.mp4
│   ├── 🎬 54丨TableConnector介绍与使用.mp4
│   ├── 🎬 55丨QueryingDynamicTables.mp4
│   ├── 🎬 56丨TimeStamp与Watermark时间属性定义.mp4
│   ├── 🎬 57丨QueryWithTemporalCondition.mp4
│   ├── 🎬 58丨JoinWithDynamicTable.mp4
│   ├── 🎬 59丨JoinWithTemporalFunction.mp4
│   ├── 🎬 60丨JoinWithTemporalTables.mp4
│   ├── 🎬 61丨Catalog原理与使用.mp4
│   ├── 🎬 62丨ApacheHive集成.mp4
│   ├── 🎬 63丨SQLClient介绍与使用.mp4
│   ├── 🎬 64丨FlinkSQLTable数据类型.mp4
│   ├── 🎬 65丨自定义Function.mp4
│   ├── 🎬 66丨TableConnector使用.mp4
│   ├── 🎬 67丨自定义Connector.mp4
│   ├── 🎬 68丨newtablesource&tablesinkapi.mp4
│   ├── 🎬 69丨项目实战:基于FlinkSQL实现Top10商品统计.mp4
│   ├── 🎬 70丨Runtime整体架构.mp4
│   ├── 🎬 71丨FlinkClient实现原理.mp4
│   ├── 🎬 72丨ResourceManager资源管理.mp4
│   ├── 🎬 73丨Dispatcher任务分发器.mp4
│   ├── 🎬 74丨JobGraph提交与运行(上).mp4
│   ├── 🎬 75丨JobGraph提交与运行(下).mp4
│   ├── 🎬 76丨Task执行与调度.mp4
│   ├── 🎬 77丨Task重启和容错策略.mp4
│   ├── 🎬 78丨集群组件Rpc通信机制.mp4
│   ├── 🎬 79丨NetworkStatck实现原理.mp4
│   ├── 🎬 80丨Flink内存管理.mp4
│   ├── 🎬 81丨Metric指标分类与采集.mp4
│   ├── 🎬 82丨Flink RestAPI介绍与使用.mp4
│   ├── 🎬 83丨Checkpoint监控与调优.mp4
│   ├── 🎬 84丨反压监控与原理.mp4
│   ├── 🎬 85丨Flink内存配置与调优.mp4
│   ├── 🎬 86丨PyFlink实践与应用.mp4
│   ├── 🎬 87丨Flink复杂事件处理:Complex event process.mp4
│   ├── 🎬 88丨Alink机器学习框架介绍与使用.mp4
│   ├── 🎬 89丨Stateful Function介绍与使用.mp4
│   ├── 🎬 90丨实时推荐系统项目设计与实现.mp4
│   ├── 🎬 91丨结束语.mp4
│   └── 🖼️ 干货工具箱priceeasy.png
├── 📁 【极客时间-100060601】张汉东的 Rust 实战课
│   ├── 🎬 01丨课程介绍.mp4
│   ├── 🎬 02丨内容综述.mp4
│   ├── 🎬 03丨Rust语言学习观.mp4
│   ├── 🎬 04丨Rust语言概览.mp4
│   ├── 🎬 05丨语法面面观:词法结构.mp4
│   ├── 🎬 06丨语法面面观:面向表达式(上).mp4
│   ├── 🎬 07丨语法面面观:面向表达式(中).mp4
│   ├── 🎬 08丨语法面面观:面向表达式(下).mp4
│   ├── 🎬 09丨语法面面观:数据类型 (上).mp4
│   ├── 🎬 10丨语法面面观:数据类型 (下).mp4
│   ├── 🎬 11丨语法面面观:函数与闭包(上).mp4
│   ├── 🎬 12丨语法面面观:函数与闭包(中).mp4
│   ├── 🎬 13丨语法面面观:函数与闭包(下).mp4
│   ├── 🎬 14丨语法面面观:模式匹配.mp4
│   ├── 🎬 15丨语法面面观:智能指针(上).mp4
│   ├── 🎬 16丨语法面面观:智能指针(下).mp4
│   ├── 🎬 17丨语法面面观:字符与字符串(上).mp4
│   ├── 🎬 18丨语法面面观:字符与字符串(下).mp4
│   ├── 🎬 19丨语法面面观:集合容器(上).mp4
│   ├── 🎬 20丨语法面面观:集合容器(下).mp4
│   ├── 🎬 21丨语法面面观:迭代器(上).mp4
│   ├── 🎬 22丨语法面面观:迭代器(下).mp4
│   ├── 🎬 23丨Rust语法面面观:模块.mp4
│   ├── 🎬 24丨Rust语法面面观:Cargo包管理器(上).mp4
│   ├── 🎬 25丨Rust语法面面观:Cargo包管理器(下).mp4
│   ├── 🎬 26丨语法面面观:实际项目的组织结构(上).mp4
│   ├── 🎬 27丨语法面面观:实际项目的组织结构(下).mp4
│   ├── 🎬 28丨语法面面观:定义自己的Crate(上).mp4
│   ├── 🎬 29丨语法面面观:定义自己的Crate(中).mp4
│   ├── 🎬 30丨语法面面观:定义自己的Crate(下).mp4
│   ├── 🎬 31丨作业&第二章预告.mp4
│   ├── 🎬 32丨本章内容介绍:Rust语言架构.mp4
│   ├── 🎬 33丨所有权:内存管理基础知识.mp4
│   ├── 🎬 34丨所有权:安全管理之内存安全.mp4
│   ├── 🎬 35丨所有权:Copy语义和Copytrait.mp4
│   ├── 🎬 36丨所有权:深入理解Copy行为.mp4
│   ├── 🎬 37丨所有权:深入理解Move语义.mp4
│   ├── 🎬 38丨所有权:Move与析构.mp4
│   ├── 🎬 39丨借用检查: 完全理解Scope和NLL.mp4
│   ├── 🎬 40丨借用检查: 深入理解生命周期和生命周期参数.mp4
│   ├── 🎬 41丨借用检查: 深入理解生命周期参数Early bound.mp4
│   ├── 🎬 42丨借用检查:深入理解生命周期参数Tvs&T.mp4
│   ├── 🎬 43丨借用检查: 深入理解生命周期参数: trait对象的生命周期参数.mp4
│   ├── 🎬 44丨借用检查: 深入理解生命周期参数:高阶生命周期(上).mp4
│   ├── 🎬 45丨借用检查: 深入理解生命周期参数:高阶生命周期(中).mp4
│   ├── 🎬 46丨借用检查: 深入理解生命周期参数:高阶生命周期(下).mp4
│   ├── 🎬 47丨线程与并发:理解线程与并发.mp4
│   ├── 🎬 48丨线程与并发:线程间安全共享数据.mp4
│   ├── 🎬 49丨线程与并发:构建「无悔」并发系统(一).mp4
│   ├── 🎬 50丨线程与并发:构建「无悔」并发系统(二).mp4
│   ├── 🎬 51丨线程与并发:构建「无悔」并发系统(三).mp4
│   ├── 🖼️ 干货工具箱priceeasy.png
│   └── 🎬 停更声明.mp4
├── 📁 【极客时间-100061901】Django 快速开发实战
│   ├── 🎬 01丨课程介绍.mp4
│   ├── 🎬 02丨内容综述.mp4
│   ├── 🎬 03丨初识Django:Django适合做什么?.mp4
│   ├── 🎬 04丨用2个命令创建一个包含用户管理功能的后台.mp4
│   ├── 🎬 05丨开始Django之旅 :10分钟如何创建一个可以管理职位的后台.mp4
│   ├── 🎬 06丨产品体验优化:快速迭代完善应用.mp4
│   ├── 🎬 07丨添加自定义页面:让匿名用户可以浏览职位列表页.mp4
│   ├── 🎬 08丨添加自定义页面:让匿名用户可以查看职位详情.mp4
│   ├── 🎬 09丨开始一个正式的产品:产品背景、迭代思维与MVP产品规划.mp4
│   ├── 🎬 10丨唯快不破:在产品中使用产品迭代思维.mp4
│   ├── 🎬 11丨数据建模 & 企业级数据库设计原则.mp4
│   ├── 🎬 12丨创建应用和模型,分组展示页面内容.mp4
│   ├── 🎬 13丨产品新需求:如何批量从Excel文件导入候选人数据(命令行工具).mp4
│   ├── 🎬 14丨产品体验优化:候选人列表筛选和查询.mp4
│   ├── 🎬 15丨省去单独的账号管理工作:企业域账号集成.mp4
│   ├── 🎬 16丨批量设置面试官:面试官的导入、授权.mp4
│   ├── 🎬 17丨产品新需求:如何导出候选人的数据到CSV(增加自定义的数据操作菜单).mp4
│   ├── 🎬 18丨如何记录日志方便排查问题.mp4
│   ├── 🎬 19丨生产环境的配置如何管理更安全:生产环境与开发环境配置分离.mp4
│   ├── 🎬 20丨产品细节完善.mp4
│   ├── 🎬 21丨定制更美观的主题.mp4
│   ├── 🎬 22丨定制面试官权限.mp4
│   ├── 🎬 23丨系统报错功能:钉钉群消息集成&通知一面面试官.mp4
│   ├── 🎬 24丨允许候选人注册登录集成Registration.mp4
│   ├── 🎬 25丨候选人简历存储:创建简历Model.mp4
│   ├── 🎬 26丨让候选人可以在线投递简历.mp4
│   ├── 🎬 27丨使用Bootstrap来定制页面样式.mp4
│   ├── 🎬 28丨简历评估&安排一面面试官.mp4
│   ├── 🎬 29丨定制列表字段,查看简历详情.mp4
│   ├── 🎬 30丨遗留系统集成:为已有系统数据库生成管理后台.mp4
│   ├── 🎬 31丨Django的中间件(Middleware).mp4
│   ├── 🎬 32丨创建请求日志、性能日志记录中间件.mp4
│   ├── 🎬 33丨在Django中支持多语言.mp4
│   ├── 🎬 34丨错误和异常日志上报:Sentry集成.mp4
│   ├── 🎬 35丨错误和异常日志上报:捕获异常上报到Sentry并发送钉钉群通知.mp4
│   ├── 🎬 36丨Django安全防护:防止XSS跨站脚本攻击.mp4
│   ├── 🎬 37丨Django安全防护:CSRF跨站请求伪造和SQL注入攻击.mp4
│   ├── 🎬 38丨DjangoRestFramework开放API.mp4
│   ├── 🎬 39丨在Django中使用缓存&Redis的使用.mp4
│   ├── 🎬 40丨Django与Celery集成:Celery的使用.mp4
│   ├── 🎬 41丨Django与Celery集成:异步任务.mp4
│   ├── 🎬 42丨Django与Celery集成:定时任务.mp4
│   ├── 🎬 43丨文件和图片上传功能.mp4
│   ├── 🎬 44丨实践中的问题:多数据库路由.mp4
│   ├── 🎬 45丨Django之美:3行代码支持大数据量的关联外键(autocomplete_fields).mp4
│   ├── 🎬 46丨Django之美:20行代码实现只读站点ReadOnlyAdmin.mp4
│   ├── 🎬 47丨 Django之美:10行代码自动注册所有Model到Admin管理后台.mp4
│   ├── 🎬 48丨Django之美:Signals信号及其使用场景.mp4
│   ├── 🎬 49丨Django之美:优雅的架构设计 - CSR架构总结之Celery.mp4
│   ├── 🎬 50丨Django之美:优雅的架构设计 - CSR架构总结之Sentry&Django Rest Framework.mp4
│   ├── 🎬 51丨Django之美:Django的常用插件.mp4
│   ├── 🎬 52丨生产环境要注意哪些事项:生产环境的应用部署.mp4
│   ├── 🎬 53丨应用水平扩展:使用负载均衡.mp4
│   ├── 🎬 54丨让网站访问更快:使用CDN加速.mp4
│   ├── 🎬 55丨让故障在第一时间被感知到:接入监控告警.mp4
│   ├── 🎬 56丨生产环境中的安全:生产环境的安全设计.mp4
│   ├── 🎬 57丨生产环境中的安全:应用安全.mp4
│   ├── 🎬 58丨生产环境中的安全:架构安全.mp4
│   ├── 🎬 59丨生产环境中的安全:数据安全.mp4
│   ├── 🎬 60丨生产环境中的安全:密码安全与业务安全.mp4
│   ├── 🎬 61丨云环境中的部署:Docker容器的基础用法.mp4
│   ├── 🎬 62丨云环境中的部署:如何像分发集装箱一样发布应用.mp4
│   ├── 🎬 63丨云环境中的部署:开发环境的容器化&构建小镜像.mp4
│   ├── 🎬 64丨云环境中的部署:什么时候需要容器编排.mp4
│   ├── 🎬 65丨云环境中的部署:阿里云上搭建Kubernetes集群.mp4
│   ├── 🎬 66丨云环境中的部署:管理监控容器中的Django应用.mp4
│   ├── 🎬 67丨云环境中的部署:应用日志收集与查询.mp4
│   ├── 🎬 68丨云环境中的持续集成:CI-CD的工作流程69丨云环境中的持续集成:CI-CD的基本使用.mp4
│   ├── 🎬 70丨快速迭代的价值与挑战.mp4
│   ├── 🎬 71丨使用OOPD方法识别产品核心功能.mp4
│   ├── 🎬 72丨如何做技术方案设计与工作拆解.mp4
│   ├── 🎬 73丨如何保证交付质量和持续迭代.mp4
│   ├── 🎬 74丨如何更高效地寻求帮助?.mp4
│   ├── 🎬 75丨一名Hacker的成长之路.mp4
│   ├── 🎬 76丨结束语.mp4
│   └── 🖼️ 干货工具箱priceeasy.png
├── 📁 【极客时间-100066301】小马哥讲 Spring AOP 编程思想
│   ├── 🎬 01丨课程介绍.mp4
│   ├── 🎬 02丨内容综述.mp4
│   ├── 🎬 03丨知识储备:基础、基础,还是基础!.mp4
│   ├── 🎬 04丨AOP引入:OOP存在哪些局限性?.mp4
│   ├── 🎬 05丨AOP常见使用场景.mp4
│   ├── 🎬 06丨AOP概念:Aspect、Join Point和Advice等术语应该如何理解?.mp4
│   ├── 🎬 07丨Java AOP设计模式:代理、判断和拦截器模式.mp4
│   ├── 🎬 08丨Java AOP代理模式(Proxy):Java静态代理和动态代理的区别是什么?.mp4
│   ├── 🎬 09丨Java AOP判断模式(Predicate):如何筛选Join Point?.mp4
│   ├── 🎬 10丨Java AOP拦截器模式(Interceptor):拦截执行分别代表什么?.mp4
│   ├── 🎬 11丨Spring AOP 功能概述:核心特性、编程模型和使用限制.mp4
│   ├── 🎬 12丨Spring AOP编程模型:注解驱动、XML配置驱动和底层API.mp4
│   ├── 🎬 13丨Spring AOP设计目标:Spring AOP与 AOP框架之间的关系是竞争还是互补?.mp4
│   ├── 🎬 14丨Spring AOP Advice类型:Spring AOP丰富了哪些AOP Advice呢?.mp4
│   ├── 🎬 15丨Spring AOP代理实现:为什么Spring Framework选择三种不同AOP实现?.mp4
│   ├── 🎬 16丨JDK动态代理:为什么Proxy.newProxyInstance会生成新的字节码?17丨CGLIB动态代理:为什么Java动态代理无法满足AOP的需要?.mp4
│   ├── 🎬 18丨AspectJ代理代理:为什么Spring推荐AspectJ注解?.mp4
│   ├── 🎬 19丨AspectJ基础:Aspect、Join Points、Pointcuts和Advice语法和特性.mp4
│   ├── 🎬 20丨AspectJ注解驱动:注解能完全替代AspectJ语言吗?.mp4
│   ├── 🎬 21丨面试题精选.mp4
│   ├── 🎬 22丨Spring核心基础:《小马哥讲Spring核心编程思想》还记得多少?.mp4
│   ├── 🎬 23丨@AspectJ注解驱动.mp4
│   ├── 🎬 24丨编程方式创建 @AspectJ代理.mp4
│   ├── 🎬 25丨XML配置驱动 - 创建AOP代理.mp4
│   ├── 🎬 26丨标准代理工厂API - ProxyFactory.mp4
│   ├── 🎬 27丨@AspectJ Pointcut指令与表达式:为什么Spring只能有限支持?.mp4
│   ├── 🎬 28丨XML配置Pointcut.mp4
│   ├── 🎬 29丨API实现Pointcut.mp4
│   ├── 🎬 30丨@AspectJ拦截动作:@Around与@Pointcut有区别吗?.mp4
│   ├── 🎬 31丨XML配置Around Advice.mp4
│   ├── 🎬 32丨API实现Around Advice.mp4
│   ├── 🎬 33丨@AspectJ前置动作:@Before与@Around谁优先级执行?.mp4
│   ├── 🎬 34丨XML配置Before Advice.mp4
│   ├── 🎬 35丨API实现Before Advice.mp4
│   ├── 🎬 36丨@AspectJ后置动作 - 三种After Advice之间的关系?.mp4
│   ├── 🎬 37丨XML配置三种After Advice.mp4
│   ├── 🎬 38丨API实现三种After Advice.mp4
│   ├── 🎬 39丨自动动态代理.mp4
│   ├── 🎬 40丨替换TargetSource.mp4
│   ├── 🎬 41丨面试题精选.mp4
│   ├── 🎬 42丨Spring AOP API整体设计.mp4
│   ├── 🎬 43丨接入点接口 - Joinpoint.mp4
│   ├── 🎬 44丨Joinpoint条件接口 - Pointcut.mp4
│   ├── 🎬 45丨Pointcut操作 - ComposablePointcut.mp4
│   ├── 🎬 46丨Pointcut便利实现.mp4
│   ├── 🎬 47丨Pointcut AspectJ实现 - AspectJExpressionPointcut.mp4
│   ├── 🎬 48丨Joinpoint执行动作接口 - Advice.mp4
│   ├── 🎬 49丨Joinpoint Before Advice标准实现.mp4
│   ├── 🎬 50丨Joinpoint Before Advice AspectJ实现.mp4
│   ├── 🎬 51丨Joinpoint After Advice标准实现.mp4
│   ├── 🎬 52丨Joinpoint After Advice AspectJ实现.mp4
│   └── 🖼️ 干货工具箱priceeasy.png
├── 📁 【极客时间-cloudnative】云原生训练营
│   ├── 📁 开营直播
│   │   ├── 🎬 开营直播.mp4
│   │   └── 📝 云原生训练营开营直播.pdf
│   ├── 📁 模块三 Docker 核心技术
│   │   ├── 🎬 1. Docker 核心技术 · 第一课.mp4
│   │   ├── 🎬 2. Docker 核心技术 · 第二课.mp4
│   │   └── 📝 模块三-Docker核心技术.pdf
│   ├── 📁 模块八:生命周期管理和服务发现
│   │   ├── 🎬 1. 生命周期管理和服务发现 · 第一课.mp4
│   │   ├── 🎬 2. 生命周期管理和服务发现 · 第二课.mp4
│   │   ├── 🎬 3. 生命周期管理和服务发现 · 第三课.mp4
│   │   ├── 🖼️ 干货工具箱priceeasy.png
│   │   ├── 📝 模块八-Kubernetes 控制平面组件:生命周期管理和服务发现.pdf
│   │   ├── 📝 模块八作业(一).docx
│   │   └── 📝 模块八作业(二).docx
│   ├── 📁 模块二:Go语言进阶
│   │   ├── 🎬 2. Go 语言进阶 · 第二课.mp4
│   │   ├── 🎬 2. Go 语言特性 · 第二课.mp4
│   │   ├── 🖼️ 干货工具箱priceeasy.png
│   │   └── 📝 模块二-编写Go程序.pdf
│   ├── 📁 模块九:生产化集群的管理
│   │   ├── 🎬 1. 生产化集群的管理 · 第一课.mp4
│   │   ├── 🎬 2. 生产化集群的管理 · 第二课.mp4
│   │   ├── 🎬 3. 生产化集群的管理 · 第三课.mp4
│   │   ├── 🎬 kube-spray.mp4
│   │   ├── 📝 模块九作业.docx
│   │   └── 📝 模块九:生产化集群的管理.pdf
│   ├── 📁 模块六:Kubernetes控制平面组件
│   │   ├── 🎬 1. Kubernetes 控制平面组件:API Server · 第一课.mp4
│   │   ├── 🎬 2. Kubernetes 控制平面组件:API Server · 第二课.mp4
│   │   └── 📝 模块六:Kubernetes 控制平面组件:API Server.pdf
│   ├── 📁 模块七:Kubernetes控制平面组件:调度器和控制器
│   │   ├── 🎬 1.Kubernetes 控制平面组件:调度器和控制器 · 第一课.mp4
│   │   ├── 🎬 2. Kubernetes 控制平面组件:调度器和控制器 · 第二课.mp4
│   │   ├── 🎬 3. Kubernetes 控制平面组件:调度器和控制器 · 第三课.mp4
│   │   └── 📝 模块七:Kubernetes 控制平面组件:调度器和控制器.pdf
│   ├── 📁 模块十二:基于Istio的高级流量管理
│   │   ├── 🎬 1. 基于 Istio 的高级流量管理 · 第一课.mp4
│   │   ├── 🎬 2. 基于 Istio 的高级流量管理 · 第二课.mp4
│   │   ├── 📝 模块十二作业.docx
│   │   └── 📝 模块十二:基于 Istio 的高级流量管理.pdf
│   ├── 📁 模块十四:基于Kubernetes和Istio的安全保证
│   │   ├── 🎬 1. 基于 Kubernetes 和 Istio 的安全保证 · 第一课.mp4
│   │   ├── 🎬 2. 基于 Kubernetes 和 Istio 的安全保证 · 第二课.mp4
│   │   └── 📝 模块十四:基于 Kubernetes 和 Istio 的安全保证.pdf
│   ├── 📁 模块十三:Kubernetes 集群联邦和 Istio 多集群管理
│   │   ├── 🎬 1. Kubernetes 集群联邦和 Istio 多集群管理 · 第一课(1).mp4
│   │   ├── 🎬 1. Kubernetes 集群联邦和 Istio 多集群管理 · 第一课(2).mp4
│   │   ├── 🎬 2. Kubernetes 集群联邦和 Istio 多集群管理 · 第二课.mp4
│   │   └── 📝 模块十三:Kubernetes 集群联邦和 Istio 多集群管理.pdf
│   ├── 📁 模块十五:微服务项目的开发和部署案例
│   │   ├── 🎬 1. 微服务项目的开发和部署案例.mp4
│   │   └── 📝 模块十五:微服务项目的开发和部署案例.pdf
│   ├── 📁 模块十一:将应用迁移至Kubernetes平台
│   │   ├── 🎬 1. 将应用迁移至 Kubernetes 平台 · 第一课.mp4
│   │   ├── 🎬 2. 将应用迁移至 Kubernetes 平台 · 第二课.mp4
│   │   └── 📝 模块十一:将应用迁移至 Kubernetes 平台.pdf
│   ├── 📁 模块四:Kubernetes 架构原则和对象设计
│   │   ├── 🎬 1. Kubernetes 架构原则和对象设计 · 第一课.mp4
│   │   ├── 🎬 2. Kubernetes 架构原则和对象设计 · 第二课.mp4
│   │   └── 📝 模块四-Kubernetes架构原则和对象设计.pdf
│   ├── 📁 模块十:Kubernetes的生产化运维
│   │   ├── 🎬 1. Kubernetes 的生产化运维 · 第一课.mp4
│   │   ├── 🎬 2. Kubernetes 的生产化运维 · 第二课.mp4
│   │   ├── 🎬 argocd.mov
│   │   └── 📝 模块十:Kubernetes 的生产化运维.pdf
│   ├── 📁 模块五:Kubernetes 控制平面组件
│   │   ├── 🎬 1. Kubernetes 控制平面组件:etcd · 第一课.mp4
│   │   ├── 🎬 2. Kubernetes 控制平面组件:etcd · 第二课.mp4
│   │   ├── 🖼️ 干货工具箱priceeasy.png
│   │   └── 📝 模块五:Kubernetes 控制平面组件:etcd.pdf
│   ├── 📁 模块一:Go语言特性
│   │   ├── 🎬 1. Go 语言进阶 · 第一课.mp4
│   │   ├── 🎬 1. Go 语言特性 · 第一课.mp4
│   │   ├── 🖼️ 干货工具箱priceeasy.png
│   │   └── 📝 模块一-Go语言特性.pdf
│   ├── 📁 整理中,1月27号之前上传
│   └── 📄 README.md
├── 📁 【极客时间-java4th】高级Java工程师体系课2.0
│   ├── 📁 01 项目性能优化(上)
│   │   ├── 🎬 1-内容介绍.mp4
│   │   ├── 🎬 2-性能问题分析方法论.mp4
│   │   ├── 🎬 3-什么是压力测试.mp4
│   │   ├── 🎬 4-压力测试的指标有哪些.mp4
│   │   ├── 🎬 5-案例-压力测试SpringBoot项目.mp4
│   │   ├── 🎬 6-案例-压力测试结果解析.mp4
│   │   ├── 🎬 7-JMeter压测插件.mp4
│   │   ├── 🎬 8-性能关键指标分析.mp4
│   │   ├── 🎬 9-搭建压测监控平台.mp4
│   │   ├── 🎬 10-案例-梯度压测-找出项目性能瓶颈.mp4
│   │   ├── 🎬 11-今日内容总结.mp4
│   │   └── 🖼️ 干货工具箱priceeasy.png
│   ├── 📁 02 项目性能优化(下)
│   │   ├── 🎬 1-今日内容介绍.mp4
│   │   ├── 🎬 2-分布式压测-Linux中JMeter的使用.mp4
│   │   ├── 🎬 3-分布式压测-模拟超高负载的利器.mp4
│   │   ├── 🎬 4-服务调优案例-Tomcat优化.mp4
│   │   ├── 🎬 5-服务调优案例-网络IO模型优化.mp4
│   │   ├── 🎬 6-服务调优案例-高性能Web服务器Undertow.mp4
│   │   ├── 🎬 7-数据库调优初探.mp4
│   │   ├── 🎬 8-OpenResty调优初探.mp4
│   │   ├── 🎬 9-缓存调优初探.mp4
│   │   ├── 🎬 10-JVM调优初探.mp4
│   │   └── 🎬 11-今日内容总结.mp4
│   ├── 📁 03 JVM 虚拟机(上)
│   │   ├── 🎬 1-今日内容介绍.mp4
│   │   ├── 🎬 2-什么是JVM?.mp4
│   │   ├── 🎬 3-类加载子系统.mp4
│   │   ├── 🎬 4-案例-自定义类加载器.mp4
│   │   ├── 🎬 5-双亲委派与打破双亲委派.mp4
│   │   ├── 🎬 6-运行时数据区-堆Heap.mp4
│   │   ├── 🎬 7-运行时数据区-虚拟机栈和本地方法栈.mp4
│   │   ├── 🎬 8-运行时数据区-方法区.mp4
│   │   ├── 🎬 9-运行时数据区-运行时常量池.mp4
│   │   ├── 🎬 10-运行时数据区-程序计数器&直接内存.mp4
│   │   └── 🎬 11-今日内容总结.mp4
│   ├── 📁 04 JVM 虚拟机(下)
│   │   ├── 🎬 1-今日内容介绍.mp4
│   │   ├── 🎬 2-对象生命周期上-创建、内存分配与线程安全问题.mp4
│   │   ├── 🎬 3-对象生命周期下-对象如何进入到老年代?.mp4
│   │   ├── 🎬 4-对象生命周期案例:对象分配过程.mp4
│   │   ├── 🎬 5-对象生命周期案例:内存担保.mp4
│   │   ├── 🎬 6-解剖小对象:对象里的三个区.mp4
│   │   ├── 🎬 7-GC基本原理-什么是垃圾,如何找到垃圾.mp4
│   │   ├── 🎬 8-GC基本原理-对象引用:强引用、软引用、弱引用与虚引用.mp4
│   │   ├── 🎬 9-GC基本原理-怎么清楚垃圾,用什么清除垃圾?.mp4
│   │   ├── 🎬 10-串行与并行收集器-吞吐量优先PS、PO.mp4
│   │   ├── 🎬 11-串行与并行收集器-响应优先ParNew、CMS.mp4
│   │   ├── 🎬 12-串行与并行收集器-G1、ZGC.mp4
│   │   └── 🎬 13-今日内容总结.mp4
│   ├── 📁 05 JVM 调优
│   │   ├── 🎬 1-今日内容介绍.mp4
│   │   ├── 🎬 2-JVM相关工具-JDK自带jps,jstat,jinfo.mp4
│   │   ├── 🎬 3-JVM相关工具-JDK自带jmap,jhat,jstack,VisualVM.mp4
│   │   ├── 🎬 4-JVM相关工具-第三方GCEasy,MAT.mp4
│   │   ├── 🎬 5-JVM相关工具-第三方GCViewer,Arthas.mp4
│   │   ├── 🎬 6-JVM参数介绍-标准化参数、非标准参数、不稳定参数.mp4
│   │   ├── 🎬 7-JVM调优实战-基本原则.mp4
│   │   ├── 🎬 8-JVM调优实战-GC日志详解.mp4
│   │   ├── 🎬 09-JVM调优实战-堆内存与元空间优化.mp4
│   │   ├── 🎬 10-JVM调优实战-堆栈优化、吞吐量与响应时间优先策略.mp4
│   │   ├── 🎬 11-JVM调优实战-全功能但不全能的G1.mp4
│   │   ├── 🎬 12-JVM案例-内存溢出的定位与分析.mp4
│   │   ├── 🎬 13-JVM案例-检测死锁.mp4
│   │   ├── 🎬 14-今日内容总结.mp4
│   │   └── 🖼️ 干货工具箱priceeasy.png
│   ├── 📁 06 并发编程(上)
│   │   ├── 🎬 1-今日内容介绍.mp4
│   │   ├── 🎬 2-并发编程灵魂三问.mp4
│   │   ├── 🎬 3-多线程重要概念:并发、并行、线程上下文切换.mp4
│   │   ├── 🎬 4-线程的一生:六种线程状态如何流转.mp4
│   │   ├── 🎬 5-多线程源码剖析-Thread究竟如何执行run方法?.mp4
│   │   ├── 🎬 6-线程安全问题.mp4
│   │   ├── 🎬 7-多线程三大特性-有序性与指令重排.mp4
│   │   └── 🎬 8-多线程三大特性-可见性与Java内存模型.mp4
│   ├── 📁 07 并发编程(下)
│   │   ├── 🎬 1-线程安全-synchronized原理剖析.mp4
│   │   ├── 🎬 2-线程安全-什么是Monitor.mp4
│   │   ├── 🎬 3-线程安全-锁优化.mp4
│   │   ├── 🎬 4-volatile关键字简介.mp4
│   │   ├── 🎬 5-volatile实现原理.mp4
│   │   ├── 🎬 6-volatile的缺陷.mp4
│   │   ├── 🎬 7-JUC-原子类与CAS.mp4
│   │   ├── 🎬 8-JUC-CAS实现原理.mp4
│   │   ├── 🎬 9-JUC-CAS缺陷与ABA问题.mp4
│   │   ├── 🎬 10-JUC-锁分类.mp4
│   │   └── 🎬 11-JUC-Synchronized和JUC的锁对比.mp4
│   ├── 📁 08 并发工具
│   │   ├── 🎬 1-ReentrantLock重入锁核心原理-AQS.mp4
│   │   ├── 🎬 2-ReentrantLock重入锁源码分析-锁获取01.mp4
│   │   ├── 🎬 3-ReentrantLock重入锁源码分析-锁获取02.mp4
│   │   ├── 🎬 4-ReentrantLock重入锁源码分析-释放锁.mp4
│   │   ├── 🎬 5-公平和非公平锁、重入和不可重入锁源码分析.mp4
│   │   ├── 🎬 6-读写锁ReentrantReadWriteLock.mp4
│   │   ├── 🎬 7-如何优化锁?(1).mp4
│   │   ├── 🎬 7-如何优化锁?.mp4
│   │   ├── 🎬 8-并发工具类-CountDownLatch计数门闩.mp4
│   │   ├── 🎬 9-并发工具类-Semaphore信号量.mp4
│   │   ├── 🎬 10-并发工具类-CyclicBarrier循环栅栏.mp4
│   │   ├── 🎬 11-并发工具类-Condition条件对象.mp4
│   │   ├── 🎬 12-并发容器:Map、List、Set.mp4
│   │   └── 🎬 13-并发队列:阻塞、有界和无界.mp4
│   ├── 📁 09 线程池和网络编程
│   │   ├── 🎬 1、线程池工作原理剖析.mp4
│   │   ├── 🎬 2、创建线程池:手动vs自动.mp4
│   │   ├── 🎬 3、手写Web网站服务器.mp4
│   │   ├── 🎬 4、ThreadLocal的Key为什么需要使用弱引用?.mp4
│   │   ├── 🎬 5、Future和FutureTask.mp4
│   │   ├── 🎬 6、网络编程内容整体介绍.mp4
│   │   ├── 🎬 7、网络通信概念介绍.mp4
│   │   ├── 🎬 8、TCP的三次握手和四次挥手.mp4
│   │   ├── 🎬 9、URL传输协议.mp4
│   │   ├── 🎬 10、HTTP1.0与HTTP1.1的区别.mp4
│   │   ├── 🎬 11、URI和URL的区别.mp4
│   │   └── 🖼️ 干货工具箱priceeasy.png
│   ├── 📁 10 网络编程
│   │   ├── 🎬 1、BIO最基本的阻塞式IO.mp4
│   │   ├── 🎬 2、NIO非阻塞式IO:文件IO.mp4
│   │   ├── 🎬 3、NIO非阻塞式IO:网络IO.mp4
│   │   ├── 🎬 4、NIO案例:网络聊天室v1.0.mp4
│   │   ├── 🎬 5、AIO异步非阻塞式、BIO与NIO总结.mp4
│   │   ├── 🎬 6、Netty简介:单线程与线程池模型.mp4
│   │   ├── 🎬 7、Netty核心API.mp4
│   │   ├── 🎬 8、Netty案例:客户端与服务端的一次通信.mp4
│   │   ├── 🎬 9、Netty案例:网络聊天室V2.0.mp4
│   │   └── 🎬 10、Netty的编码和解码.mp4
│   ├── 📁 11 网络编程
│   │   ├── 🎬 1、手写RPC框架-原理分析.mp4
│   │   ├── 🎬 2、手写RPC框架-代码实现.mp4
│   │   ├── 🎬 3、手写Tomcat服务器-原理分析.mp4
│   │   ├── 🎬 4、手写Tomcat服务器-代码实现.mp4
│   │   ├── 🎬 5、Disruptor框架简介.mp4
│   │   ├── 🎬 6、Disruptor案例:单生产者和单消费者.mp4
│   │   ├── 🎬 7、Disruptor案例:多生产者和多消费者.mp4
│   │   └── 🎬 8、案例:Netty整合Disruptor实现600w+连接网络应用.mp4
│   └── 📦 资料代码.7z
└── 📁 【极客时间-python】Python进阶训练营
    ├── 📁 第二周
    │   ├── 🎬 01Python进阶训练营·闭包和装饰器2020-04-0617_09.mp4
    │   └── 🎬 02Python进阶训练营·Python新式类、魔术方法、设计模式、元编程、工厂函数、异常处理2020-04-06172.mp4
    ├── 📁 第六周
    │   ├── 🎬 6.1Flask开发基础.mp4
    │   └── 🎬 6.2Flask开发进阶.mp4
    ├── 📁 第七周
    │   ├── 🎬 7.1课程知识点补充讲解.mp4
    │   └── 🎬 7.2常见疑难问题解答.mp4
    ├── 📁 第四周
    │   ├── 🎬 02Python进阶训练营·协程、Ansible集群管理、异常处理2020-04-0618_52.mp4
    │   ├── 🎬 03Python进阶训练营·Pandas数据处理2020-04-0618_52.mp4
    │   └── 🎬 Python进阶训练营·第二周作业详解2020-04-0618_52.mp4
    ├── 📁 第三周
    │   ├── 🎬 01Python进阶训练营·深入掌握Scrapy爬虫框架2020-04-0618_09.mp4
    │   ├── 🎬 02Python进阶训练营·多进程2020-04-06186.mp4
    │   └── 🎬 03Python进阶训练营·多线程2020-04-06186.mp4
    ├── 📁 第五周
    │   ├── 🎬 5.1中文分词与词云制作.mp4
    │   ├── 🎬 5.2情感分析、smtplib邮件发送服务与OpenCV自动识别验证码.mp4
    │   ├── 🎬 5.3Flask入门.mp4
    │   └── 🖼️ 干货工具箱priceeasy.png
    ├── 📁 第一周
    │   ├── 🎬 01Python进阶训练营·课程介绍、学习方法与Python基础回顾2020-04-06157.mp4
    │   ├── 🎬 02Python进阶训练营·HTTP、HTML基础以及深入掌握urllib和requests库2020-04-0615_49.mp4
    │   ├── 🎬 03Python进阶训练营·Python变量和函数的底层原理2020-04-06165.mp4
    │   └── 🖼️ 干货工具箱priceeasy.png
    ├── 📝 大纲.txt
    └── 📄 README.md

相关资源