Java全栈工程师从Java后端到全栈2020

14
回复
4976
查看
[复制链接]
  • TA的每日心情
    擦汗
    2021-1-15 17:26
  • 签到天数: 4 天

    [LV.2]偶尔看看I

    21

    主题

    25

    帖子

    91

    积分

    练气程序员

    Rank: 2

    积分
    91
    发表于 2020-12-22 10:12:00 | 显示全部楼层 |阅读模式

    登录后查看本帖详细内容!

    您需要 登录 才可以下载或查看,没有帐号?立即注册

    x
    目录
    │  课表.pdf# }, S+ I! ?8 a' B2 A! o
    │  7 S& c9 w+ s8 z) L" J
    ├─阶段1:小程序高级电商前端- s4 x1 o! a+ r  r6 }: j
    │  ├─01.走进Web全栈工程师
    │  │      1-1 Java全栈序章.mp4
    │  │      1-2 长期课程规划与前置要求.mp40 Q3 G) a; Q1 P, ~- F$ B/ ?: ]6 M
    │  │      1-3 appkey申请、课程免费补充资料.mp4
    │  │      1-4 临时补充:关于appkey的申请(重要).mp4+ T6 d8 h3 A5 N- n  p$ |
    │  │      2-1 第一阶段第一次作业(风袖细节分析).mp4
    │  │      2-2 小程序注册与新建项目.mp4
    │  │      2-3 开发工具推荐(Vscode或者WebStorm).mp40 z3 u, C7 \; H6 ^; W
    │  │      2-4 《风袖》首页布局详尽分析.mp4+ C$ \# Y8 S' q8 }
    │  │      2-5 第一阶段第二次作业(LinUI 瀑布流练习).mp4
    │  │      2-6 真实的项目必须是动态的、CMS可控的.mp4" y8 p7 {: H% W6 e
    │  │      2-7 WebStorm开发小程序必备设置.mp4
    │  │      2-8 调用服务端API获取数据.mp4
    │  │      2-9 小程序开发前必备配置.mp4* ^4 R5 _6 K0 y, k& y/ J* s
    │  │      3-1 配置文件与第一次调用服务端API.mp4
    │  │      3-2 业务对象的重要性.mp4
    │  │      3-3 封装HTTP请求.mp41 u- F7 y/ w/ P+ O# `
    │  │      3-4 小程序中使用async和await的难点分析.mp4% f. C0 e+ d, M$ L& Y) X* V
    │  │      3-5 使用LinUI Promisic让小程序内置API支持Promise.mp4, I7 E- w: o0 G" |
    │  │      3-6 将回调函数全部替换为async和await.mp4
    │  │      3-7 获取banner数据.mp4' l4 k/ v2 F- u1 Q% P; x( Q8 ?7 a
    │  │      3-8 Banner轮播图实现与插槽的基本概念.mp4
    │  │      3-9 npm的semver语法规则.mp4/ ^8 z1 ?# ^; _
    │  │      3-10 Lin UI安装、主题色配置与按需加载.mp4- C6 h7 T8 }3 G8 a  P8 [
    │  │      4-1 LinUI Grid组件构建分类六宫格 (上).mp4! A5 H2 y% a" r: V( Y
    │  │      4-2 LinUI Grid构建分类六宫格(中).mp45 Q( R1 q3 |6 I0 e3 B# ~( X: s
    │  │      4-3 LinUI Grid构建分类六宫格 (下).mp4+ I% D; Z' |* C0 @& ?1 F
    │  │      4-4 组件设计与LinUI使用的几个非常重要的原则.mp4
    │  │      4-5 如果没有明确理由,不要固定高和宽.mp47 t* r0 j2 q# y* @4 ?: z
    │  │      
    │  ├─02.Lin UI组件库的引入与编程原则
    │  │      1-1 优惠券的一些基本概念.mp4
    │  │      1-2 优惠券入口.mp48 W9 t' t! {) y
    │  │      1-3 背景颜色到底怎么设置?.mp4
    │  │      1-4 页面到底是否应该合并HTTP请求?.mp4
    │  │      1-5 函数式编程概述.mp4' @+ m# v8 ^3 \8 W5 v
    │  │      1-6 第一阶段 第三次作业.mp40 U" w, ]/ k. r, l  @/ u
    │  │      1-7 类可以保存数据,但对象可以保存状态.mp4! Q' q. _( o' ?& t  t+ G- B
    │  │      1-8 重构Theme获取.mp48 x8 S( C& |: ^
    │  │      1-9 第一阶段第四次作业.mp4
    │  │      2-1 scroll-view组件的灵活应用.mp49 L9 l8 b# t2 i1 E5 ]- |
    │  │      2-2 是不是方法都需要加async和await?.mp4
    │  │      2-3 第一阶段第五次作业.mp4
    │  │      2-4 spu-scroll自定义组件 1.mp4
    │  │      2-5 Lin UI Price价格组件应用.mp4
    │  │      
    │  ├─03.热身结束,开启试炼# X; w, S2 q& K& w- L
    │  │      1-1 spu-scroll自定义组件2.mp4
    │  │      1-2 通过scroll-view抽象出的几个css编写原则.mp4
    │  │      1-3 WXS与小程序的内核简介.mp43 S0 b* ~& z' g+ x# ]9 G
    │  │      1-4 WXS与Lin UI Filter的应用.mp4& m# u, }5 u) e" u- C! E3 T
    │  │      1-5 webstorm的骚操作自定义代码片段.mp4
    │  │      1-6 自定义组件的边距问题与外部样式类应用.mp4
    │  │      1-7 学会抽象来简化数据库表设计.mp43 U1 ]9 H2 A4 Q- \/ y
    │  │      1-8 新监听器Observers与hot-list组件.mp4
    │  │      1-9 flex布局的灵活应用.mp4
    │  │      1-10 Hover点击态的应用与@import 公共样式表.mp4; ?8 }" {0 G: k1 o& M
    │  │      2-1 组件自定义性的终极方案:抽象节点.mp4
    │  │      2-2 防抖、截流与分页细节全分析.mp4
    │  │      2-3 Paging对象 一.mp4
    │  │      2-4 编程原则:多用return提前结束函数,少用else.mp44 O/ x0 R# q- M: X
    │  │      2-5 Paging对象 二.mp4! W# k9 f( G% G& V( I
    │  │      2-6 Paging对象 三.mp41 n) X' v4 }0 Q1 O+ i- V$ ^
    │  │      2-7 第一阶段第六次作业 Sku预研作业.mp4
    │  │      2-8 Pgaing对象 四.mp4
    │  │      7 @3 q6 u6 ^# t. n+ ^  g
    │  ├─04.攻克SKU和商品购物车: _5 M% p( ]( v8 I' {* |: r: A
    │  │      1-1 l-water-flow抽象组件式深入剖析.mp4+ F, g- c0 F. ?7 e7 q+ A$ H) |- G& q
    │  │      1-2 Lin UI Tag组件快速构建标签.mp4" z2 B9 E- D3 g3 e
    │  │      1-3 折扣价和原价的常见错误逻辑.mp48 |! [) s4 B) i: O# i, X. d
    │  │      1-4 使用WXS解决复杂的逻辑问题.mp4
    │  │      1-5 瀑布流的初步成型.mp40 L1 B4 k" E# S
    │  │      1-6 动态计算图片高和宽.mp4  K" j3 ?$ X( c" p
    │  │      1-7 Loading的思维逻辑:正在加载其实是一种常驻状态.mp4
    │  │      1-8 实现页底提示.mp40 ~9 [7 d5 y1 `* {0 a% c
    │  │      2-1 页面跳转与新机制EventChannel.mp4
    │  │      2-2 Spu、Sku、规格名和规格值.mp4
    │  │      2-3 从一个提问谈思考的精神.mp4
    │  │      2-4 调整思维,才能解决复杂的逻辑问题.mp4
    │  │      2-5 借助符号化的命名方式思考问题.mp4
    │  │      2-6 控制中心Realm与栅栏Fence.mp4
    │  │      2-7 fence与fence-group对象.mp4
    │  │      3-1 SKU方案整理 一:规格值的提取.mp4
    │  │      3-2 SKU方案整理 二:核心问题是规格值状态的确定.mp41 `: y3 h; f" u7 c
    │  │      3-3 用矩阵的思想提取规格值.mp4. k  H6 m% I$ n' F( d* l
    │  │      3-4 数学小课堂:矩阵的转置与旋转.mp4
    │  │      3-5 矩阵的遍历.mp4
    │  │      3-6 Fence的实例化.mp4
    │  │      3-7 测试Fences.mp4
    │  │      3-8 自己实现矩阵的转置.mp4
    │  │      3-9 谈数学、面向对象与编程思维.mp4
    │  │      3-10 构建Cell对象.mp4
    │  │        k% ?" p1 P+ P! @. @, {
    │  ├─05.SKU核心:规格状态、编码、无货逻辑
    │  │      1-1 SKU串码编号.mp42 U! Y8 ~  s2 t
    │  │      1-2 Fence与规格名的对应关系.mp4
    │  │      1-3 Cell去重.mp4+ o( u8 n+ e, _  @* I  G
    │  │      1-4 Cell自定义组件.mp4
    │  │      1-5 初步完成规格矩阵渲染.mp4; j# P6 S+ F. y3 f  H
    │  │      1-6 SKU算法的难点是确定规格的禁用状态.mp4( r- F* B$ C3 z. g
    │  │      1-7 SKU核心算法剖析 一.mp4
    │  │      1-8 SKU核心算法其实就是一句话,我之前已经讲过了.mp47 W7 M) l  K* N1 `4 j0 \4 I7 I
    │  │      1-9 矩阵列不同规格的问题解答.mp4
    │  │      2-1 数学小课堂:排列组合在SKU中的应用.mp4- H+ O5 K) Q) m, P7 _6 s( P! V7 c- |
    │  │      2-2 SkuCode类拆分Sku可能的路径.mp4' |: P% L; i5 E6 u% G' H* r9 Z
    │  │      2-3 Combination组合函数.mp4
    │  │      2-4 完成PathDict字典.mp4& q: C; F1 M0 p9 `' |0 U
    │  │      2-5 Cell的三种状态样式.mp4
    │  │      2-6 选中、禁用与可选状态的切换.mp4, @: F9 N# ~9 a& z5 @3 Q5 |9 n
    │  │      2-7 SKU选择的数据流向.mp42 q& {4 o! N- @" z, k
    │  │      2-8 自定义组件事件跨越组件边界(Bubbles与Composed).mp46 i$ d5 P/ S* K
    │  │      2-9 重新渲染矩阵与错误排查推演.mp47 o# P8 \% ?- }! J6 x5 {; E& D
    │  │      2-10 获取Cell的行列号.mp4
    │  │      2-11 实现Cell的正选和反选.mp4
    │  │      3-1 潜在路径PotentialPath分析.mp4
    │  │      3-2 正选Cell的规律推演.mp4
    │  │      3-3 反选Cell的规律推演.mp4
    │  │      3-4 SkuPending类的职责.mp47 k, y5 ^; F7 H2 W1 D
    │  │      3-5 遍历所有Cell的潜在路径.mp4
    │  │      3-6 遍历所有Cell的潜在路径 二.mp4
    │  │      3-7 遍历所有Cell的潜在路径 三.mp4
    │  │      3-8 完成SKU的逻辑选择.mp44 A% }: e3 C/ [2 U9 {' a' O: F+ N
    │  │      * u- A8 X0 z! J* ?' t* F
    │  ├─06.SKU收尾,优惠券、购物车讲解
    │  │      1-1 Realm骨架的完善.mp4" X* t  ?" I8 N3 c6 A
    │  │      1-2 默认SKU的概念与意义.mp4( o2 ~1 A4 M* }$ B& _2 E
    │  │      1-3 将默认SKU拆解后加入到SkuPending中.mp44 E) h" o% @6 h  n- H9 S, V
    │  │      1-4 从两个指标评估循环对性能造成的影响?.mp44 b6 L1 [- z1 H& _
    │  │      1-5 完成默认规格渲染.mp4
    │  │      1-6 Sku描述数据与规格选择联动 一.mp4
    │  │      1-7 无规格商品的概念与意义.mp4
    │  │      1-8 无规格商品的具体处理流程.mp4
    │  │      1-9 规格选择提示的复杂逻辑处理(一).mp4
    │  │      1-10 规格选择提示的复杂逻辑处理 (二).mp4
    │  │      1-11 性能:setData性能探讨.mp4
    │  │      1-12 规格选择与SKU描述联动 一.mp4
    │  │      1-13 获取code码和确定的SKU.mp4- e4 [8 B# @# m$ k
    │  │      1-14 确定MissingSpecKeys和CurrentSpecValues.mp4, A. ^% p5 B# C  v$ ~" n+ P9 k
    │  │      1-15 确定MissingSpecKeys和CurrentSpecValues 二.mp4
    │  │      1-16 终于完成了SKU,撒花,庆祝~.mp4' c: z1 G$ |5 \' k& `! S- Q$ X  H6 p
    │  │      2-1 l-counter数量选择器(核心组件).mp4
    │  │      2-2 详解l-counter的数量控制属性.mp4
    │  │      2-3 无货情况分析(操作Counter、默认SKU和无规格).mp4
    │  │      2-4 获取l-counter的选择数量.mp4
    │  │      2-5 三种触发无货状态的机制 (一).mp4
    │  │      2-6 Lin UI l-icon组件快速使用字体图标.mp4
    │  │      2-7 使用iconfont在线字体图标.mp4/ h; ^7 O, ], c% R  P+ b3 J8 V$ }. C
    │  │      2-8 使用l-icon引入自定义字体图标.mp4
    │  │      2-9 当我们谈编程能力的时候,我们谈的是什么.mp4  J4 C% A& L- t
    │  │      3-1 l-badge组件快速显示角标数字.mp4
    │  │      3-2 使用l-popup从底部弹出Realm.mp4
    │  │      3-3 realm滑动控制适应不同高度.mp45 u' ~- a& U4 [3 a: D1 v8 T; ~" N6 q
    │  │      3-4 优化realm的滚动条.mp4
    │  │      3-5 决定用户立即购买还是加入购物车.mp4
    │  │      3-6 规格的主观性与组合性.mp46 |0 {2 K% r3 z! H6 D5 s
    │  │      3-7 可视规格的概念.mp4$ W# j) {# a- m3 {7 O6 j
    │  │      3-8 SketchFence可视规格的实现(一).mp4
    │  │      3-9 SketchFence可视规格的实现(二).mp4  z& ~% M2 F/ u$ l% Q
    │  │      3-10 商品详情页面(一).mp4; ?0 T/ O; v  Y/ g7 k% B. N; @
    │  │      3-11 商品详情页(二).mp4% ?0 X6 j  H* {  J. O7 Z
    │  │      3-12 商品详情(三)微信开放能力的限制.mp4# `% x8 ?+ n9 X( i" _& O
    │  │      3-13 商品详情页(四)l-button解决自定义样式.mp4
    │  │      3-14 商品详情(五)SpecChange事件.mp4% K7 Q* t, r# w" }" U& J" M
    │  │      3-15 商品详情(六)完成SpecContainer.mp48 r4 E% r6 y' T3 W' K
    │  │      3-16 一种最笨但有效的查错方法.mp4
    │  │      3-17 用伪类模拟制表符效果.mp4
    │  │      3-18 商品详情图展示与隐藏页面滚动条方案.mp4
    │  │      4-1 分类页面重难点分析.mp4) G: t2 v, t+ x6 R
    │  │      4-2 使用l-button快速实现搜索按钮.mp4( m7 Y# q1 I) b6 ~+ C
    │  │      4-3 欢迎加入Lin UI和Lin CMS开源项目.mp45 n9 Q* c* T, ~8 ?  f0 ^3 d. o% s# ]
    │  │      4-4 l-segment组件的高级应用 (一).mp4* H7 G4 R" N5 A
    │  │      4-5 l-segment高级应用(二).mp4
    │  │      4-6 动态计算窗口高度与px与rpx动态转换.mp4; t2 {5 r. }- P* U+ r( Q* |
    │  │      4-7 不同机型上px向rpx的转换.mp4
    │  │      4-8 动态计算Detail页面的Scroll-View高度.mp4
    │  │      4-9 分类加载的性能与体验优化探讨.mp40 [4 ?0 M2 z) U# y
    │  │      4-10 加载分类数据与默认二级分类数据的确定.mp49 A$ q9 z( U+ ]  P& M( U. m
    │  │      4-11 二级分类的Grid显示(一).mp4* |+ Y# d: {% X4 ~) O
    │  │      4-12 二级分类显示切换.mp4& D8 B/ M' M2 c% D+ g: V; B
    │  │      4-13 二级分类跳转到Spu集合页面.mp4: K7 G9 Q$ l2 x4 }" [3 Q) d
    │  │      
    │  ├─07.高级电商订单管理开发 与前端项目收尾
    │  │      1-1 搜索页面:l-search-bar搜索输入框的应用.mp4
    │  │      1-2 历史搜索记录类.mp4
    │  │      1-3 数据结构队列在HistoryKeyword中的应用.mp4, @, n- V8 F7 g
    │  │      1-4 设计模式:代理模式在HistoryKeyword中的应用.mp4
    │  │      1-5 JS中的单例模式应用.mp46 ?0 X6 |/ e' ^$ {
    │  │      1-6 热门关键词与l-tag的选中状态.mp4$ U2 P. X' Q. r! S5 {! H$ H' T2 q
    │  │      1-7 显示搜索结果.mp4
    │  │      1-8 二种搜索场景(关键词和标签).mp4
    │  │      1-9 空数据和空关键词处理.mp47 h( x# k& ^: L
    │  │      1-10 wx.lin的组件调用方式解析.mp4, x  F% \, Y0 x5 l: |5 g' [
    │  │      % G- P3 b& ?) u  P
    │  ├─第7+周 购物车价格同步、优惠券、下单与微信支付
    │  │      1-1 购物车全选操作(1)勾选、取消勾选状态切换.mp4) h. O* n* I- x) F3 Z1 V
    │  │      1-2 购物车全选(2)UI、缓存与组件三方的数据一致性.mp4
    │  │      1-3 购物车全选(3)全选的思考方式.mp4
    │  │      1-4 购物车全选(4)onShow时的全选.mp4% D! `* U, y7 L
    │  │      1-5 购物车全选(5)onDelete和onChecke时的全选改变.mp45 d3 H- m; b' e- K
    │  │      2-1 购物车价格合计(1)Calculator类.mp4
    │  │      2-2 购物车合计(2)计算总价.mp4
    │  │      2-3 购物车合计(3)Counter组件数值浮动.mp4) \& z+ F- m+ o* t, P. Q
    │  │      2-4 购物车合计(4)JS浮点数不精确的解决方案.mp4
    │  │      2-5 购物车合计(5)移除与勾选时的合计计算.mp44 ^- [- t5 [% z- h4 K
    │  │      2-6 购物车合计(6)全选价格计算(补充).mp4
    │  │      3-1 服务器数据同步(1)更新时机问题探讨.mp4
    │  │      3-2 服务器数据同步(2)获取购物车中的SKU的最新数据.mp4/ ~4 S$ s$ M5 N2 g/ |
    │  │      3-3 服务器数据同步(3)同步缓存.mp4' ^5 V8 P5 D, @9 s7 l
    │  │      3-4 服务器数据同步(3)修正wxkey的警告.mp4
    │  │      4-1 订单预览(1).mp4
    │  │      4-2 订单预览(2)用户微信收货地址授权流程与原理.mp4
    │  │      4-3 收货地址组件(1).mp4. s5 \' }8 r, F, `  H
    │  │      4-4 组件授权与API授权的不同机制剖析.mp4
    │  │      4-5 小程序原生支持Promise.mp4
    │  │      4-6 收货地址组件(2)显示用户收货地址.mp4; o/ g# L/ p$ V' c
    │  │      4-7  收货地址组件(3)缓存用户地址.mp4: T! N2 Z" S8 {1 s- f9 O
    │  │      4-8 收货地址组件(4)从用户setting中获取单项授权情况.mp4
    │  │      4-9 打开用户的授权配置(先调用Dialog才能触发OpenSetting).mp4
    │  │      5-1 订单商品预览数据获取.mp46 I; q5 }  n; C0 u2 ?. X  Q
    │  │      5-2 构建OrderItem模型类.mp4
    │  │      5-3 再次同步服务端SKU数据.mp4
    │  │      5-4 OrderItem的校验.mp4
    │  │      5-5 Order的基础校验.mp4; \$ h! x7 O4 f" j
    │  │      5-6 纯前端课程结束说明.mp4
    │  │      6-1 优惠券活动入口.mp4
    │  │      6-2 根据活动名称请求优惠券信息.mp4  m1 x+ `* j! D8 d" N# a
    │  │      6-3 前端登录与JWT令牌(1).mp43 Q$ ]6 o+ G; ]% t+ c  m% o
    │  │      6-4 前端登录与JWT令牌(2)前端携带令牌思路与时机.mp4; N/ l( ]: f8 K' ~2 l% z9 `
    │  │      6-5 wx.request未返回Promise的修复.mp44 {7 U8 D) |& d3 |' X
    │  │      6-6 前端登录与JWT令牌(3)在Http请求中加入BearerToken.mp4
    │  │      6-7 token无法保证100%有效的问题.mp4% O3 a5 I3 ?) ~, Q
    │  │      6-8 二次重发与防止无限二次重发.mp45 q' @8 c5 z2 e" g' n) a
    │  │      7-1 前端异常处理(1)异常的分类.mp4
    │  │      7-2 可复用的Message与定制化Message.mp4
    │  │      7-3 前端Message与Code的重定义.mp4
    │  │      7-4 调用失败的异常处理.mp44 T9 i( w  L1 Z: Z4 S- I  r; T
    │  │      7-5 空数据的情况(单个空数据和列表空数据).mp4$ D+ ~, r9 A! a" O8 o" d6 `
    │  │      7-6 单数据空值的转化处理.mp4
    │  │      7-7 调用方的个性化异常处理方案.mp49 |. V* h4 X! k- V: |
    │  │      7-8 异常处理的测试.mp4
    │  │      8-1 优惠券中心的前期工作与状态分析.mp4
    │  │      8-2 显示优惠券与Lin UI折叠面板组件.mp49 h! B; ^2 n: L4 z% z( e$ T! {9 j
    │  │      8-3 优惠券的领取操作逻辑.mp4
    │  │      8-4 二次点击使用优惠券.mp4* F. [' D# k4 ~0 K8 c; a3 R7 P
    │  │      8-5 从商品详情领取优惠券逻辑分析.mp4
    │  │      8-6 取当前商品适用的前两张优惠券.mp40 P- Y! ^# R1 `- i
    │  │      8-7 按分类获取全部可用优惠券.mp47 |/ a3 q6 t7 R
    │  │      8-8 获取优惠券及优惠券的适用分类.mp4
    │  │      8-9 OrderItem的呈现.mp4
    │  │      9-1 Coupon-Picker组件.mp4! q5 V  U# J' b
    │  │      9-2 优惠券的分类使用条件剖析.mp41 R( e4 n9 r# A! O( [4 Z
    │  │      9-3 2次Reduce计算分类总价.mp4
    │  │      9-4 判断优惠券是否可以使用在当前订单中.mp42 M/ ~0 f0 \) z. h$ }0 c* I/ I
    │  │      9-5 优惠券选择的切换逻辑.mp4
    │  │      9-6 优惠券折扣价格计算(1).mp4
    │  │      9-7 优惠券价格计算(2)几种舍入算法.mp4! D; w, J8 a; Y0 D2 V
    │  │      9-8 总金额、优惠金额与最终金额的计算.mp4
    │  │      10-1 提交订单(1)获取用户所选择的收货地址.mp4
    │  │      10-2 向服务器提交订单并取得订单ID号.mp4
    │  │      10-3 订单下单失败的逻辑处理.mp4' |9 a7 D" \2 c) s" w
    │  │      10-4 下单后移除购物车商品.mp4
    │  │      10-5 前端拉起微信支付与支付测试.mp44 t8 ]7 Z5 N- m! K
    │  │      10-6 订单防重的相关细节设计.mp44 A6 @3 ?2 E* j9 G0 S: e; H1 e
    │  │      10-7 支付成功和失败的逻辑判断.mp49 p& T4 `7 k; U& E9 F* A2 E
    │  │      10-8 支付成功和失败的跳转逻辑.mp4
    │  │      11-1 立即购买的逻辑.mp4& c5 W2 F6 C- J, I' I
    │  │      11-2 我的页面结构分析.mp47 g% r9 [( G5 U3 d  h
    │  │      11-3 LinUI Avatar组件显示微信头像和昵称.mp4
    │  │      11-4 全新的获取用户微信信息机制解析.mp4( g; s$ X$ m* @) i4 `
    │  │      11-5 l-badge徽章组件.mp46 @" K. Y3 r1 k7 y. ^7 e. E0 y
    │  │      11-6 获取各状态订单的数量.mp45 M- w' t' f: z0 S6 s; o
    │  │      11-7 LinUI List组件的应用.mp4
    │  │      12-1 小程序结束语.mp4
    │  │      
    │  └─资料
    │          sleeve-master.zip2 A4 ?" N9 c. R* d& Y) }9 x% r
    │          8 T. ^) E- s( s2 ]
    ├─阶段2:Java与SpringBoot部分+ M( W" E1 @; i$ i9 ^
    │  ├─08.初识SpringBoot2 e# \4 \; M7 O) r2 @9 q
    │  │      1-1 第二阶段开篇词.mp4; a$ w6 X( L; D
    │  │      1-2 java web框架的发展历史.mp4
    │  │      1-3 SpringBoot与面向抽象编程.mp4
    │  │      1-4 第二阶段第一次作业:理解IOC与DI(四个要求).mp4
    │  │      2-1 完全搞懂SpringBoot版本号(主、次、增量、发布).mp4' V7 U& R2 K/ m+ j, I- k
    │  │      2-2 JDK版本的选择与安装.mp43 T# S$ j  g1 o" \" m
    │  │      2-3 Java的2种构建工具:Maven与Gradle.mp43 S, X; `, h; q9 ~6 s
    │  │      2-4 Maven的作用与安装.mp4
    │  │      2-5 开发工具使用Idea和三种创建SpringBoot项目的方式.mp48 p' P* a& n* t: Q% S- o, s
    │  │      2-6 使用Spring Initializr初始化SpringBoot应用程序.mp4
    │  │      2-7 SpringBoot应用程序的基本目录结构.mp4# \: D. x- u( I2 u
    │  │      2-8 POM文件解析与Maven版本踩坑.mp4
    │  │      3-1 运行我的第一个SpringBoot应用.mp4
    │  │      3-2 新建API包与控制器.mp47 ^6 u  K" x% W4 N
    │  │      3-3 使用ResponseBody注解代替ServletResponse.mp4+ d8 \; V* I5 ]7 a# [
    │  │      3-4 SpringBoot热重启配置.mp4' @" x. u1 a, u! j% Z+ ^5 }/ L
    │  │      3-5 几个常用构建RESTFulAPI的注解.mp4: H: t" ^5 ?$ W
    │  │      3-6 @RestController注解.mp4
    │  │      
    │  ├─09.Java编程思想深度理论知识
    │  │      1-1 Java是一个笨重的垃圾语言吗?.mp4
    │  │      1-2 SpringBoot为什么有这么多复杂的概念?.mp41 Y8 L2 v$ t: X- Y0 _$ v- B2 v3 [
    │  │      1-3 开闭原则OCP.mp4
    │  │      1-4 为什么要面向抽象编程.mp4  Z6 J. n+ f! N& I
    │  │      1-5 面向抽象的常见手段:interface、工厂模式与IOC和DI.mp4
    │  │      2-1 英雄联盟小游戏的最简单版本.mp44 R/ }" f" ?' ]4 L
    │  │      2-2 第一个烂大街的代码风格.mp4
    │  │      2-3 使用Interface的抽象风格.mp4
    │  │      2-4 interface统一方法调用,但无法统一实例化.mp4
    │  │      2-5 抽象的难点在于new对象.mp45 H, p5 O. N2 r8 P
    │  │      2-6 只有一段代码不负责对象实例化,才能保持稳定.mp4
    │  │      2-7 工厂模式分离对象实例化.mp4
    │  │      2-8 稳定性是相对的,我们需要将不稳定的代码隔离.mp4
    │  │      2-9 变化是导致代码不稳定的本质原因.mp4* _$ [, Y* V+ E' |
    │  │      2-10 通过反射机制消除所有的变化.mp4
    │  │      3-1 工厂模式+反射并不是IOC和DI.mp4
    │  │      3-2 配置文件的变化是允许的,并不违反OCP.mp4* |/ F4 Q8 m1 F
    │  │      3-3 IOC和DI的雏形.mp4, f; C8 W8 [# z% Y. p
    │  │      3-4 IOC的示例.mp4
    │  │      3-5 为什么引入容器后可以让系统变得稳定?.mp4: x8 n: u* X3 _( S4 w
    │  │      3-6 DIP依赖倒置到底是什么.mp42 ~4 K% m% z0 @" X: i/ ^
    │  │      3-7 DI依赖注入的意义.mp43 {4 x; }! v. v  a  G
    │  │      3-8 依赖注入的原理.mp4  k* G; ^7 X0 R$ `! h6 f7 o) q0 d
    │  │      3-9 容器的作用是在装配对象.mp4  |* G6 j0 ?5 j  n& v- _* ^* |
    │  │      3-10 从DI的角度理解IOC.mp4
    │  │      3-11 IOC的终极奥义.mp4' ^1 b4 h% I2 h! x  [0 c: ^
    │  │      : d' \% w6 v: C. b. Y# p$ i
    │  ├─10.Spring与SpringBoot理论篇- h/ t- @! r" I$ {
    │  │      1-1 SpringBoot理论篇导学.mp4
    │  │      1-2  Spring、SpringMVC与SpringBoot的关系与区别.mp43 Z! A/ W. J' X7 k1 @- D
    │  │      1-3 什么是SpringBoot核心优势-自动配置(作业).mp45 _, H5 m0 s5 c: B8 W" ?
    │  │      1-4 把握Spring的几个重要目的,提升学习效率.mp4! r7 i, T3 `: Y" C' p3 R5 f' u
    │  │      2-1 SpringBoot最基础的编程模式@Component+@Autowired.mp4, `3 `0 x- ]  ^9 w  B8 h
    │  │      2-2 Stereotype Annotations 模式注解.mp4
    │  │      2-3 Spring的实例化和依赖注入时机与延迟实例化.mp43 w1 L7 I2 r; E9 N
    │  │      2-4 成员变量注入、Setter注入与构造注入.mp46 F% p5 [/ w; l. d
    │  │      2-5 一个接口多个实现类的处理.mp4
    │  │      2-6 @Autowired按类型注入.mp4
    │  │      2-7 被动推断注入与主动选择注入.mp4% o& l) l9 [3 g8 B9 I' R" r
    │  │      2-8 应对的变化的两种方案(策略模式与属性配置).mp4
    │  │      3-1 @Configuration配置类.mp4
    │  │      3-2 @Configuration表面意义上的解释.mp4
    │  │      3-3 @Configuration是用来替换bean的xml配置.mp4
    │  │      3-4 变化最终要被隔离到配置文件中.mp4
    │  │      3-5 @Configuation和@Bean的真实作用.mp4' @9 P% E9 F2 j( d
    │  │      3-6 深入剖析@Configuration的意义.mp4( B) ?) k! D- X* u. J
    │  │      3-7 @Configuration是一种编程模式.mp49 ^* S, n: Y9 I
    │  │      , B' J/ B) ^0 G" h5 ~/ P6 \) G. p8 p
    │  ├─11.sprinboot的条件注解与配置7 W/ [% `  x0 @$ d7 R& x
    │  │      1-1 Bean名称与几种注入方式补遗.mp4
    │  │      1-2 @ComponentScan包扫描机制.mp43 W% f: q3 f: [% y& x7 k. T& o
    │  │      1-3 策略模式的几种实现方案.mp4! `2 g5 O8 z3 K$ v$ q3 ~
    │  │      1-4 条件组件@Conditional的基本用法.mp4
    │  │      1-5 Condition接口的ConditionContext参数.mp4# M( a. J  N% V
    │  │      1-6 成品条件组件@ConditionalOnProperty.mp4
    │  │      1-7 @ConditionalOnBean条件注解.mp4/ B: z' Z3 [" \9 |, Q9 `
    │  │      2-1 SpringBoot自动配置原理导学.mp4# Z0 @* `1 h1 J7 d$ ]+ ]; I
    │  │      2-2 @SpringBootApplication注解的理解.mp4
    │  │      2-3 SpringBoot自动装配原理解析.mp4( Z# }3 |  _( y4 Q- N4 [) P( C3 d
    │  │      2-4 自己编写一个Spring应用启动类.mp4
    │  │      2-5 @Import 的两种用法.mp4
    │  │      2-6 SpringBoot自动装配的spring.factories文件.mp4
    │  │      2-7 Java SPI 机制解析.mp4
    │  │      2-8 深度理论课总结.mp4
    │  │      - I* d" `. B* x9 A
    │  ├─12.Java异常深度剖析
    │  │      1-1 全局异常处理机制导学.mp4
    │  │      1-2 如何统一捕获异常?.mp4! w; K' g- C+ @, S4 u! \) w
    │  │      1-3 异常分类Error、CheckedException与RunTimeException.mp46 a1 s) d* D( }% \" S/ D' @6 W
    │  │      1-4 彻底理解CheckedException和RuntimeException.mp4
    │  │      1-5 自定义HTTPException异常类.mp4+ U( _5 V7 i8 D, ?/ ~
    │  │      1-6 同时监听Exception和HTTPException.mp4
    │  │      1-7 异常的深度思考和理解.mp45 ^, c1 ?0 V0 j
    │  │      1-8 在@ExceptionHandler中返回Unify消息.mp4
    │  │      2-1 使用注解修改HTTPStatus.mp4, K  _' E/ a* N8 _
    │  │      2-2 处理自定义HTTPException.mp4
    │  │      2-3 为什么需要将异常信息写在配置文件里.mp4
    │  │      2-4 自定义配置类管理配置文件.mp4
    │  │      2-5 HTTPException的意义.mp49 P0 [* |# r7 x$ T: J" Z4 R
    │  │      2-6 SpringBoot主动发现机制和思想.mp4
    │  │      2-7 根据目录结构自动生成路由前缀.mp4  a; M; V# W5 b: e3 ]$ ?- h
    │  │      2-8 自定义RequestMappingInfo.mp4
    │  │      2-9 通过接口的形式发现类.mp47 K6 [$ C" _9 M' F2 u: k( l8 `: F
    │  │      2-10 完成自定义PrefixUrl.mp4% e1 R2 ]6 `# T, ^. `
    │  │      7 s8 Z/ R; J, c+ x
    │  ├─13.参数校验机制与LomBok工具集的使用9 i  b6 \8 a% Q3 P, Q; Q+ I
    │  │      1-1 修改Properties文件的编码解决乱码问题.mp4: R5 h) V# Q$ J& r6 V, G2 B  w+ s
    │  │      1-2 参数校验机制导学.mp4
    │  │      1-3 获取URL路径中的参数和查询茶树.mp4* j* E) ]5 p) r" \% o1 I  [/ m" |
    │  │      1-4 数据传输对象DTO的接收.mp4
    │  │      1-5 LomBok的基本使用方式.mp4
    │  │      1-6 LomBok中关于构造函数的几个注解.mp4
    │  │      1-7 @Builder构造器模式的使用.mp4
    │  │      1-8 JSR-269与Builder模式的序列化.mp4
    │  │      2-1 使用@Validated注解进行基础参数校验.mp4+ `) Y0 j' G9 i7 ?/ a
    │  │      2-2 验证HTTP Body中的参数与级联校验.mp4
    │  │      2-3 补充:@Validated和@Valid注解的关系.mp4/ b# m* X& N$ C8 z( A" }5 O
    │  │      2-4 自定义校验注解.mp4
    │  │      2-5 自定义校验注解的关联类(1).mp40 S) v- }( n  X1 J0 l3 S0 p
    │  │      2-6 获取自定义校验注解的参数.mp4/ K! [5 s; c2 {
    │  │      2-7 捕获DTO类的参数校验异常信息.mp4& H+ b1 ~! w8 R2 I$ ?
    │  │      2-8 捕获Url和查询参数的异常.mp4
    │  │      
    │  ├─14.项目分层设计与JPA技术" |, b" ?: x5 v! S) q6 m" @
    │  │      1-1 JPA导学(新年快乐).mp4
    │  │      1-2 Service业务逻辑层(服务层)的建立.mp47 ]% V) f3 m4 v# s. ?' V1 J
    │  │      1-3 层与层之间是否一定要用interface建立关联.mp4
    │  │      1-4 创建数据表的3种主要方式.mp4
    │  │      1-5 新建数据库和数据表.mp4) ?! y8 D" c9 `/ l/ Y( K+ ^
    │  │      1-6 yml格式的配置文件.mp4
    │  │      1-7 多环境配置文件(profiles)以及启用方式.mp4
    │  │      2-1 mysql数据库连接配置.mp4
    │  │      2-2 Maven依赖无法安装的几个解决方案.mp4
    │  │      2-3 使用ORM的方式生成数据表.mp4
    │  │      2-4 常用实体类注解与ORM生成表的优劣势浅谈.mp42 M% n; H3 c, e" C4 Q) B7 }
    │  │      2-5 多对多关系的第三张表探讨(重点).mp4: R' j! y5 a- K5 x
    │  │      2-6 数据库设计步骤及数据库优化原则.mp4
    │  │      2-7 实体与实体之间一对多关系配置@oneToMany.mp4& Z8 m& \9 X% T1 }
    │  │      2-8 指定外键字段与是否需要物理外键.mp4
    │  │      3-1 JPA的Repository定义.mp4
    │  │      3-2 执行Repository查询语句.mp4( K6 ~4 N  e# z1 w
    │  │      3-3 懒加载和急加载.mp4: F4 u( w0 P! I, g6 O' q
    │  │      3-4 双向一对多配置.mp46 Z8 d5 M6 f& X/ |- C4 w' P" {) ^3 |
    │  │      3-5 双向一对多的外键配置问题.mp4- }2 Z, C$ {" M$ r# \- V; f
    │  │      3-6 多对多关系配置@ManyToMany.mp4
    │  │      3-7 单向多对多关系配置与常见问题.mp4
    │  │      3-8 双向多对多配置.mp4( m% p3 r# j  D- {
    │  │      3-9 如何禁止JPA生成物理外键.mp4
    │  │      2 s; a; t. c. ~5 N0 }. ?: ~; B# z
    │  ├─15.ORM的概念与思维4 M- O9 S5 r  ^! H
    │  │      1-1 谈谈ORM的概念、意义与常见误区问题.mp45 w, r: O. C' I% P9 ?& b; u. b
    │  │      1-2 数据库表数据的设计、导入与导出.mp4
    │  │      1-3 项目开发顺序.mp44 K/ D. `5 E$ o, D0 v
    │  │      1-4 导入项目的SQL文件.mp4) @, f8 ^% m) E- v# ~" ]+ ?6 t' l
    │  │      1-5 逆向生成Entity.mp4/ ~! o9 C3 M. I7 ~
    │  │      1-6 简化实体字段.mp4) v2 ^4 Q& h' z1 `
    │  │      1-7 三个时间字段的说明(create update delete).mp4; |$ K* T8 X& u& o2 E
    │  │      1-8 提取BaseEntity基类.mp4& g6 B; l/ t" e
    │  │      2-1 访问Banner接口.mp4
    │  │      2-2 @MappedSuperClass的作用.mp4
    │  │      2-3 Jaskson序列化库的重要配置(SNAKE_CASE、时间戳).mp4. n8 Z0 Z2 `8 Q& l
    │  │      2-4 Theme接口开发.mp4
    │  │      2-5 Theme表设计.mp4' e( R! Y+ `- E; e
    │  │      2-6 表的列行转换思维.mp4* h. Y& V3 {+ ?
    │  │      2-7 SPU表设计分析.mp4
    │  │      2-8 静态资源托管的几种方式.mp4  ^, s+ Y& A, n" z8 K/ |6 W
    │  │      2-9 SpringBoot访问静态资源.mp4
    │  │      3-1 为什么需要提供多个SPU数据的接口?.mp4& C  |; q- Y3 r4 l$ x3 g7 l
    │  │      3-2 Spu实体映射(增补).mp4* x( l* f: X" }& i1 P
    │  │      3-3 Spu详情数据查询.mp41 B9 W! [3 J* d$ g
    │  │      3-4 查询列表类数据.mp42 Y+ q8 w0 V" `. u
    │  │      3-5 延迟思考,逐层深入.mp47 O/ p4 m) T3 P1 a
    │  │      3-6 数据库多层关系设计思考与冗余字段设计原则.mp49 E5 M4 U; u$ Q6 L
    │  │      3-7 导航关系的配置原则(需要时才配置).mp4
    │  │      3-8 Latest接口SQL查询分析.mp4/ N" C' N1 W" D( N$ z2 j
    │  │      3-9 VO视图层对象的概念和意义.mp4
    │  │      
    │  ├─16.JPA的多种查询规则- O* S8 N" P2 i0 {
    │  │      1-1 DozerBeanMapper拷贝属性.mp4
    │  │      1-10 JPA接口命名规则.mp4
    │  │      1-2 PageRequest.Of方法进行分页参数构建.mp4
    │  │      1-3 BO对象与分页参数转换.mp4% h' n3 }* o. i0 T& ^8 H3 z
    │  │      1-4 Paging分页对象的构建.mp4
    │  │      1-5 PagingDozer对象的封装.mp4# E# o! ?* a7 {/ ^- ~& i, l
    │  │      1-6 Paging对象测试与Java的伪泛型缺陷.mp4
    │  │      1-7 分类表的常见结构设计.mp4
    │  │      1-8 无限级分类的数据表达方式(自定义协议路径).mp44 z  ~, K9 x, a/ L9 {
    │  │      1-9 分类冗余字段设计.mp4
    │  │      2-1 Java Bean中可不可以写业务逻辑.mp4
    │  │      2-2 jSR303校验的message模板配置.mp4
    │  │      2-3 规格、规格名与规格值的设计(上).mp4
    │  │      2-4 规格、规格名和规格值的设计(中).mp4
    │  │      2-5 规格、规格名和规格值的设计(下).mp4. Q6 X1 o1 V( e& r: q
    │  │      3-1 通用泛型映射方案(1).mp4- h6 [5 W# x1 d. B0 h* P
    │  │      3-2 通用泛型类映射方案(2).mp4
    │  │      3-3 单体JSON对象的映射处理(1).mp4
    │  │      3-4 单体JSON到Map的映射(2).mp42 d/ y/ W+ g- ]& I4 X
    │  │      3-5 单体JSON与Map的映射(3).mp4
    │  │      3-6 数组类型JSON与List的映射(4).mp4
    │  │      3-7 谈Java类的内聚性、方法外置的问题.mp4
    │  │      6 Z2 o: i8 y+ O, h4 e" f: E0 w
    │  ├─17.令牌与权限
    │  │      1-1 Java的泛型是编译期间的而非运行期间.mp48 Y' m8 e1 `: \2 U$ o  S
    │  │      1-2 通用泛型类与强类型转换 (1).mp4
    │  │      1-3 通用泛型类与List的转换(2).mp42 i! g0 G7 F9 U! e5 k
    │  │      1-4 更简单的泛型反序列化方法(3).mp4$ ~2 B6 M* k) p+ E5 P# u8 b
    │  │      1-5 方案调整与优化.mp41 X3 P) m0 I" k3 \* Y; X
    │  │      1-6 @Where条件查询.mp4
    │  │      2-1 Category分类业务分析.mp4
    │  │      2-2 Category接口数据结构分析与探讨.mp4
    │  │      2-3 循环序列化的解决方案.mp4
    │  │      2-4 Java的Stream与Method Reference应用.mp4
    │  │      2-5 GridCategory接口.mp4- N$ e$ j$ f2 e& T+ q) K; c
    │  │      2-6 Theme业务及模板概念分析.mp49 {, w0 }1 l6 g& h# Q; O& p3 m. h
    │  │      2-7 自定义JPQL替代JPA命名方法.mp4
    │  │      3-1 Optional的意义与价值.mp4
    │  │      3-2 SpringBoot中的单元测试.mp4
    │  │      3-3 Optional的精髓.mp4& s4 v# Y  I" z
    │  │      3-4 Optional的经典使用场景、Consumer与Supplier.mp4" r1 E5 t& {/ ^  k9 x
    │  │      3-5 Optional的链式操作与Function、Predicate、Filter.mp4( N5 p- l$ P5 N- W, F
    │  │      4-1 权限、分组与用户的关系探讨.mp4
    │  │      4-2 @ScopeLevel注解的机制.mp4  j$ b7 r, s" `, o
    │  │      4-3 令牌与微信登录机制.mp4. }3 _8 a+ B4 B" [1 l: X! M
    │  │      4-4 无感知二次登陆问题探讨.mp43 J( `. o% D  T6 K5 w+ K
    │  │      4-5 getToken接口.mp42 O) |% _6 y6 Z# t9 \: i
    │  │      4-6 TokenPassword校验注解.mp40 B9 ?. p0 x( B' B# Y/ M6 p0 ~
    │  │      4-7 错误消息的模板参数.mp4
    │  │      4-8 微信验证服务.mp4
    │  │      4-9 Sleeve-Mini小程序测试工具准备.mp42 e' R* f: j0 j6 q8 ]4 z8 I+ t
    │  │      5-1 获取用户OpenId.mp4; X; Y6 o# G7 a
    │  │      5-2 JWT令牌全流程解析.mp4$ Y( m- w5 \& Z. O
    │  │      5-3 User实体分析与常见用户系统设计.mp4
    │  │      5-4 User对象的写入.mp4
    │  │      5-5 Auth0的JWT.mp4' p/ E$ l# X" Z, Y; X# J$ C$ l
    │  │      5-6 Auth0生成JWT令牌.mp4
    │  │      5-7 令牌生成测试.mp4
    │  │      6-1 JWT令牌的校验.mp49 J3 g5 i* T" H; Q+ E/ D/ e  s; P
    │  │      6-2 Filter、Interceptor、AOP机制的区别于联系.mp4) Z9 h% X. H) U. o. \* z" Y
    │  │      6-3 PermissionInterceptor的逻辑分析.mp49 a& a; }- A5 M9 c1 L
    │  │      6-4 获取Bearer Token.mp4  P; F0 x% ~8 [- X" T2 A
    │  │      6-5 hasPermisson权限核查.mp40 ~) L- t/ K* F7 Y- S8 s
    │  │      6-6 注册Interceptor.mp4+ w" z# e4 `. S
    │  │      6-7 数组越界问题(修复).mp4
    │  │      6-8 VerifyToken接口.mp4) H1 Q2 l. w. d. T
    │  │      * A! ?+ f3 W( ^2 d  B) S
    │  ├─18+订单、延迟支付与库存归还
    │  │      1-1 订单校验(12)BO的概念与意义.mp4
    │  │      1-2 订单校验(13)全场券的计算.mp4
    │  │      1-3 订单校验(14)reduce函数的巧妙应用.mp4
    │  │      1-4 订单校验(15)完成优惠券最终校验.mp4
    │  │      1-5 订单校验(16)OrderChecker对象.mp4
    │  │      1-6 订单校验(17)OrderChecker校验项分析.mp46 Z/ M1 h" W! x6 ^7 g% \3 L. j+ W
    │  │      1-7 订单校验(18)最大购买数量、售罄、超卖检验.mp4
    │  │      1-8 订单校验(19)如何让Spring调用Bean的有参构造函数?.mp4- a8 f% a9 t) y" [, l' `; }% u0 k
    │  │      1-9 订单校验(20)校验CouponChecker.mp4
    │  │      1-10 订单校验(21)OrderChecker作为数据提供者.mp4
    │  │      1-11 订单校验(22)订单校验总结与探讨.mp4& U6 I  Q$ E5 h% |& e
    │  │      2-1 下单逻辑(1)谈订单号的特点与注意事项.mp4
    │  │      2-2 下单逻辑(2)创建订单.mp4  ^. r5 J1 A% ?4 ?
    │  │      2-3 下单逻辑(3)订单的五种状态.mp47 \4 D/ L$ k6 H. J* p" K
    │  │      3-1 库存扣减(1)乱序思维.mp4
    │  │      3-2 库存扣减(2)不能SQL1查询SQL2减除库存.mp4! W' G) Y$ H* \" X5 I$ r, s
    │  │      3-3 库存扣减(3)Java锁、悲观锁的解决方案探讨.mp4, j* d1 |, U% k6 e7 Z+ O
    │  │      3-4 库存扣减(4)乐观锁的应用.mp4
    │  │      3-5 优惠券核销(1).mp4& g& g" J! ]" }
    │  │      3-6 优惠券核销(2).mp42 B. s- _8 @3 @- b( h! ?
    │  │      3-7 测试下单.mp4
    │  │      4-1 订单状态查询(1).mp49 F6 v6 h3 Y- i2 {6 r3 H" w7 e
    │  │      4-2 订单状态查询(2)订单支付过期状态的不可信.mp4
    │  │      4-3 订单状态查询(3)追加PlacedTime下单时间和ExpiredTime过期时间.mp44 Y) K2 s; ^! T4 t% I7 F
    │  │      4-4 订单状态(4)查询待支付订单.mp4
    │  │      4-5 订单状态查询(5)订单状态查询与订单详情查询.mp4
    │  │      % W2 F1 z- X9 w1 B1 r8 ]- }0 y
    │  ├─18.优惠券 、订单与支付系统; \* [+ k# T, }8 n2 M# f
    │  │      1-1 优惠券系统设计分析.mp4: H; y) h  T4 k9 u! j
    │  │      1-2 Coupon优惠券实体设计.mp46 m  w' n, y3 Z0 h: _9 R9 q
    │  │      1-3 带有实际业务意义的多对多的第三张表.mp4
    │  │      1-4 优惠券的适用范围限定.mp4- j& T! Z) q) k
    │  │      1-5 有效期优惠券的设计思路.mp4* ~/ |" E% i) i" J' {% c- T
    │  │      1-6 多对多向一对多的转化思维-.mp4
    │  │      1-7 多级属性精简技巧.mp43 s9 j# ]% n+ W; P
    │  │      2-1 根据分类查询所属优惠券接口分析.mp4+ \! a* M) m0 c" ]$ o/ b
    │  │      2-2 原生SQL的多对多查询.mp4
    │  │      2-3 JPQL完成复杂的多表查询.mp4
    │  │      2-4 原生SQL语句剖析与JPQL的对比.mp4
    │  │      2-5 单表查询、Join与JPA的优势_1.mp4( y. J0 _+ n4 `/ t8 `
    │  │      2-6 查询全场券_1.mp4
    │  │      3-1 超权问题.mp4" \; o0 Y4 b# R2 j" ~6 h5 j
    │  │      3-2 LocalUser类的设计.mp4( }  p9 d" F5 c- ^0 K: A
    │  │      3-3 写入LocalUser.mp4
    │  │      3-4 ThreadLocal与线程安全.mp4
    │  │      3-5 ThreadLocal资源释放时机.mp49 R" l) @; x2 H$ l" R. Q& \
    │  │      4-1 用户领取优惠券的细节考虑.mp4/ e7 f& n$ `5 |& y  ?
    │  │      4-2 用户领取优惠券代码编写.mp49 p1 M& q2 d% }( v6 p) [
    │  │      4-3 更新成功、删除成功、创建成功的HttpStatusCode值.mp4
    │  │      4-4 注意注入到容器里的对象是否是同一个对象.mp4- q. J% r. v& h% G  `
    │  │      4-5 异步机制下的数据一致性不一定能100%保证.mp43 I7 |( T7 ^6 z. i: _
    │  │      5-1 定时器的解决方案:主动轮询与被动消息触发.mp4
    │  │      5-2  枚举值向枚举类型转换.mp4- `/ l1 K0 U+ e5 m
    │  │      5-3 不能以状态枚举来作为优惠券过期的唯一判断标准.mp4
    │  │      5-4 获取我可用的优惠券(带分类数据).mp4
    │  │      6-1 Order订单表的数据库设计.mp4
    │  │      6-2 前端提交的Price是不可信的.mp4
    │  │      6-3 订单校验所需要考虑的若干种校验项.mp4
    │  │      6-4 订单校验(1)获取实时的Sku信息.mp4
    │  │      6-5 订单校验(2)构建CouponChecker.mp44 i$ V$ R1 A/ ?
    │  │      6-6 订单校验(3)优惠券过期时间校验.mp4/ d' B' D2 E9 t0 \' f6 [
    │  │      6-7 订单校验(4)满减券计算.mp4
    │  │      6-8 订单校验(5)浮点数价格运算利弊分析.mp4: W+ y8 P* D& V) F4 P. \
    │  │      6-9 订单校验(6)银行家舍去算法.mp4
    │  │      6-10 订单校验(7)RoundingMode模式.mp4
    │  │      6-11 订单校验(8)SpringBoot默认注入单例模式所带来的额问题.mp4# X" }4 Z( ~; S( R: ^0 c+ [3 _
    │  │      6-12 订单校验(9)非SpringBoot托管的Java对象-.mp4
    │  │      6-13 订单校验(10)prototype多例模式的注入方案(ObjectFactory与动态代理).mp4
    │  │      6-14 订单校验(11)价格校验收尾.mp4
    │  │      0 H- u' X8 t7 A( a/ [
    │  └─19.微信支付Redis与RocketMQ
    │          1-1 微信支付流程分析.mp4
    │          1-2 订单过期时间的再次校验.mp4
    │          1-3 订单是否取消的逻辑判断.mp4
    │          1-4 微信支付配置类.mp46 w3 V* E1 b, P& V( ]# X  e& U
    │          1-5 统一下单(预订单)接口参数解析.mp4
    │          1-6 统一下单的常用参数组装.mp44 r* [" P4 t+ B& Y, X6 n
    │          1-7 配置微信支付回调API地址.mp41 U0 J  g. S+ |# O6 n0 [9 ^9 O
    │          1-8 更新订单的PrepayId.mp44 M8 f! {+ i4 i7 m
    │          1-9 微信支付签名计算.mp4  x& N/ ~! H' U
    │          2-1 微信支付回调结果WxNotify接收与处理.mp4
    │          2-2 从流中读取支付回调结果.mp46 k6 ~& A; h7 f, P, L" F0 X% ~
    │          2-3 更新订单状态Unpaid转为Paid.mp4
    │          2-4 订单状态更新的加强判断逻辑.mp4
    │         
    ├─阶段3:Java CMS后台管理系统-后端开发
    │  ├─第20周 Lin CMS入门与MyBatis
    │  │      1-1 为什么每个项目都需要CMS.mp4
    │  │      1-2 CMS动态分配权限是最核心的能力.mp4
    │  │      1-3 优秀的Lin CMS.mp4* I4 L6 x5 |9 Z
    │  │      1-4 LinCMS的前后端分离.mp4" [1 M# _; ^! M, ^6 n3 f" L
    │  │      1-5 下载Lin CMS SpringBoot的Sleeve版本.mp4: M- b! f  A  W3 q
    │  │      2-1 Lin CMS是工程+SDK的开发框架.mp4
    │  │      2-2 导入LinCMS内置数据表.mp4; c& Q( U( o0 s+ G# {
    │  │      2-3 自定义业务的目录组织结构.mp4
    │  │      2-4 LinCMSVue试运行与前后联调.mp4
    │  │      2-5 Lin CMS中的三种数据库机制JPA、MyBatis与MyBatisPlus.mp4( K3 w) d) X# b/ u* I; _
    │  │      3-1 MyBatis的项目目录组织结构.mp4" @4 A; D! k0 r, k
    │  │      3-2 编写第一个MyBatis MapperXML.mp4
    │  │      3-3 Mapper接口与MapperXML的扫描位置.mp4
    │  │      3-4 调整代码目录.mp4
    │  │      3-5 MyBatis的Insert.mp4
    │  │      3-6 MyBatis与JPA的对比.mp4
    │  │      3-7 MyBatis使用注解编写SQL.mp49 H% H/ E$ m) U
    │  │      
    │  ├─第21周 MyBatisPlus入门与进阶- v+ b1 C4 [3 f  U$ w- M* |' f0 v2 N
    │  │      1-1 MyBatisPlus的BaseMapper(同JPA类似).mp4$ X& I2 ~: q. v# M9 q* Q
    │  │      1-2 前端功能预览与简介.mp4
    │  │      1-3 分页参数设置与LinCMS的自定义错误消息.mp4. T. v( r: x; G; e) u; v, [
    │  │      1-4 MyBatisPlus的ServiceImpl.mp4
    │  │      1-5 LinCMS的内置分页器.mp4
    │  │      2-1 @NotBlank与@Length注解配合使用.mp4: J/ _6 \* q2 |$ o( }
    │  │      2-2 Update更新Banner.mp4/ K# m" P; _* T7 D, U2 z8 `0 ?6 k' u
    │  │      2-3 强大的LinCMS内置异常类剖析.mp42 Y- n% k2 C# r2 r6 x& A
    │  │      2-4 浅谈为什么你看不懂源码.mp4
    │  │      2-5 UnifyResponseVO的几种快捷返回对象.mp4* W3 f# o: i' i1 m$ L- r' D/ E
    │  │      2-6 LinCMS中的软删除与物理删除.mp4! D. R( Y8 C$ h; f/ K4 @
    │  │      3-1 从UI交互谈程序员的综合素质.mp4! X" `* M$ }/ s" D/ ]0 U/ v
    │  │      3-2 连表查询的一种方案:单表查询.mp42 i; X$ e+ n" @- z0 ^* S6 n
    │  │      3-3 MyBatisPlus的QueryWrapper.mp4( u4 n4 u- F6 B/ J. [  B* i
    │  │      3-4 BO的作用于意义.mp4) `6 a/ ]# h* t" n
    │  │      3-5 QueryWrapper的lambada写法.mp4( Q! ?, o2 g2 k
    │  │      3-6 灵活的LambadaQueryWrapper.mp4" h/ k5 D; p6 l: Y; v: O
    │  │      4-1 LinCMS版本升级探讨.mp4
    │  │      4-2 升级到LinCMS Sleeve-0.2版本.mp44 M9 Y: l7 l5 Y+ U: f  ]  m
    │  │      4-3 LinCMS 0.2版本概述.mp4) p" M7 J1 C2 D0 m% r
    │  │      4-4 CodeGenerator快速生成模板.mp4
    │  │      4-5 一对多关系的多表是否可复用探讨.mp44 @, j7 |1 j4 w  o; t- D
    │  │      4-6 一对多的删除(级联删除)探讨.mp44 [1 U6 v" `2 c& T% A1 U0 w+ r% O
    │  │      4-7  Create新增数据.mp49 D, m$ t# l& a: x
    │  │      5-1 图片资源与服务器交互全流程解析.mp4
    │  │      5-2 LinCMS文件上传系统解析.mp4
    │  │      5-3 LinCMS内置文件上传系统演示.mp4
    │  │      ' [( e5 X( I8 E$ @% B1 o2 G
    │  ├─第22周 CMS权限、双令牌机制解析* w. ^( W$ d: q3 E
    │  │      1-1 LinCMS权限系统要素.mp4
    │  │      1-2 LinCMS动态权限剖析 (1).mp4! s- Z% q* i9 g0 ?# u0 k! \% ?5 G
    │  │      1-3 LinCMS权限系统机制(2).mp4
    │  │      1-4 LinCMS权限系统(3)接口的元数据信息.mp42 C3 S" r8 |6 X' N0 f
    │  │      1-5 LinCMS权限系统(4)分组权限GroupRequired.mp4
    │  │      1-6 谈字段级别的权限控制方案.mp4
    │  │      2-1 Web开发中的双令牌(access_token和refresh_token).mp4- R$ D# d. a# t2 S0 ], k% x
    │  │      2-2 双令牌(ac_token和re_token)机制全解析.mp4
    │  │      2-3 谈JWT令牌安全性的问题.mp4# B$ C6 P* F. n* J; }" c3 e- ]: e  M
    │  │      2-4 系统日志与行为日志机制解析.mp4& {$ N' o) L# |& C) {: L6 E3 @, a
    │  │      3-1 商品管理操作需求分析.mp4
    │  │      3-2 商品详情数据查询思路分析.mp4
    │  │      3-3 MyBatis实体映射到DO的意义.mp4+ `8 T! o# K* o; J$ u
    │  │      3-4 MyBatis的复杂多表查询分析.mp4
    │  │      3-5 Mybatis联表查询(1).mp4! H/ ~0 L9 Z9 `  {
    │  │      3-6 MyBatis联表查询(2)带入参数与条件.mp4
    │  │      3-7 MyBatis联表查询(3).mp4
    │  │      3-8 MyBatis复杂联表查询(4)ResultMap的意义.mp4( I5 W! s: _0 u: d
    │  │      3-9 MyBatis复杂联查(5)混合1对1与1对多查询.mp4
    │  │      3-10 MyBatis关联查询(6)Collection集合映射.mp4; q* I! e& W+ ^3 l9 U% @, r
    │  │      3-11 MyBatis关联复杂查询(7)自动映射.mp4
    │  │      
    │  └─第23周 MyBatisPlus高级技巧及结束语
    │          1-1 即时搜索的意义.mp4
    │          1-2 一行代码一个接口是如何实现的?.mp4$ h& j& X* \( N2 u& b
    │          1-3 MyBatis多对多查询技巧(1).mp4
    │          1-4 MyBatis多对多表查询技巧(2)善于拆分多对多,简化查询.mp4& j9 P3 w) U' m5 s5 b
    │          1-5 MyBatis多对多查询(3).mp4& l3 n8 c( g9 l" k! t
    │          2-1 MyBatis插入复杂数据(1)分析SPU的录入难点.mp4
    │          2-2 MyBatis插入复杂数据(2).mp4
    │          2-3 MyBatis插入复杂数据(3)基础校验与业务校验.mp4: J* J1 a% M( I, I5 k+ d4 h
    │          2-4 MyBatis复杂新增(4).mp4! A$ D  V; n; O& ?3 c
    │          2-5 MyBatis复杂新增(5)MBP的批量插入saveBatch.mp4) q  P  T; W' n- p7 L
    │          2-6 MyBatis复杂新增(6)测试批量插入.mp4! H% U+ w& ]) z  }+ a
    │          2-7 MyBatis复杂新增(7)批量插入Spu详情数据.mp4
    │          2-8 MyBatis复杂新增(8)直接操作多对多中间表完成新增多对多.mp4* k8 A; `$ S& O4 H8 K+ o
    │          2-9 三阶段尾声.mp44 W# W, E% P* l5 p+ u% k  W4 }
    │         
    ├─阶段4:Vue 构建超好用CMS后台管理系统前端$ ~# E3 f4 V3 x* L
    │  ├─第24周 走进Vue3.0
    │  │      1-1  4阶段Vue3.0更新计划说明.mp4
    │  │      1-2 Vue3.0的变化综述.mp4) b6 w2 G9 f4 }2 X$ t- J1 ^1 p
    │  │      1-3 Vue的一些必备基础与前端开发工程师的基本要求.mp4$ y& N$ W( H, x+ ~9 C
    │  │      1-4 前端发展的4个阶段.mp4
    │  │      1-5 服务端渲染VS前端渲染.mp4  ^1 v8 F+ `: n  L7 {
    │  │      2-1 下载Vue3.0的单文件核心库.mp4. ^% n% Y! P- {; x1 K& {! L2 r
    │  │      2-2 单文件的Vue与2.xVue的Options风格.mp4% o/ T3 W# L& [% m! H) \! z. l/ B
    │  │      2-3 第一个Vue3.0的Demo.mp4
    │  │      2-4 Vue3的初始模型小结.mp49 n" e2 F( u( q) D( K
    │  │      2-5 第一个Vue的指令v-text.mp4; R2 v' e; d& I3 \: S5 j0 `
    │  │      2-6 v-html指令.mp4
    │  │      2-7 v-bind指令用于绑定标签的属性.mp4* [; ]1 V4 g) E
    │  │      2-8 带入JS表达式进行动态计算.mp4" w4 j5 W8 q9 y" s  V
    │  │      2-9 v-on指令监听事件.mp4
    │  │      2-10 条件渲染之v-if和v-show的选择.mp4' v4 t. k: I9 `# S
    │  │      2-11 多项条件渲染.mp4
    │  │      2-12 v-for列表渲染及扩展用法和注意事项.mp4
    │  │      
    │  ├─第25周 Vue3.0中的响应式对象9 C. n  B& l1 r3 e! Y: ~# U9 f
    │  │      1-1 双向数据绑定.mp4
    │  │      1-2 Vue3.0的ref包装响应式对象.mp4% T3 B; ?/ s) s8 w% E3 s
    │  │      1-3 双向数据绑定与响应式对象.mp4
    │  │      1-4 Vue3.0的响应式对象使用场景.mp4
    │  │      2-1 Vue3.0中的watch函数(1).mp4) Z8 U8 w% [- ?
    │  │      2-2 Vue3中的watch函数(2)基础使用范例.mp4; s+ Y) L: {. {3 K
    │  │      2-3 Vue3中watch函数(3)高级用法-监听reactive对象.mp4
    │  │      2-4 Vue3中的watch(4)监听reactive对象下的单个属性.mp4/ S' ]1 s1 ^0 {9 L5 D! R
    │  │      3-1 watch小结与引入computed技术属性.mp4
    │  │      3-2 computed函数的基本用法.mp4
    │  │      3-3 watch、computed和普通JS函数的场景和区别.mp4! m# E- j$ c) \4 ^
    │  │      3-4 computed的set和get方法.mp4
    │  │      
    │  ├─第26周 Vue3.0 中的组件
    │  │      1-1 Vue3.0中的组件如何编写?.mp4  R5 r; Q' g) S  }3 E6 Q; E
    │  │      1-2 Vue4.xCli创建Vue3项目或者使用Vite创建Vue3项目.mp4
    │  │      1-3 一切皆组件.mp4
    │  │      1-4 VueCli应用程序目录结构解析.mp40 B  T+ b, ]# }$ K6 G
    │  │      1-5 Vue里自定义组件的定义与引入.mp41 i' H* V5 i- o0 \# S* y# Z4 n
    │  │      2-1 导入resetcss并显示一张图片.mp4
    │  │      2-2 我的第一个Vue3.0自定义组件.mp4% W4 S* @7 A' i+ M8 T% l# F1 J
    │  │      2-3 Vue组建的一些命名规范参考.mp4' R) _6 i; ^; ^2 Y$ a
    │  │      2-4 如何显示一张assets目录中的图片?.mp4
    │  │      2-5 使用require加载图片.mp4* F& B; L. y7 i  E" R3 Y
    │  │      2-6 Vue3 setup函数在组件中的使用.mp4
    │  │      2-7 props属性传值时需要注意使用v-bind指令确定类型.mp4, C* a% B; k. m. i. Z3 }6 {5 a* g4 @
    │  │      3-1 vue的单向数据流特性.mp4' M# ~1 P# L( n$ [- ~
    │  │      3-2 父组件改变导致子组件的变化.mp4
    │  │      3-3 引用类型的修改导致父组件异常.mp4
    │  │      / m; [, d; X/ [5 m% u0 y
    │  ├─第27周 vue-router与vuex
    │  │      1-1 自定义组件监听原生事件.mp41 g# j! c' d$ S1 `" P
    │  │      1-2 自定义组件的自定义事件与传参.mp46 b, W2 x' G2 W$ o, {: G
    │  │      1-3 认识前端路由的意义.mp44 N1 D: F2 i# @% O  `  k
    │  │      1-4 初识Vue3.0的Router.mp4
    │  │      1-5 自己定义一个detail页面路由.mp4- i* }& H2 S3 ^' E5 W
    │  │      2-1 router-view与router-link.mp4
    │  │      2-2 vue-router编程思想(1).mp4  X  q  y: Q0 W2 u
    │  │      2-3 vue-router编程思想(2)入口组件的规范.mp4
    │  │      2-4 vue-router编程思想(3)router-view监听事件.mp4! P+ F) u  h) ]' l, A( |0 B
    │  │      2-5 vue-router编程思想(4)组件的切换优先考虑路由而不是条件渲染.mp41 J2 z. j$ y! K& }9 O$ n6 I
    │  │      2-6 默认情况下不能跨父组件通信.mp4
    │  │      3-1 嵌套路由(1).mp4/ {( K! }$ j2 c' S
    │  │      3-2 嵌套路由(2).mp4
    │  │      3-3 多页面跳转change-view.mp47 `) r9 h0 U6 \9 h# `6 ?" z
    │  │      3-4 Vue3中如何获取路由参数.mp4/ g+ E9 e* E' N" X" s" a$ e" h- [; S
    │  │      3-5 Vue3中的路由名称与统一跳转页面逻辑.mp4) q  V0 ]4 D1 M& U( m) w! e( l9 H
    │  │      4-1 为什么需要Vuex全局状态管理.mp47 t7 F$ p6 v( S
    │  │      4-2 定义Vuex的全局变量.mp4; Q% S9 \( j' r  ^3 B" D) Z
    │  │      4-3 Vuex改变全局状态变量并传参的3种方式.mp4* D, b. r& {* q! H; v; h
    │  │      4-4 计算属性和监听器在Vuex状态改变时的应用.mp4# l3 O2 I5 g# X
    │  │      4-5 利用全局状态管理变量进行路由切换.mp4
    │  │      
    │  ├─第28周 动态组件与Vuex全局状态管理* ]; M9 D, Q5 g0 }
    │  │      1-1 动态组件(1)总结Vue中几种切换视图组件的方案.mp4
    │  │      1-2 动态组件(2)初识动态组件.mp4" L& Q3 n' q. h/ L+ f; k3 l. Q
    │  │      1-3 使用keep-alive缓存组件状态.mp4" @- T3 v% Y3 W5 d$ a0 s" M
    │  │      2-1 为什么需要Vuex全局状态管理.mp4
    │  │      2-2 定义Vuex的全局变量.mp4
    │  │      2-3 Vuex改变全局状态变量并传参的3种方式.mp4
    │  │      2-4 计算属性和监听器在Vuex状态改变时的应用.mp4$ W. O( T4 I6 C
    │  │      2-5 利用全局状态管理变量进行路由切换.mp4/ `' f# M, ?% |# `3 S6 o* e# h! D: E
    │  │      
    │  ├─第29周 CMS电商管理系统前端搭建. e" R; Z' ?2 w* n
    │  │      1-1 实战LinCMSVue介绍.mp4. h! x6 ^& e  x; N% R
    │  │      1-2 实战的准备工作.mp4
    │  │      1-3 下载LinCMSVue并前后端运行联调.mp4- v  g# e+ \8 c) K. j6 h& M2 Q
    │  │      1-4 权限、角色与分组的关系.mp4& R' M8 J2 j  ]) p6 l" V
    │  │      1-5 字段级别的细粒度权限探讨.mp4: }2 f! R7 b) v, A! ^; `- ^
    │  │      2-1 舞台、导航栏、状态栏与reuse-tab.mp42 P( b, ^( {/ @! e: N, M# W1 u. ~
    │  │      2-2 LinCMS内置前端菜单与路由配置基础.mp4
    │  │      2-3 LinCMS舞台的搭建与配置.mp4
    │  │      2-4 LinCMS的一些重要全局配置.mp4  L/ Q$ a7 x3 b2 ~/ H8 E5 J
    │  │      3-1 第一个舞台的开发-Banner舞台.mp47 v4 g* g. J; L5 q3 Y
    │  │      3-2 第一个elementui的组件-table组件的应用.mp4
    │  │      3-3 Table组件的基本属性介绍.mp4
    │  │      3-4 Vue中的业务模型Model的应用.mp4% K- d" `1 T/ d
    │  │      3-5 使用LinCMSVue内置的axios请求API接口.mp4
    │  │      3-6 自定义表格列的内容-显示图片.mp4
    │  │      3-7 CSS预处理语言SCSS、LESS介绍.mp4
    │  │      3-8 引用LinCMSVue内置的主题色变量.mp42 o8 ]3 v4 S0 n$ i+ ^- w% I
    │  │      3-9 表格如何做才好看?.mp4
    │  │      3-10 el表格的悬浮ToolTip与一些设计原则.mp49 e/ c/ W8 m6 X1 s  r
    │  │      4-1 Banner详情页面的跳转.mp4/ x0 F9 c. I6 y" n4 X2 r+ O/ z( s
    │  │      4-2 el的form表达与input输入.mp4
    │  │      4-3 返回图标的制作与细节处理.mp4
    │  │      4-4 通过自定义事件实现返回.mp4
    │  │      4-5 v-permisson指令进行前端权限控制.mp4: l& R8 G% `' U1 `  A: u( z! h
    │  │      4-6 Vue组件的属性与获取BannerID.mp4: M7 D( A1 s1 P7 L& n
    │  │      4-7 在Form表单中展示服务器数据.mp4% Q' M  v' p4 {  q
    │  │      4-8 获取Form表单修改后的数据.mp4
    │  │      
    │  └─第30周 三端联调,全栈最后一公里" L2 S/ g+ N8 Q
    │          1-1 内置upload-imgs多图上传组件(1).mp4* N5 Y% H; `5 e: F  v
    │          1-2 多图上传图片上传流程(2).mp42 o2 o8 _! x8 t) z4 j( I
    │          1-3 如何获取upload-imgs的返回值?通过vue组件的ref来获取.mp4
    │          1-4 向服务器提交数据与更新成功通知.mp4! ?7 U" M  d; D7 y3 Z0 e; |9 m
    │          1-5 删除按钮未显示及空图片报错的bug的修正.mp4
    │          1-6 this.$confirm全局消息框的使用逻辑.mp4
    │          1-7 删除数据的逻辑处理.mp4
    │         
    └─阶段5:课件资料/ e8 ~. c, G9 s8 r3 D- y9 P/ ~6 h
        ├─APPKEY
        │      APPKEY.txt1 Z5 x9 g6 B1 I, l
        │      data.zip
        │      wxshop.rar
        │      简单接口搭建教程.7z
        │      : b) A0 {1 d: m6 K3 g; F
        ├─git
        │      deep-forest-master.zip
        │      missyou-master.zip! Q$ N! E- Q  F; u" a! ^
        │      Play-Algorithms-and-Data-Structures-master.zip9 F% D4 i; Q8 Y9 [/ c8 K* j
        │      sleeve-master.zip+ [: [8 T" _' ?( L. M4 I. Z
        │      sleeve-mini-test-master.zip
        │      sparrow-master.zip2 @8 B! A; ]. H6 S. O/ {2 Y
        │      & @* p+ [' v9 X
        └─资料
                7七月的风袖-sketch.psd
                app.json
                Java 8实战.pdf; W* \: l! K1 _
                Java核心技术 卷1 基础知识 原书第10版.pdf
                Java核心技术 卷2 高级特性 原书第10版.pdf
                lin-ui-ts.rar
                LunacySetup.exe
                MaxHeapDemo.zip
                navicat112_premium_cs_x64.exe: W& B! ?- a8 f, N3 X
                navicat12112pre.zip
                navicatpre1212500.zip* @- d* U8 r) r
                PatchNavicat.exe
                sku.gif: o! L0 Z5 ]8 L2 ~" m
                sleeve-master.zip
                wecharCode.jar
                字节面经.md
                研发笔试题目-V5.0.docx
                说明.txt: }" H9 W) Y# H│  课表.pdf# }, S+ I! ?8 a' B2 A! o
    │  7 S& c9 w+ s8 z) L" J
    ├─阶段1:小程序高级电商前端- s4 x1 o! a+ r  r6 }: j
    │  ├─01.走进Web全栈工程师
    │  │      1-1 Java全栈序章.mp4
    │  │      1-2 长期课程规划与前置要求.mp40 Q3 G) a; Q1 P, ~- F$ B/ ?: ]6 M
    │  │      1-3 appkey申请、课程免费补充资料.mp4
    │  │      1-4 临时补充:关于appkey的申请(重要).mp4+ T6 d8 h3 A5 N- n  p$ |
    │  │      2-1 第一阶段第一次作业(风袖细节分析).mp4
    │  │      2-2 小程序注册与新建项目.mp4
    │  │      2-3 开发工具推荐(Vscode或者WebStorm).mp40 z3 u, C7 \; H6 ^; W
    │  │      2-4 《风袖》首页布局详尽分析.mp4+ C$ \# Y8 S' q8 }
    │  │      2-5 第一阶段第二次作业(LinUI 瀑布流练习).mp4
    │  │      2-6 真实的项目必须是动态的、CMS可控的.mp4" y8 p7 {: H% W6 e
    │  │      2-7 WebStorm开发小程序必备设置.mp4
    │  │      2-8 调用服务端API获取数据.mp4
    │  │      2-9 小程序开发前必备配置.mp4* ^4 R5 _6 K0 y, k& y/ J* s
    │  │      3-1 配置文件与第一次调用服务端API.mp4
    │  │      3-2 业务对象的重要性.mp4
    │  │      3-3 封装HTTP请求.mp41 u- F7 y/ w/ P+ O# `
    │  │      3-4 小程序中使用async和await的难点分析.mp4% f. C0 e+ d, M$ L& Y) X* V
    │  │      3-5 使用LinUI Promisic让小程序内置API支持Promise.mp4, I7 E- w: o0 G" |
    │  │      3-6 将回调函数全部替换为async和await.mp4
    │  │      3-7 获取banner数据.mp4' l4 k/ v2 F- u1 Q% P; x( Q8 ?7 a
    │  │      3-8 Banner轮播图实现与插槽的基本概念.mp4
    │  │      3-9 npm的semver语法规则.mp4/ ^8 z1 ?# ^; _
    │  │      3-10 Lin UI安装、主题色配置与按需加载.mp4- C6 h7 T8 }3 G8 a  P8 [
    │  │      4-1 LinUI Grid组件构建分类六宫格 (上).mp4! A5 H2 y% a" r: V( Y
    │  │      4-2 LinUI Grid构建分类六宫格(中).mp45 Q( R1 q3 |6 I0 e3 B# ~( X: s
    │  │      4-3 LinUI Grid构建分类六宫格 (下).mp4+ I% D; Z' |* C0 @& ?1 F
    │  │      4-4 组件设计与LinUI使用的几个非常重要的原则.mp4
    │  │      4-5 如果没有明确理由,不要固定高和宽.mp47 t* r0 j2 q# y* @4 ?: z
    │  │      
    │  ├─02.Lin UI组件库的引入与编程原则
    │  │      1-1 优惠券的一些基本概念.mp4
    │  │      1-2 优惠券入口.mp48 W9 t' t! {) y
    │  │      1-3 背景颜色到底怎么设置?.mp4
    │  │      1-4 页面到底是否应该合并HTTP请求?.mp4
    │  │      1-5 函数式编程概述.mp4' @+ m# v8 ^3 \8 W5 v
    │  │      1-6 第一阶段 第三次作业.mp40 U" w, ]/ k. r, l  @/ u
    │  │      1-7 类可以保存数据,但对象可以保存状态.mp4! Q' q. _( o' ?& t  t+ G- B
    │  │      1-8 重构Theme获取.mp48 x8 S( C& |: ^
    │  │      1-9 第一阶段第四次作业.mp4
    │  │      2-1 scroll-view组件的灵活应用.mp49 L9 l8 b# t2 i1 E5 ]- |
    │  │      2-2 是不是方法都需要加async和await?.mp4
    │  │      2-3 第一阶段第五次作业.mp4
    │  │      2-4 spu-scroll自定义组件 1.mp4
    │  │      2-5 Lin UI Price价格组件应用.mp4
    │  │      
    │  ├─03.热身结束,开启试炼# X; w, S2 q& K& w- L
    │  │      1-1 spu-scroll自定义组件2.mp4
    │  │      1-2 通过scroll-view抽象出的几个css编写原则.mp4
    │  │      1-3 WXS与小程序的内核简介.mp43 S0 b* ~& z' g+ x# ]9 G
    │  │      1-4 WXS与Lin UI Filter的应用.mp4& m# u, }5 u) e" u- C! E3 T
    │  │      1-5 webstorm的骚操作自定义代码片段.mp4
    │  │      1-6 自定义组件的边距问题与外部样式类应用.mp4
    │  │      1-7 学会抽象来简化数据库表设计.mp43 U1 ]9 H2 A4 Q- \/ y
    │  │      1-8 新监听器Observers与hot-list组件.mp4
    │  │      1-9 flex布局的灵活应用.mp4
    │  │      1-10 Hover点击态的应用与@import 公共样式表.mp4; ?8 }" {0 G: k1 o& M
    │  │      2-1 组件自定义性的终极方案:抽象节点.mp4
    │  │      2-2 防抖、截流与分页细节全分析.mp4
    │  │      2-3 Paging对象 一.mp4
    │  │      2-4 编程原则:多用return提前结束函数,少用else.mp44 O/ x0 R# q- M: X
    │  │      2-5 Paging对象 二.mp4! W# k9 f( G% G& V( I
    │  │      2-6 Paging对象 三.mp41 n) X' v4 }0 Q1 O+ i- V$ ^
    │  │      2-7 第一阶段第六次作业 Sku预研作业.mp4
    │  │      2-8 Pgaing对象 四.mp4
    │  │      7 @3 q6 u6 ^# t. n+ ^  g
    │  ├─04.攻克SKU和商品购物车: _5 M% p( ]( v8 I' {* |: r: A
    │  │      1-1 l-water-flow抽象组件式深入剖析.mp4+ F, g- c0 F. ?7 e7 q+ A$ H) |- G& q
    │  │      1-2 Lin UI Tag组件快速构建标签.mp4" z2 B9 E- D3 g3 e
    │  │      1-3 折扣价和原价的常见错误逻辑.mp48 |! [) s4 B) i: O# i, X. d
    │  │      1-4 使用WXS解决复杂的逻辑问题.mp4
    │  │      1-5 瀑布流的初步成型.mp40 L1 B4 k" E# S
    │  │      1-6 动态计算图片高和宽.mp4  K" j3 ?$ X( c" p
    │  │      1-7 Loading的思维逻辑:正在加载其实是一种常驻状态.mp4
    │  │      1-8 实现页底提示.mp40 ~9 [7 d5 y1 `* {0 a% c
    │  │      2-1 页面跳转与新机制EventChannel.mp4
    │  │      2-2 Spu、Sku、规格名和规格值.mp4
    │  │      2-3 从一个提问谈思考的精神.mp4
    │  │      2-4 调整思维,才能解决复杂的逻辑问题.mp4
    │  │      2-5 借助符号化的命名方式思考问题.mp4
    │  │      2-6 控制中心Realm与栅栏Fence.mp4
    │  │      2-7 fence与fence-group对象.mp4
    │  │      3-1 SKU方案整理 一:规格值的提取.mp4
    │  │      3-2 SKU方案整理 二:核心问题是规格值状态的确定.mp41 `: y3 h; f" u7 c
    │  │      3-3 用矩阵的思想提取规格值.mp4. k  H6 m% I$ n' F( d* l
    │  │      3-4 数学小课堂:矩阵的转置与旋转.mp4
    │  │      3-5 矩阵的遍历.mp4
    │  │      3-6 Fence的实例化.mp4
    │  │      3-7 测试Fences.mp4
    │  │      3-8 自己实现矩阵的转置.mp4
    │  │      3-9 谈数学、面向对象与编程思维.mp4
    │  │      3-10 构建Cell对象.mp4
    │  │        k% ?" p1 P+ P! @. @, {
    │  ├─05.SKU核心:规格状态、编码、无货逻辑
    │  │      1-1 SKU串码编号.mp42 U! Y8 ~  s2 t
    │  │      1-2 Fence与规格名的对应关系.mp4
    │  │      1-3 Cell去重.mp4+ o( u8 n+ e, _  @* I  G
    │  │      1-4 Cell自定义组件.mp4
    │  │      1-5 初步完成规格矩阵渲染.mp4; j# P6 S+ F. y3 f  H
    │  │      1-6 SKU算法的难点是确定规格的禁用状态.mp4( r- F* B$ C3 z. g
    │  │      1-7 SKU核心算法剖析 一.mp4
    │  │      1-8 SKU核心算法其实就是一句话,我之前已经讲过了.mp47 W7 M) l  K* N1 `4 j0 \4 I7 I
    │  │      1-9 矩阵列不同规格的问题解答.mp4
    │  │      2-1 数学小课堂:排列组合在SKU中的应用.mp4- H+ O5 K) Q) m, P7 _6 s( P! V7 c- |
    │  │      2-2 SkuCode类拆分Sku可能的路径.mp4' |: P% L; i5 E6 u% G' H* r9 Z
    │  │      2-3 Combination组合函数.mp4
    │  │      2-4 完成PathDict字典.mp4& q: C; F1 M0 p9 `' |0 U
    │  │      2-5 Cell的三种状态样式.mp4
    │  │      2-6 选中、禁用与可选状态的切换.mp4, @: F9 N# ~9 a& z5 @3 Q5 |9 n
    │  │      2-7 SKU选择的数据流向.mp42 q& {4 o! N- @" z, k
    │  │      2-8 自定义组件事件跨越组件边界(Bubbles与Composed).mp46 i$ d5 P/ S* K
    │  │      2-9 重新渲染矩阵与错误排查推演.mp47 o# P8 \% ?- }! J6 x5 {; E& D
    │  │      2-10 获取Cell的行列号.mp4
    │  │      2-11 实现Cell的正选和反选.mp4
    │  │      3-1 潜在路径PotentialPath分析.mp4
    │  │      3-2 正选Cell的规律推演.mp4
    │  │      3-3 反选Cell的规律推演.mp4
    │  │      3-4 SkuPending类的职责.mp47 k, y5 ^; F7 H2 W1 D
    │  │      3-5 遍历所有Cell的潜在路径.mp4
    │  │      3-6 遍历所有Cell的潜在路径 二.mp4
    │  │      3-7 遍历所有Cell的潜在路径 三.mp4
    │  │      3-8 完成SKU的逻辑选择.mp44 A% }: e3 C/ [2 U9 {' a' O: F+ N
    │  │      * u- A8 X0 z! J* ?' t* F
    │  ├─06.SKU收尾,优惠券、购物车讲解
    │  │      1-1 Realm骨架的完善.mp4" X* t  ?" I8 N3 c6 A
    │  │      1-2 默认SKU的概念与意义.mp4( o2 ~1 A4 M* }$ B& _2 E
    │  │      1-3 将默认SKU拆解后加入到SkuPending中.mp44 E) h" o% @6 h  n- H9 S, V
    │  │      1-4 从两个指标评估循环对性能造成的影响?.mp44 b6 L1 [- z1 H& _
    │  │      1-5 完成默认规格渲染.mp4
    │  │      1-6 Sku描述数据与规格选择联动 一.mp4
    │  │      1-7 无规格商品的概念与意义.mp4
    │  │      1-8 无规格商品的具体处理流程.mp4
    │  │      1-9 规格选择提示的复杂逻辑处理(一).mp4
    │  │      1-10 规格选择提示的复杂逻辑处理 (二).mp4
    │  │      1-11 性能:setData性能探讨.mp4
    │  │      1-12 规格选择与SKU描述联动 一.mp4
    │  │      1-13 获取code码和确定的SKU.mp4- e4 [8 B# @# m$ k
    │  │      1-14 确定MissingSpecKeys和CurrentSpecValues.mp4, A. ^% p5 B# C  v$ ~" n+ P9 k
    │  │      1-15 确定MissingSpecKeys和CurrentSpecValues 二.mp4
    │  │      1-16 终于完成了SKU,撒花,庆祝~.mp4' c: z1 G$ |5 \' k& `! S- Q$ X  H6 p
    │  │      2-1 l-counter数量选择器(核心组件).mp4
    │  │      2-2 详解l-counter的数量控制属性.mp4
    │  │      2-3 无货情况分析(操作Counter、默认SKU和无规格).mp4
    │  │      2-4 获取l-counter的选择数量.mp4
    │  │      2-5 三种触发无货状态的机制 (一).mp4
    │  │      2-6 Lin UI l-icon组件快速使用字体图标.mp4
    │  │      2-7 使用iconfont在线字体图标.mp4/ h; ^7 O, ], c% R  P+ b3 J8 V$ }. C
    │  │      2-8 使用l-icon引入自定义字体图标.mp4
    │  │      2-9 当我们谈编程能力的时候,我们谈的是什么.mp4  J4 C% A& L- t
    │  │      3-1 l-badge组件快速显示角标数字.mp4
    │  │      3-2 使用l-popup从底部弹出Realm.mp4
    │  │      3-3 realm滑动控制适应不同高度.mp45 u' ~- a& U4 [3 a: D1 v8 T; ~" N6 q
    │  │      3-4 优化realm的滚动条.mp4
    │  │      3-5 决定用户立即购买还是加入购物车.mp4
    │  │      3-6 规格的主观性与组合性.mp46 |0 {2 K% r3 z! H6 D5 s
    │  │      3-7 可视规格的概念.mp4$ W# j) {# a- m3 {7 O6 j
    │  │      3-8 SketchFence可视规格的实现(一).mp4
    │  │      3-9 SketchFence可视规格的实现(二).mp4  z& ~% M2 F/ u$ l% Q
    │  │      3-10 商品详情页面(一).mp4; ?0 T/ O; v  Y/ g7 k% B. N; @
    │  │      3-11 商品详情页(二).mp4% ?0 X6 j  H* {  J. O7 Z
    │  │      3-12 商品详情(三)微信开放能力的限制.mp4# `% x8 ?+ n9 X( i" _& O
    │  │      3-13 商品详情页(四)l-button解决自定义样式.mp4
    │  │      3-14 商品详情(五)SpecChange事件.mp4% K7 Q* t, r# w" }" U& J" M
    │  │      3-15 商品详情(六)完成SpecContainer.mp48 r4 E% r6 y' T3 W' K
    │  │      3-16 一种最笨但有效的查错方法.mp4
    │  │      3-17 用伪类模拟制表符效果.mp4
    │  │      3-18 商品详情图展示与隐藏页面滚动条方案.mp4
    │  │      4-1 分类页面重难点分析.mp4) G: t2 v, t+ x6 R
    │  │      4-2 使用l-button快速实现搜索按钮.mp4( m7 Y# q1 I) b6 ~+ C
    │  │      4-3 欢迎加入Lin UI和Lin CMS开源项目.mp45 n9 Q* c* T, ~8 ?  f0 ^3 d. o% s# ]
    │  │      4-4 l-segment组件的高级应用 (一).mp4* H7 G4 R" N5 A
    │  │      4-5 l-segment高级应用(二).mp4
    │  │      4-6 动态计算窗口高度与px与rpx动态转换.mp4; t2 {5 r. }- P* U+ r( Q* |
    │  │      4-7 不同机型上px向rpx的转换.mp4
    │  │      4-8 动态计算Detail页面的Scroll-View高度.mp4
    │  │      4-9 分类加载的性能与体验优化探讨.mp40 [4 ?0 M2 z) U# y
    │  │      4-10 加载分类数据与默认二级分类数据的确定.mp49 A$ q9 z( U+ ]  P& M( U. m
    │  │      4-11 二级分类的Grid显示(一).mp4* |+ Y# d: {% X4 ~) O
    │  │      4-12 二级分类显示切换.mp4& D8 B/ M' M2 c% D+ g: V; B
    │  │      4-13 二级分类跳转到Spu集合页面.mp4: K7 G9 Q$ l2 x4 }" [3 Q) d
    │  │      
    │  ├─07.高级电商订单管理开发 与前端项目收尾
    │  │      1-1 搜索页面:l-search-bar搜索输入框的应用.mp4
    │  │      1-2 历史搜索记录类.mp4
    │  │      1-3 数据结构队列在HistoryKeyword中的应用.mp4, @, n- V8 F7 g
    │  │      1-4 设计模式:代理模式在HistoryKeyword中的应用.mp4
    │  │      1-5 JS中的单例模式应用.mp46 ?0 X6 |/ e' ^$ {
    │  │      1-6 热门关键词与l-tag的选中状态.mp4$ U2 P. X' Q. r! S5 {! H$ H' T2 q
    │  │      1-7 显示搜索结果.mp4
    │  │      1-8 二种搜索场景(关键词和标签).mp4
    │  │      1-9 空数据和空关键词处理.mp47 h( x# k& ^: L
    │  │      1-10 wx.lin的组件调用方式解析.mp4, x  F% \, Y0 x5 l: |5 g' [
    │  │      % G- P3 b& ?) u  P
    │  ├─第7+周 购物车价格同步、优惠券、下单与微信支付
    │  │      1-1 购物车全选操作(1)勾选、取消勾选状态切换.mp4) h. O* n* I- x) F3 Z1 V
    │  │      1-2 购物车全选(2)UI、缓存与组件三方的数据一致性.mp4
    │  │      1-3 购物车全选(3)全选的思考方式.mp4
    │  │      1-4 购物车全选(4)onShow时的全选.mp4% D! `* U, y7 L
    │  │      1-5 购物车全选(5)onDelete和onChecke时的全选改变.mp45 d3 H- m; b' e- K
    │  │      2-1 购物车价格合计(1)Calculator类.mp4
    │  │      2-2 购物车合计(2)计算总价.mp4
    │  │      2-3 购物车合计(3)Counter组件数值浮动.mp4) \& z+ F- m+ o* t, P. Q
    │  │      2-4 购物车合计(4)JS浮点数不精确的解决方案.mp4
    │  │      2-5 购物车合计(5)移除与勾选时的合计计算.mp44 ^- [- t5 [% z- h4 K
    │  │      2-6 购物车合计(6)全选价格计算(补充).mp4
    │  │      3-1 服务器数据同步(1)更新时机问题探讨.mp4
    │  │      3-2 服务器数据同步(2)获取购物车中的SKU的最新数据.mp4/ ~4 S$ s$ M5 N2 g/ |
    │  │      3-3 服务器数据同步(3)同步缓存.mp4' ^5 V8 P5 D, @9 s7 l
    │  │      3-4 服务器数据同步(3)修正wxkey的警告.mp4
    │  │      4-1 订单预览(1).mp4
    │  │      4-2 订单预览(2)用户微信收货地址授权流程与原理.mp4
    │  │      4-3 收货地址组件(1).mp4. s5 \' }8 r, F, `  H
    │  │      4-4 组件授权与API授权的不同机制剖析.mp4
    │  │      4-5 小程序原生支持Promise.mp4
    │  │      4-6 收货地址组件(2)显示用户收货地址.mp4; o/ g# L/ p$ V' c
    │  │      4-7  收货地址组件(3)缓存用户地址.mp4: T! N2 Z" S8 {1 s- f9 O
    │  │      4-8 收货地址组件(4)从用户setting中获取单项授权情况.mp4
    │  │      4-9 打开用户的授权配置(先调用Dialog才能触发OpenSetting).mp4
    │  │      5-1 订单商品预览数据获取.mp46 I; q5 }  n; C0 u2 ?. X  Q
    │  │      5-2 构建OrderItem模型类.mp4
    │  │      5-3 再次同步服务端SKU数据.mp4
    │  │      5-4 OrderItem的校验.mp4
    │  │      5-5 Order的基础校验.mp4; \$ h! x7 O4 f" j
    │  │      5-6 纯前端课程结束说明.mp4
    │  │      6-1 优惠券活动入口.mp4
    │  │      6-2 根据活动名称请求优惠券信息.mp4  m1 x+ `* j! D8 d" N# a
    │  │      6-3 前端登录与JWT令牌(1).mp43 Q$ ]6 o+ G; ]% t+ c  m% o
    │  │      6-4 前端登录与JWT令牌(2)前端携带令牌思路与时机.mp4; N/ l( ]: f8 K' ~2 l% z9 `
    │  │      6-5 wx.request未返回Promise的修复.mp44 {7 U8 D) |& d3 |' X
    │  │      6-6 前端登录与JWT令牌(3)在Http请求中加入BearerToken.mp4
    │  │      6-7 token无法保证100%有效的问题.mp4% O3 a5 I3 ?) ~, Q
    │  │      6-8 二次重发与防止无限二次重发.mp45 q' @8 c5 z2 e" g' n) a
    │  │      7-1 前端异常处理(1)异常的分类.mp4
    │  │      7-2 可复用的Message与定制化Message.mp4
    │  │      7-3 前端Message与Code的重定义.mp4
    │  │      7-4 调用失败的异常处理.mp44 T9 i( w  L1 Z: Z4 S- I  r; T
    │  │      7-5 空数据的情况(单个空数据和列表空数据).mp4$ D+ ~, r9 A! a" O8 o" d6 `
    │  │      7-6 单数据空值的转化处理.mp4
    │  │      7-7 调用方的个性化异常处理方案.mp49 |. V* h4 X! k- V: |
    │  │      7-8 异常处理的测试.mp4
    │  │      8-1 优惠券中心的前期工作与状态分析.mp4
    │  │      8-2 显示优惠券与Lin UI折叠面板组件.mp49 h! B; ^2 n: L4 z% z( e$ T! {9 j
    │  │      8-3 优惠券的领取操作逻辑.mp4
    │  │      8-4 二次点击使用优惠券.mp4* F. [' D# k4 ~0 K8 c; a3 R7 P
    │  │      8-5 从商品详情领取优惠券逻辑分析.mp4
    │  │      8-6 取当前商品适用的前两张优惠券.mp40 P- Y! ^# R1 `- i
    │  │      8-7 按分类获取全部可用优惠券.mp47 |/ a3 q6 t7 R
    │  │      8-8 获取优惠券及优惠券的适用分类.mp4
    │  │      8-9 OrderItem的呈现.mp4
    │  │      9-1 Coupon-Picker组件.mp4! q5 V  U# J' b
    │  │      9-2 优惠券的分类使用条件剖析.mp41 R( e4 n9 r# A! O( [4 Z
    │  │      9-3 2次Reduce计算分类总价.mp4
    │  │      9-4 判断优惠券是否可以使用在当前订单中.mp42 M/ ~0 f0 \) z. h$ }0 c* I/ I
    │  │      9-5 优惠券选择的切换逻辑.mp4
    │  │      9-6 优惠券折扣价格计算(1).mp4
    │  │      9-7 优惠券价格计算(2)几种舍入算法.mp4! D; w, J8 a; Y0 D2 V
    │  │      9-8 总金额、优惠金额与最终金额的计算.mp4
    │  │      10-1 提交订单(1)获取用户所选择的收货地址.mp4
    │  │      10-2 向服务器提交订单并取得订单ID号.mp4
    │  │      10-3 订单下单失败的逻辑处理.mp4' |9 a7 D" \2 c) s" w
    │  │      10-4 下单后移除购物车商品.mp4
    │  │      10-5 前端拉起微信支付与支付测试.mp44 t8 ]7 Z5 N- m! K
    │  │      10-6 订单防重的相关细节设计.mp44 A6 @3 ?2 E* j9 G0 S: e; H1 e
    │  │      10-7 支付成功和失败的逻辑判断.mp49 p& T4 `7 k; U& E9 F* A2 E
    │  │      10-8 支付成功和失败的跳转逻辑.mp4
    │  │      11-1 立即购买的逻辑.mp4& c5 W2 F6 C- J, I' I
    │  │      11-2 我的页面结构分析.mp47 g% r9 [( G5 U3 d  h
    │  │      11-3 LinUI Avatar组件显示微信头像和昵称.mp4
    │  │      11-4 全新的获取用户微信信息机制解析.mp4( g; s$ X$ m* @) i4 `
    │  │      11-5 l-badge徽章组件.mp46 @" K. Y3 r1 k7 y. ^7 e. E0 y
    │  │      11-6 获取各状态订单的数量.mp45 M- w' t' f: z0 S6 s; o
    │  │      11-7 LinUI List组件的应用.mp4
    │  │      12-1 小程序结束语.mp4
    │  │      
    │  └─资料
    │          sleeve-master.zip2 A4 ?" N9 c. R* d& Y) }9 x% r
    │          8 T. ^) E- s( s2 ]
    ├─阶段2:Java与SpringBoot部分+ M( W" E1 @; i$ i9 ^
    │  ├─08.初识SpringBoot2 e# \4 \; M7 O) r2 @9 q
    │  │      1-1 第二阶段开篇词.mp4; a$ w6 X( L; D
    │  │      1-2 java web框架的发展历史.mp4
    │  │      1-3 SpringBoot与面向抽象编程.mp4
    │  │      1-4 第二阶段第一次作业:理解IOC与DI(四个要求).mp4
    │  │      2-1 完全搞懂SpringBoot版本号(主、次、增量、发布).mp4' V7 U& R2 K/ m+ j, I- k
    │  │      2-2 JDK版本的选择与安装.mp43 T# S$ j  g1 o" \" m
    │  │      2-3 Java的2种构建工具:Maven与Gradle.mp43 S, X; `, h; q9 ~6 s
    │  │      2-4 Maven的作用与安装.mp4
    │  │      2-5 开发工具使用Idea和三种创建SpringBoot项目的方式.mp48 p' P* a& n* t: Q% S- o, s
    │  │      2-6 使用Spring Initializr初始化SpringBoot应用程序.mp4
    │  │      2-7 SpringBoot应用程序的基本目录结构.mp4# \: D. x- u( I2 u
    │  │      2-8 POM文件解析与Maven版本踩坑.mp4
    │  │      3-1 运行我的第一个SpringBoot应用.mp4
    │  │      3-2 新建API包与控制器.mp47 ^6 u  K" x% W4 N
    │  │      3-3 使用ResponseBody注解代替ServletResponse.mp4+ d8 \; V* I5 ]7 a# [
    │  │      3-4 SpringBoot热重启配置.mp4' @" x. u1 a, u! j% Z+ ^5 }/ L
    │  │      3-5 几个常用构建RESTFulAPI的注解.mp4: H: t" ^5 ?$ W
    │  │      3-6 @RestController注解.mp4
    │  │      
    │  ├─09.Java编程思想深度理论知识
    │  │      1-1 Java是一个笨重的垃圾语言吗?.mp4
    │  │      1-2 SpringBoot为什么有这么多复杂的概念?.mp41 Y8 L2 v$ t: X- Y0 _$ v- B2 v3 [
    │  │      1-3 开闭原则OCP.mp4
    │  │      1-4 为什么要面向抽象编程.mp4  Z6 J. n+ f! N& I
    │  │      1-5 面向抽象的常见手段:interface、工厂模式与IOC和DI.mp4
    │  │      2-1 英雄联盟小游戏的最简单版本.mp44 R/ }" f" ?' ]4 L
    │  │      2-2 第一个烂大街的代码风格.mp4
    │  │      2-3 使用Interface的抽象风格.mp4
    │  │      2-4 interface统一方法调用,但无法统一实例化.mp4
    │  │      2-5 抽象的难点在于new对象.mp45 H, p5 O. N2 r8 P
    │  │      2-6 只有一段代码不负责对象实例化,才能保持稳定.mp4
    │  │      2-7 工厂模式分离对象实例化.mp4
    │  │      2-8 稳定性是相对的,我们需要将不稳定的代码隔离.mp4
    │  │      2-9 变化是导致代码不稳定的本质原因.mp4* _$ [, Y* V+ E' |
    │  │      2-10 通过反射机制消除所有的变化.mp4
    │  │      3-1 工厂模式+反射并不是IOC和DI.mp4
    │  │      3-2 配置文件的变化是允许的,并不违反OCP.mp4* |/ F4 Q8 m1 F
    │  │      3-3 IOC和DI的雏形.mp4, f; C8 W8 [# z% Y. p
    │  │      3-4 IOC的示例.mp4
    │  │      3-5 为什么引入容器后可以让系统变得稳定?.mp4: x8 n: u* X3 _( S4 w
    │  │      3-6 DIP依赖倒置到底是什么.mp42 ~4 K% m% z0 @" X: i/ ^
    │  │      3-7 DI依赖注入的意义.mp43 {4 x; }! v. v  a  G
    │  │      3-8 依赖注入的原理.mp4  k* G; ^7 X0 R$ `! h6 f7 o) q0 d
    │  │      3-9 容器的作用是在装配对象.mp4  |* G6 j0 ?5 j  n& v- _* ^* |
    │  │      3-10 从DI的角度理解IOC.mp4
    │  │      3-11 IOC的终极奥义.mp4' ^1 b4 h% I2 h! x  [0 c: ^
    │  │      : d' \% w6 v: C. b. Y# p$ i
    │  ├─10.Spring与SpringBoot理论篇- h/ t- @! r" I$ {
    │  │      1-1 SpringBoot理论篇导学.mp4
    │  │      1-2  Spring、SpringMVC与SpringBoot的关系与区别.mp43 Z! A/ W. J' X7 k1 @- D
    │  │      1-3 什么是SpringBoot核心优势-自动配置(作业).mp45 _, H5 m0 s5 c: B8 W" ?
    │  │      1-4 把握Spring的几个重要目的,提升学习效率.mp4! r7 i, T3 `: Y" C' p3 R5 f' u
    │  │      2-1 SpringBoot最基础的编程模式@Component+@Autowired.mp4, `3 `0 x- ]  ^9 w  B8 h
    │  │      2-2 Stereotype Annotations 模式注解.mp4
    │  │      2-3 Spring的实例化和依赖注入时机与延迟实例化.mp43 w1 L7 I2 r; E9 N
    │  │      2-4 成员变量注入、Setter注入与构造注入.mp46 F% p5 [/ w; l. d
    │  │      2-5 一个接口多个实现类的处理.mp4
    │  │      2-6 @Autowired按类型注入.mp4
    │  │      2-7 被动推断注入与主动选择注入.mp4% o& l) l9 [3 g8 B9 I' R" r
    │  │      2-8 应对的变化的两种方案(策略模式与属性配置).mp4
    │  │      3-1 @Configuration配置类.mp4
    │  │      3-2 @Configuration表面意义上的解释.mp4
    │  │      3-3 @Configuration是用来替换bean的xml配置.mp4
    │  │      3-4 变化最终要被隔离到配置文件中.mp4
    │  │      3-5 @Configuation和@Bean的真实作用.mp4' @9 P% E9 F2 j( d
    │  │      3-6 深入剖析@Configuration的意义.mp4( B) ?) k! D- X* u. J
    │  │      3-7 @Configuration是一种编程模式.mp49 ^* S, n: Y9 I
    │  │      , B' J/ B) ^0 G" h5 ~/ P6 \) G. p8 p
    │  ├─11.sprinboot的条件注解与配置7 W/ [% `  x0 @$ d7 R& x
    │  │      1-1 Bean名称与几种注入方式补遗.mp4
    │  │      1-2 @ComponentScan包扫描机制.mp43 W% f: q3 f: [% y& x7 k. T& o
    │  │      1-3 策略模式的几种实现方案.mp4! `2 g5 O8 z3 K$ v$ q3 ~
    │  │      1-4 条件组件@Conditional的基本用法.mp4
    │  │      1-5 Condition接口的ConditionContext参数.mp4# M( a. J  N% V
    │  │      1-6 成品条件组件@ConditionalOnProperty.mp4
    │  │      1-7 @ConditionalOnBean条件注解.mp4/ B: z' Z3 [" \9 |, Q9 `
    │  │      2-1 SpringBoot自动配置原理导学.mp4# Z0 @* `1 h1 J7 d$ ]+ ]; I
    │  │      2-2 @SpringBootApplication注解的理解.mp4
    │  │      2-3 SpringBoot自动装配原理解析.mp4( Z# }3 |  _( y4 Q- N4 [) P( C3 d
    │  │      2-4 自己编写一个Spring应用启动类.mp4
    │  │      2-5 @Import 的两种用法.mp4
    │  │      2-6 SpringBoot自动装配的spring.factories文件.mp4
    │  │      2-7 Java SPI 机制解析.mp4
    │  │      2-8 深度理论课总结.mp4
    │  │      - I* d" `. B* x9 A
    │  ├─12.Java异常深度剖析
    │  │      1-1 全局异常处理机制导学.mp4
    │  │      1-2 如何统一捕获异常?.mp4! w; K' g- C+ @, S4 u! \) w
    │  │      1-3 异常分类Error、CheckedException与RunTimeException.mp46 a1 s) d* D( }% \" S/ D' @6 W
    │  │      1-4 彻底理解CheckedException和RuntimeException.mp4
    │  │      1-5 自定义HTTPException异常类.mp4+ U( _5 V7 i8 D, ?/ ~
    │  │      1-6 同时监听Exception和HTTPException.mp4
    │  │      1-7 异常的深度思考和理解.mp45 ^, c1 ?0 V0 j
    │  │      1-8 在@ExceptionHandler中返回Unify消息.mp4
    │  │      2-1 使用注解修改HTTPStatus.mp4, K  _' E/ a* N8 _
    │  │      2-2 处理自定义HTTPException.mp4
    │  │      2-3 为什么需要将异常信息写在配置文件里.mp4
    │  │      2-4 自定义配置类管理配置文件.mp4
    │  │      2-5 HTTPException的意义.mp49 P0 [* |# r7 x$ T: J" Z4 R
    │  │      2-6 SpringBoot主动发现机制和思想.mp4
    │  │      2-7 根据目录结构自动生成路由前缀.mp4  a; M; V# W5 b: e3 ]$ ?- h
    │  │      2-8 自定义RequestMappingInfo.mp4
    │  │      2-9 通过接口的形式发现类.mp47 K6 [$ C" _9 M' F2 u: k( l8 `: F
    │  │      2-10 完成自定义PrefixUrl.mp4% e1 R2 ]6 `# T, ^. `
    │  │      7 s8 Z/ R; J, c+ x
    │  ├─13.参数校验机制与LomBok工具集的使用9 i  b6 \8 a% Q3 P, Q; Q+ I
    │  │      1-1 修改Properties文件的编码解决乱码问题.mp4: R5 h) V# Q$ J& r6 V, G2 B  w+ s
    │  │      1-2 参数校验机制导学.mp4
    │  │      1-3 获取URL路径中的参数和查询茶树.mp4* j* E) ]5 p) r" \% o1 I  [/ m" |
    │  │      1-4 数据传输对象DTO的接收.mp4
    │  │      1-5 LomBok的基本使用方式.mp4
    │  │      1-6 LomBok中关于构造函数的几个注解.mp4
    │  │      1-7 @Builder构造器模式的使用.mp4
    │  │      1-8 JSR-269与Builder模式的序列化.mp4
    │  │      2-1 使用@Validated注解进行基础参数校验.mp4+ `) Y0 j' G9 i7 ?/ a
    │  │      2-2 验证HTTP Body中的参数与级联校验.mp4
    │  │      2-3 补充:@Validated和@Valid注解的关系.mp4/ b# m* X& N$ C8 z( A" }5 O
    │  │      2-4 自定义校验注解.mp4
    │  │      2-5 自定义校验注解的关联类(1).mp40 S) v- }( n  X1 J0 l3 S0 p
    │  │      2-6 获取自定义校验注解的参数.mp4/ K! [5 s; c2 {
    │  │      2-7 捕获DTO类的参数校验异常信息.mp4& H+ b1 ~! w8 R2 I$ ?
    │  │      2-8 捕获Url和查询参数的异常.mp4
    │  │      
    │  ├─14.项目分层设计与JPA技术" |, b" ?: x5 v! S) q6 m" @
    │  │      1-1 JPA导学(新年快乐).mp4
    │  │      1-2 Service业务逻辑层(服务层)的建立.mp47 ]% V) f3 m4 v# s. ?' V1 J
    │  │      1-3 层与层之间是否一定要用interface建立关联.mp4
    │  │      1-4 创建数据表的3种主要方式.mp4
    │  │      1-5 新建数据库和数据表.mp4) ?! y8 D" c9 `/ l/ Y( K+ ^
    │  │      1-6 yml格式的配置文件.mp4
    │  │      1-7 多环境配置文件(profiles)以及启用方式.mp4
    │  │      2-1 mysql数据库连接配置.mp4
    │  │      2-2 Maven依赖无法安装的几个解决方案.mp4
    │  │      2-3 使用ORM的方式生成数据表.mp4
    │  │      2-4 常用实体类注解与ORM生成表的优劣势浅谈.mp42 M% n; H3 c, e" C4 Q) B7 }
    │  │      2-5 多对多关系的第三张表探讨(重点).mp4: R' j! y5 a- K5 x
    │  │      2-6 数据库设计步骤及数据库优化原则.mp4
    │  │      2-7 实体与实体之间一对多关系配置@oneToMany.mp4& Z8 m& \9 X% T1 }
    │  │      2-8 指定外键字段与是否需要物理外键.mp4
    │  │      3-1 JPA的Repository定义.mp4
    │  │      3-2 执行Repository查询语句.mp4( K6 ~4 N  e# z1 w
    │  │      3-3 懒加载和急加载.mp4: F4 u( w0 P! I, g6 O' q
    │  │      3-4 双向一对多配置.mp46 Z8 d5 M6 f& X/ |- C4 w' P" {) ^3 |
    │  │      3-5 双向一对多的外键配置问题.mp4- }2 Z, C$ {" M$ r# \- V; f
    │  │      3-6 多对多关系配置@ManyToMany.mp4
    │  │      3-7 单向多对多关系配置与常见问题.mp4
    │  │      3-8 双向多对多配置.mp4( m% p3 r# j  D- {
    │  │      3-9 如何禁止JPA生成物理外键.mp4
    │  │      2 s; a; t. c. ~5 N0 }. ?: ~; B# z
    │  ├─15.ORM的概念与思维4 M- O9 S5 r  ^! H
    │  │      1-1 谈谈ORM的概念、意义与常见误区问题.mp45 w, r: O. C' I% P9 ?& b; u. b
    │  │      1-2 数据库表数据的设计、导入与导出.mp4
    │  │      1-3 项目开发顺序.mp44 K/ D. `5 E$ o, D0 v
    │  │      1-4 导入项目的SQL文件.mp4) @, f8 ^% m) E- v# ~" ]+ ?6 t' l
    │  │      1-5 逆向生成Entity.mp4/ ~! o9 C3 M. I7 ~
    │  │      1-6 简化实体字段.mp4) v2 ^4 Q& h' z1 `
    │  │      1-7 三个时间字段的说明(create update delete).mp4; |$ K* T8 X& u& o2 E
    │  │      1-8 提取BaseEntity基类.mp4& g6 B; l/ t" e
    │  │      2-1 访问Banner接口.mp4
    │  │      2-2 @MappedSuperClass的作用.mp4
    │  │      2-3 Jaskson序列化库的重要配置(SNAKE_CASE、时间戳).mp4. n8 Z0 Z2 `8 Q& l
    │  │      2-4 Theme接口开发.mp4
    │  │      2-5 Theme表设计.mp4' e( R! Y+ `- E; e
    │  │      2-6 表的列行转换思维.mp4* h. Y& V3 {+ ?
    │  │      2-7 SPU表设计分析.mp4
    │  │      2-8 静态资源托管的几种方式.mp4  ^, s+ Y& A, n" z8 K/ |6 W
    │  │      2-9 SpringBoot访问静态资源.mp4
    │  │      3-1 为什么需要提供多个SPU数据的接口?.mp4& C  |; q- Y3 r4 l$ x3 g7 l
    │  │      3-2 Spu实体映射(增补).mp4* x( l* f: X" }& i1 P
    │  │      3-3 Spu详情数据查询.mp41 B9 W! [3 J* d$ g
    │  │      3-4 查询列表类数据.mp42 Y+ q8 w0 V" `. u
    │  │      3-5 延迟思考,逐层深入.mp47 O/ p4 m) T3 P1 a
    │  │      3-6 数据库多层关系设计思考与冗余字段设计原则.mp49 E5 M4 U; u$ Q6 L
    │  │      3-7 导航关系的配置原则(需要时才配置).mp4
    │  │      3-8 Latest接口SQL查询分析.mp4/ N" C' N1 W" D( N$ z2 j
    │  │      3-9 VO视图层对象的概念和意义.mp4
    │  │      
    │  ├─16.JPA的多种查询规则- O* S8 N" P2 i0 {
    │  │      1-1 DozerBeanMapper拷贝属性.mp4
    │  │      1-10 JPA接口命名规则.mp4
    │  │      1-2 PageRequest.Of方法进行分页参数构建.mp4
    │  │      1-3 BO对象与分页参数转换.mp4% h' n3 }* o. i0 T& ^8 H3 z
    │  │      1-4 Paging分页对象的构建.mp4
    │  │      1-5 PagingDozer对象的封装.mp4# E# o! ?* a7 {/ ^- ~& i, l
    │  │      1-6 Paging对象测试与Java的伪泛型缺陷.mp4
    │  │      1-7 分类表的常见结构设计.mp4
    │  │      1-8 无限级分类的数据表达方式(自定义协议路径).mp44 z  ~, K9 x, a/ L9 {
    │  │      1-9 分类冗余字段设计.mp4
    │  │      2-1 Java Bean中可不可以写业务逻辑.mp4
    │  │      2-2 jSR303校验的message模板配置.mp4
    │  │      2-3 规格、规格名与规格值的设计(上).mp4
    │  │      2-4 规格、规格名和规格值的设计(中).mp4
    │  │      2-5 规格、规格名和规格值的设计(下).mp4. Q6 X1 o1 V( e& r: q
    │  │      3-1 通用泛型映射方案(1).mp4- h6 [5 W# x1 d. B0 h* P
    │  │      3-2 通用泛型类映射方案(2).mp4
    │  │      3-3 单体JSON对象的映射处理(1).mp4
    │  │      3-4 单体JSON到Map的映射(2).mp42 d/ y/ W+ g- ]& I4 X
    │  │      3-5 单体JSON与Map的映射(3).mp4
    │  │      3-6 数组类型JSON与List的映射(4).mp4
    │  │      3-7 谈Java类的内聚性、方法外置的问题.mp4
    │  │      6 Z2 o: i8 y+ O, h4 e" f: E0 w
    │  ├─17.令牌与权限
    │  │      1-1 Java的泛型是编译期间的而非运行期间.mp48 Y' m8 e1 `: \2 U$ o  S
    │  │      1-2 通用泛型类与强类型转换 (1).mp4
    │  │      1-3 通用泛型类与List的转换(2).mp42 i! g0 G7 F9 U! e5 k
    │  │      1-4 更简单的泛型反序列化方法(3).mp4$ ~2 B6 M* k) p+ E5 P# u8 b
    │  │      1-5 方案调整与优化.mp41 X3 P) m0 I" k3 \* Y; X
    │  │      1-6 @Where条件查询.mp4
    │  │      2-1 Category分类业务分析.mp4
    │  │      2-2 Category接口数据结构分析与探讨.mp4
    │  │      2-3 循环序列化的解决方案.mp4
    │  │      2-4 Java的Stream与Method Reference应用.mp4
    │  │      2-5 GridCategory接口.mp4- N$ e$ j$ f2 e& T+ q) K; c
    │  │      2-6 Theme业务及模板概念分析.mp49 {, w0 }1 l6 g& h# Q; O& p3 m. h
    │  │      2-7 自定义JPQL替代JPA命名方法.mp4
    │  │      3-1 Optional的意义与价值.mp4
    │  │      3-2 SpringBoot中的单元测试.mp4
    │  │      3-3 Optional的精髓.mp4& s4 v# Y  I" z
    │  │      3-4 Optional的经典使用场景、Consumer与Supplier.mp4" r1 E5 t& {/ ^  k9 x
    │  │      3-5 Optional的链式操作与Function、Predicate、Filter.mp4( N5 p- l$ P5 N- W, F
    │  │      4-1 权限、分组与用户的关系探讨.mp4
    │  │      4-2 @ScopeLevel注解的机制.mp4  j$ b7 r, s" `, o
    │  │      4-3 令牌与微信登录机制.mp4. }3 _8 a+ B4 B" [1 l: X! M
    │  │      4-4 无感知二次登陆问题探讨.mp43 J( `. o% D  T6 K5 w+ K
    │  │      4-5 getToken接口.mp42 O) |% _6 y6 Z# t9 \: i
    │  │      4-6 TokenPassword校验注解.mp40 B9 ?. p0 x( B' B# Y/ M6 p0 ~
    │  │      4-7 错误消息的模板参数.mp4
    │  │      4-8 微信验证服务.mp4
    │  │      4-9 Sleeve-Mini小程序测试工具准备.mp42 e' R* f: j0 j6 q8 ]4 z8 I+ t
    │  │      5-1 获取用户OpenId.mp4; X; Y6 o# G7 a
    │  │      5-2 JWT令牌全流程解析.mp4$ Y( m- w5 \& Z. O
    │  │      5-3 User实体分析与常见用户系统设计.mp4
    │  │      5-4 User对象的写入.mp4
    │  │      5-5 Auth0的JWT.mp4' p/ E$ l# X" Z, Y; X# J$ C$ l
    │  │      5-6 Auth0生成JWT令牌.mp4
    │  │      5-7 令牌生成测试.mp4
    │  │      6-1 JWT令牌的校验.mp49 J3 g5 i* T" H; Q+ E/ D/ e  s; P
    │  │      6-2 Filter、Interceptor、AOP机制的区别于联系.mp4) Z9 h% X. H) U. o. \* z" Y
    │  │      6-3 PermissionInterceptor的逻辑分析.mp49 a& a; }- A5 M9 c1 L
    │  │      6-4 获取Bearer Token.mp4  P; F0 x% ~8 [- X" T2 A
    │  │      6-5 hasPermisson权限核查.mp40 ~) L- t/ K* F7 Y- S8 s
    │  │      6-6 注册Interceptor.mp4+ w" z# e4 `. S
    │  │      6-7 数组越界问题(修复).mp4
    │  │      6-8 VerifyToken接口.mp4) H1 Q2 l. w. d. T
    │  │      * A! ?+ f3 W( ^2 d  B) S
    │  ├─18+订单、延迟支付与库存归还
    │  │      1-1 订单校验(12)BO的概念与意义.mp4
    │  │      1-2 订单校验(13)全场券的计算.mp4
    │  │      1-3 订单校验(14)reduce函数的巧妙应用.mp4
    │  │      1-4 订单校验(15)完成优惠券最终校验.mp4
    │  │      1-5 订单校验(16)OrderChecker对象.mp4
    │  │      1-6 订单校验(17)OrderChecker校验项分析.mp46 Z/ M1 h" W! x6 ^7 g% \3 L. j+ W
    │  │      1-7 订单校验(18)最大购买数量、售罄、超卖检验.mp4
    │  │      1-8 订单校验(19)如何让Spring调用Bean的有参构造函数?.mp4- a8 f% a9 t) y" [, l' `; }% u0 k
    │  │      1-9 订单校验(20)校验CouponChecker.mp4
    │  │      1-10 订单校验(21)OrderChecker作为数据提供者.mp4
    │  │      1-11 订单校验(22)订单校验总结与探讨.mp4& U6 I  Q$ E5 h% |& e
    │  │      2-1 下单逻辑(1)谈订单号的特点与注意事项.mp4
    │  │      2-2 下单逻辑(2)创建订单.mp4  ^. r5 J1 A% ?4 ?
    │  │      2-3 下单逻辑(3)订单的五种状态.mp47 \4 D/ L$ k6 H. J* p" K
    │  │      3-1 库存扣减(1)乱序思维.mp4
    │  │      3-2 库存扣减(2)不能SQL1查询SQL2减除库存.mp4! W' G) Y$ H* \" X5 I$ r, s
    │  │      3-3 库存扣减(3)Java锁、悲观锁的解决方案探讨.mp4, j* d1 |, U% k6 e7 Z+ O
    │  │      3-4 库存扣减(4)乐观锁的应用.mp4
    │  │      3-5 优惠券核销(1).mp4& g& g" J! ]" }
    │  │      3-6 优惠券核销(2).mp42 B. s- _8 @3 @- b( h! ?
    │  │      3-7 测试下单.mp4
    │  │      4-1 订单状态查询(1).mp49 F6 v6 h3 Y- i2 {6 r3 H" w7 e
    │  │      4-2 订单状态查询(2)订单支付过期状态的不可信.mp4
    │  │      4-3 订单状态查询(3)追加PlacedTime下单时间和ExpiredTime过期时间.mp44 Y) K2 s; ^! T4 t% I7 F
    │  │      4-4 订单状态(4)查询待支付订单.mp4
    │  │      4-5 订单状态查询(5)订单状态查询与订单详情查询.mp4
    │  │      % W2 F1 z- X9 w1 B1 r8 ]- }0 y
    │  ├─18.优惠券 、订单与支付系统; \* [+ k# T, }8 n2 M# f
    │  │      1-1 优惠券系统设计分析.mp4: H; y) h  T4 k9 u! j
    │  │      1-2 Coupon优惠券实体设计.mp46 m  w' n, y3 Z0 h: _9 R9 q
    │  │      1-3 带有实际业务意义的多对多的第三张表.mp4
    │  │      1-4 优惠券的适用范围限定.mp4- j& T! Z) q) k
    │  │      1-5 有效期优惠券的设计思路.mp4* ~/ |" E% i) i" J' {% c- T
    │  │      1-6 多对多向一对多的转化思维-.mp4
    │  │      1-7 多级属性精简技巧.mp43 s9 j# ]% n+ W; P
    │  │      2-1 根据分类查询所属优惠券接口分析.mp4+ \! a* M) m0 c" ]$ o/ b
    │  │      2-2 原生SQL的多对多查询.mp4
    │  │      2-3 JPQL完成复杂的多表查询.mp4
    │  │      2-4 原生SQL语句剖析与JPQL的对比.mp4
    │  │      2-5 单表查询、Join与JPA的优势_1.mp4( y. J0 _+ n4 `/ t8 `
    │  │      2-6 查询全场券_1.mp4
    │  │      3-1 超权问题.mp4" \; o0 Y4 b# R2 j" ~6 h5 j
    │  │      3-2 LocalUser类的设计.mp4( }  p9 d" F5 c- ^0 K: A
    │  │      3-3 写入LocalUser.mp4
    │  │      3-4 ThreadLocal与线程安全.mp4
    │  │      3-5 ThreadLocal资源释放时机.mp49 R" l) @; x2 H$ l" R. Q& \
    │  │      4-1 用户领取优惠券的细节考虑.mp4/ e7 f& n$ `5 |& y  ?
    │  │      4-2 用户领取优惠券代码编写.mp49 p1 M& q2 d% }( v6 p) [
    │  │      4-3 更新成功、删除成功、创建成功的HttpStatusCode值.mp4
    │  │      4-4 注意注入到容器里的对象是否是同一个对象.mp4- q. J% r. v& h% G  `
    │  │      4-5 异步机制下的数据一致性不一定能100%保证.mp43 I7 |( T7 ^6 z. i: _
    │  │      5-1 定时器的解决方案:主动轮询与被动消息触发.mp4
    │  │      5-2  枚举值向枚举类型转换.mp4- `/ l1 K0 U+ e5 m
    │  │      5-3 不能以状态枚举来作为优惠券过期的唯一判断标准.mp4
    │  │      5-4 获取我可用的优惠券(带分类数据).mp4
    │  │      6-1 Order订单表的数据库设计.mp4
    │  │      6-2 前端提交的Price是不可信的.mp4
    │  │      6-3 订单校验所需要考虑的若干种校验项.mp4
    │  │      6-4 订单校验(1)获取实时的Sku信息.mp4
    │  │      6-5 订单校验(2)构建CouponChecker.mp44 i$ V$ R1 A/ ?
    │  │      6-6 订单校验(3)优惠券过期时间校验.mp4/ d' B' D2 E9 t0 \' f6 [
    │  │      6-7 订单校验(4)满减券计算.mp4
    │  │      6-8 订单校验(5)浮点数价格运算利弊分析.mp4: W+ y8 P* D& V) F4 P. \
    │  │      6-9 订单校验(6)银行家舍去算法.mp4
    │  │      6-10 订单校验(7)RoundingMode模式.mp4
    │  │      6-11 订单校验(8)SpringBoot默认注入单例模式所带来的额问题.mp4# X" }4 Z( ~; S( R: ^0 c+ [3 _
    │  │      6-12 订单校验(9)非SpringBoot托管的Java对象-.mp4
    │  │      6-13 订单校验(10)prototype多例模式的注入方案(ObjectFactory与动态代理).mp4
    │  │      6-14 订单校验(11)价格校验收尾.mp4
    │  │      0 H- u' X8 t7 A( a/ [
    │  └─19.微信支付Redis与RocketMQ
    │          1-1 微信支付流程分析.mp4
    │          1-2 订单过期时间的再次校验.mp4
    │          1-3 订单是否取消的逻辑判断.mp4
    │          1-4 微信支付配置类.mp46 w3 V* E1 b, P& V( ]# X  e& U
    │          1-5 统一下单(预订单)接口参数解析.mp4
    │          1-6 统一下单的常用参数组装.mp44 r* [" P4 t+ B& Y, X6 n
    │          1-7 配置微信支付回调API地址.mp41 U0 J  g. S+ |# O6 n0 [9 ^9 O
    │          1-8 更新订单的PrepayId.mp44 M8 f! {+ i4 i7 m
    │          1-9 微信支付签名计算.mp4  x& N/ ~! H' U
    │          2-1 微信支付回调结果WxNotify接收与处理.mp4
    │          2-2 从流中读取支付回调结果.mp46 k6 ~& A; h7 f, P, L" F0 X% ~
    │          2-3 更新订单状态Unpaid转为Paid.mp4
    │          2-4 订单状态更新的加强判断逻辑.mp4
    │         
    ├─阶段3:Java CMS后台管理系统-后端开发
    │  ├─第20周 Lin CMS入门与MyBatis
    │  │      1-1 为什么每个项目都需要CMS.mp4
    │  │      1-2 CMS动态分配权限是最核心的能力.mp4
    │  │      1-3 优秀的Lin CMS.mp4* I4 L6 x5 |9 Z
    │  │      1-4 LinCMS的前后端分离.mp4" [1 M# _; ^! M, ^6 n3 f" L
    │  │      1-5 下载Lin CMS SpringBoot的Sleeve版本.mp4: M- b! f  A  W3 q
    │  │      2-1 Lin CMS是工程+SDK的开发框架.mp4
    │  │      2-2 导入LinCMS内置数据表.mp4; c& Q( U( o0 s+ G# {
    │  │      2-3 自定义业务的目录组织结构.mp4
    │  │      2-4 LinCMSVue试运行与前后联调.mp4
    │  │      2-5 Lin CMS中的三种数据库机制JPA、MyBatis与MyBatisPlus.mp4( K3 w) d) X# b/ u* I; _
    │  │      3-1 MyBatis的项目目录组织结构.mp4" @4 A; D! k0 r, k
    │  │      3-2 编写第一个MyBatis MapperXML.mp4
    │  │      3-3 Mapper接口与MapperXML的扫描位置.mp4
    │  │      3-4 调整代码目录.mp4
    │  │      3-5 MyBatis的Insert.mp4
    │  │      3-6 MyBatis与JPA的对比.mp4
    │  │      3-7 MyBatis使用注解编写SQL.mp49 H% H/ E$ m) U
    │  │      
    │  ├─第21周 MyBatisPlus入门与进阶- v+ b1 C4 [3 f  U$ w- M* |' f0 v2 N
    │  │      1-1 MyBatisPlus的BaseMapper(同JPA类似).mp4$ X& I2 ~: q. v# M9 q* Q
    │  │      1-2 前端功能预览与简介.mp4
    │  │      1-3 分页参数设置与LinCMS的自定义错误消息.mp4. T. v( r: x; G; e) u; v, [
    │  │      1-4 MyBatisPlus的ServiceImpl.mp4
    │  │      1-5 LinCMS的内置分页器.mp4
    │  │      2-1 @NotBlank与@Length注解配合使用.mp4: J/ _6 \* q2 |$ o( }
    │  │      2-2 Update更新Banner.mp4/ K# m" P; _* T7 D, U2 z8 `0 ?6 k' u
    │  │      2-3 强大的LinCMS内置异常类剖析.mp42 Y- n% k2 C# r2 r6 x& A
    │  │      2-4 浅谈为什么你看不懂源码.mp4
    │  │      2-5 UnifyResponseVO的几种快捷返回对象.mp4* W3 f# o: i' i1 m$ L- r' D/ E
    │  │      2-6 LinCMS中的软删除与物理删除.mp4! D. R( Y8 C$ h; f/ K4 @
    │  │      3-1 从UI交互谈程序员的综合素质.mp4! X" `* M$ }/ s" D/ ]0 U/ v
    │  │      3-2 连表查询的一种方案:单表查询.mp42 i; X$ e+ n" @- z0 ^* S6 n
    │  │      3-3 MyBatisPlus的QueryWrapper.mp4( u4 n4 u- F6 B/ J. [  B* i
    │  │      3-4 BO的作用于意义.mp4) `6 a/ ]# h* t" n
    │  │      3-5 QueryWrapper的lambada写法.mp4( Q! ?, o2 g2 k
    │  │      3-6 灵活的LambadaQueryWrapper.mp4" h/ k5 D; p6 l: Y; v: O
    │  │      4-1 LinCMS版本升级探讨.mp4
    │  │      4-2 升级到LinCMS Sleeve-0.2版本.mp44 M9 Y: l7 l5 Y+ U: f  ]  m
    │  │      4-3 LinCMS 0.2版本概述.mp4) p" M7 J1 C2 D0 m% r
    │  │      4-4 CodeGenerator快速生成模板.mp4
    │  │      4-5 一对多关系的多表是否可复用探讨.mp44 @, j7 |1 j4 w  o; t- D
    │  │      4-6 一对多的删除(级联删除)探讨.mp44 [1 U6 v" `2 c& T% A1 U0 w+ r% O
    │  │      4-7  Create新增数据.mp49 D, m$ t# l& a: x
    │  │      5-1 图片资源与服务器交互全流程解析.mp4
    │  │      5-2 LinCMS文件上传系统解析.mp4
    │  │      5-3 LinCMS内置文件上传系统演示.mp4
    │  │      ' [( e5 X( I8 E$ @% B1 o2 G
    │  ├─第22周 CMS权限、双令牌机制解析* w. ^( W$ d: q3 E
    │  │      1-1 LinCMS权限系统要素.mp4
    │  │      1-2 LinCMS动态权限剖析 (1).mp4! s- Z% q* i9 g0 ?# u0 k! \% ?5 G
    │  │      1-3 LinCMS权限系统机制(2).mp4
    │  │      1-4 LinCMS权限系统(3)接口的元数据信息.mp42 C3 S" r8 |6 X' N0 f
    │  │      1-5 LinCMS权限系统(4)分组权限GroupRequired.mp4
    │  │      1-6 谈字段级别的权限控制方案.mp4
    │  │      2-1 Web开发中的双令牌(access_token和refresh_token).mp4- R$ D# d. a# t2 S0 ], k% x
    │  │      2-2 双令牌(ac_token和re_token)机制全解析.mp4
    │  │      2-3 谈JWT令牌安全性的问题.mp4# B$ C6 P* F. n* J; }" c3 e- ]: e  M
    │  │      2-4 系统日志与行为日志机制解析.mp4& {$ N' o) L# |& C) {: L6 E3 @, a
    │  │      3-1 商品管理操作需求分析.mp4
    │  │      3-2 商品详情数据查询思路分析.mp4
    │  │      3-3 MyBatis实体映射到DO的意义.mp4+ `8 T! o# K* o; J$ u
    │  │      3-4 MyBatis的复杂多表查询分析.mp4
    │  │      3-5 Mybatis联表查询(1).mp4! H/ ~0 L9 Z9 `  {
    │  │      3-6 MyBatis联表查询(2)带入参数与条件.mp4
    │  │      3-7 MyBatis联表查询(3).mp4
    │  │      3-8 MyBatis复杂联表查询(4)ResultMap的意义.mp4( I5 W! s: _0 u: d
    │  │      3-9 MyBatis复杂联查(5)混合1对1与1对多查询.mp4
    │  │      3-10 MyBatis关联查询(6)Collection集合映射.mp4; q* I! e& W+ ^3 l9 U% @, r
    │  │      3-11 MyBatis关联复杂查询(7)自动映射.mp4
    │  │      
    │  └─第23周 MyBatisPlus高级技巧及结束语
    │          1-1 即时搜索的意义.mp4
    │          1-2 一行代码一个接口是如何实现的?.mp4$ h& j& X* \( N2 u& b
    │          1-3 MyBatis多对多查询技巧(1).mp4
    │          1-4 MyBatis多对多表查询技巧(2)善于拆分多对多,简化查询.mp4& j9 P3 w) U' m5 s5 b
    │          1-5 MyBatis多对多查询(3).mp4& l3 n8 c( g9 l" k! t
    │          2-1 MyBatis插入复杂数据(1)分析SPU的录入难点.mp4
    │          2-2 MyBatis插入复杂数据(2).mp4
    │          2-3 MyBatis插入复杂数据(3)基础校验与业务校验.mp4: J* J1 a% M( I, I5 k+ d4 h
    │          2-4 MyBatis复杂新增(4).mp4! A$ D  V; n; O& ?3 c
    │          2-5 MyBatis复杂新增(5)MBP的批量插入saveBatch.mp4) q  P  T; W' n- p7 L
    │          2-6 MyBatis复杂新增(6)测试批量插入.mp4! H% U+ w& ]) z  }+ a
    │          2-7 MyBatis复杂新增(7)批量插入Spu详情数据.mp4
    │          2-8 MyBatis复杂新增(8)直接操作多对多中间表完成新增多对多.mp4* k8 A; `$ S& O4 H8 K+ o
    │          2-9 三阶段尾声.mp44 W# W, E% P* l5 p+ u% k  W4 }
    │         
    ├─阶段4:Vue 构建超好用CMS后台管理系统前端$ ~# E3 f4 V3 x* L
    │  ├─第24周 走进Vue3.0
    │  │      1-1  4阶段Vue3.0更新计划说明.mp4
    │  │      1-2 Vue3.0的变化综述.mp4) b6 w2 G9 f4 }2 X$ t- J1 ^1 p
    │  │      1-3 Vue的一些必备基础与前端开发工程师的基本要求.mp4$ y& N$ W( H, x+ ~9 C
    │  │      1-4 前端发展的4个阶段.mp4
    │  │      1-5 服务端渲染VS前端渲染.mp4  ^1 v8 F+ `: n  L7 {
    │  │      2-1 下载Vue3.0的单文件核心库.mp4. ^% n% Y! P- {; x1 K& {! L2 r
    │  │      2-2 单文件的Vue与2.xVue的Options风格.mp4% o/ T3 W# L& [% m! H) \! z. l/ B
    │  │      2-3 第一个Vue3.0的Demo.mp4
    │  │      2-4 Vue3的初始模型小结.mp49 n" e2 F( u( q) D( K
    │  │      2-5 第一个Vue的指令v-text.mp4; R2 v' e; d& I3 \: S5 j0 `
    │  │      2-6 v-html指令.mp4
    │  │      2-7 v-bind指令用于绑定标签的属性.mp4* [; ]1 V4 g) E
    │  │      2-8 带入JS表达式进行动态计算.mp4" w4 j5 W8 q9 y" s  V
    │  │      2-9 v-on指令监听事件.mp4
    │  │      2-10 条件渲染之v-if和v-show的选择.mp4' v4 t. k: I9 `# S
    │  │      2-11 多项条件渲染.mp4
    │  │      2-12 v-for列表渲染及扩展用法和注意事项.mp4
    │  │      
    │  ├─第25周 Vue3.0中的响应式对象9 C. n  B& l1 r3 e! Y: ~# U9 f
    │  │      1-1 双向数据绑定.mp4
    │  │      1-2 Vue3.0的ref包装响应式对象.mp4% T3 B; ?/ s) s8 w% E3 s
    │  │      1-3 双向数据绑定与响应式对象.mp4
    │  │      1-4 Vue3.0的响应式对象使用场景.mp4
    │  │      2-1 Vue3.0中的watch函数(1).mp4) Z8 U8 w% [- ?
    │  │      2-2 Vue3中的watch函数(2)基础使用范例.mp4; s+ Y) L: {. {3 K
    │  │      2-3 Vue3中watch函数(3)高级用法-监听reactive对象.mp4
    │  │      2-4 Vue3中的watch(4)监听reactive对象下的单个属性.mp4/ S' ]1 s1 ^0 {9 L5 D! R
    │  │      3-1 watch小结与引入computed技术属性.mp4
    │  │      3-2 computed函数的基本用法.mp4
    │  │      3-3 watch、computed和普通JS函数的场景和区别.mp4! m# E- j$ c) \4 ^
    │  │      3-4 computed的set和get方法.mp4
    │  │      
    │  ├─第26周 Vue3.0 中的组件
    │  │      1-1 Vue3.0中的组件如何编写?.mp4  R5 r; Q' g) S  }3 E6 Q; E
    │  │      1-2 Vue4.xCli创建Vue3项目或者使用Vite创建Vue3项目.mp4
    │  │      1-3 一切皆组件.mp4
    │  │      1-4 VueCli应用程序目录结构解析.mp40 B  T+ b, ]# }$ K6 G
    │  │      1-5 Vue里自定义组件的定义与引入.mp41 i' H* V5 i- o0 \# S* y# Z4 n
    │  │      2-1 导入resetcss并显示一张图片.mp4
    │  │      2-2 我的第一个Vue3.0自定义组件.mp4% W4 S* @7 A' i+ M8 T% l# F1 J
    │  │      2-3 Vue组建的一些命名规范参考.mp4' R) _6 i; ^; ^2 Y$ a
    │  │      2-4 如何显示一张assets目录中的图片?.mp4
    │  │      2-5 使用require加载图片.mp4* F& B; L. y7 i  E" R3 Y
    │  │      2-6 Vue3 setup函数在组件中的使用.mp4
    │  │      2-7 props属性传值时需要注意使用v-bind指令确定类型.mp4, C* a% B; k. m. i. Z3 }6 {5 a* g4 @
    │  │      3-1 vue的单向数据流特性.mp4' M# ~1 P# L( n$ [- ~
    │  │      3-2 父组件改变导致子组件的变化.mp4
    │  │      3-3 引用类型的修改导致父组件异常.mp4
    │  │      / m; [, d; X/ [5 m% u0 y
    │  ├─第27周 vue-router与vuex
    │  │      1-1 自定义组件监听原生事件.mp41 g# j! c' d$ S1 `" P
    │  │      1-2 自定义组件的自定义事件与传参.mp46 b, W2 x' G2 W$ o, {: G
    │  │      1-3 认识前端路由的意义.mp44 N1 D: F2 i# @% O  `  k
    │  │      1-4 初识Vue3.0的Router.mp4
    │  │      1-5 自己定义一个detail页面路由.mp4- i* }& H2 S3 ^' E5 W
    │  │      2-1 router-view与router-link.mp4
    │  │      2-2 vue-router编程思想(1).mp4  X  q  y: Q0 W2 u
    │  │      2-3 vue-router编程思想(2)入口组件的规范.mp4
    │  │      2-4 vue-router编程思想(3)router-view监听事件.mp4! P+ F) u  h) ]' l, A( |0 B
    │  │      2-5 vue-router编程思想(4)组件的切换优先考虑路由而不是条件渲染.mp41 J2 z. j$ y! K& }9 O$ n6 I
    │  │      2-6 默认情况下不能跨父组件通信.mp4
    │  │      3-1 嵌套路由(1).mp4/ {( K! }$ j2 c' S
    │  │      3-2 嵌套路由(2).mp4
    │  │      3-3 多页面跳转change-view.mp47 `) r9 h0 U6 \9 h# `6 ?" z
    │  │      3-4 Vue3中如何获取路由参数.mp4/ g+ E9 e* E' N" X" s" a$ e" h- [; S
    │  │      3-5 Vue3中的路由名称与统一跳转页面逻辑.mp4) q  V0 ]4 D1 M& U( m) w! e( l9 H
    │  │      4-1 为什么需要Vuex全局状态管理.mp47 t7 F$ p6 v( S
    │  │      4-2 定义Vuex的全局变量.mp4; Q% S9 \( j' r  ^3 B" D) Z
    │  │      4-3 Vuex改变全局状态变量并传参的3种方式.mp4* D, b. r& {* q! H; v; h
    │  │      4-4 计算属性和监听器在Vuex状态改变时的应用.mp4# l3 O2 I5 g# X
    │  │      4-5 利用全局状态管理变量进行路由切换.mp4
    │  │      
    │  ├─第28周 动态组件与Vuex全局状态管理* ]; M9 D, Q5 g0 }
    │  │      1-1 动态组件(1)总结Vue中几种切换视图组件的方案.mp4
    │  │      1-2 动态组件(2)初识动态组件.mp4" L& Q3 n' q. h/ L+ f; k3 l. Q
    │  │      1-3 使用keep-alive缓存组件状态.mp4" @- T3 v% Y3 W5 d$ a0 s" M
    │  │      2-1 为什么需要Vuex全局状态管理.mp4
    │  │      2-2 定义Vuex的全局变量.mp4
    │  │      2-3 Vuex改变全局状态变量并传参的3种方式.mp4
    │  │      2-4 计算属性和监听器在Vuex状态改变时的应用.mp4$ W. O( T4 I6 C
    │  │      2-5 利用全局状态管理变量进行路由切换.mp4/ `' f# M, ?% |# `3 S6 o* e# h! D: E
    │  │      
    │  ├─第29周 CMS电商管理系统前端搭建. e" R; Z' ?2 w* n
    │  │      1-1 实战LinCMSVue介绍.mp4. h! x6 ^& e  x; N% R
    │  │      1-2 实战的准备工作.mp4
    │  │      1-3 下载LinCMSVue并前后端运行联调.mp4- v  g# e+ \8 c) K. j6 h& M2 Q
    │  │      1-4 权限、角色与分组的关系.mp4& R' M8 J2 j  ]) p6 l" V
    │  │      1-5 字段级别的细粒度权限探讨.mp4: }2 f! R7 b) v, A! ^; `- ^
    │  │      2-1 舞台、导航栏、状态栏与reuse-tab.mp42 P( b, ^( {/ @! e: N, M# W1 u. ~
    │  │      2-2 LinCMS内置前端菜单与路由配置基础.mp4
    │  │      2-3 LinCMS舞台的搭建与配置.mp4
    │  │      2-4 LinCMS的一些重要全局配置.mp4  L/ Q$ a7 x3 b2 ~/ H8 E5 J
    │  │      3-1 第一个舞台的开发-Banner舞台.mp47 v4 g* g. J; L5 q3 Y
    │  │      3-2 第一个elementui的组件-table组件的应用.mp4
    │  │      3-3 Table组件的基本属性介绍.mp4
    │  │      3-4 Vue中的业务模型Model的应用.mp4% K- d" `1 T/ d
    │  │      3-5 使用LinCMSVue内置的axios请求API接口.mp4
    │  │      3-6 自定义表格列的内容-显示图片.mp4
    │  │      3-7 CSS预处理语言SCSS、LESS介绍.mp4
    │  │      3-8 引用LinCMSVue内置的主题色变量.mp42 o8 ]3 v4 S0 n$ i+ ^- w% I
    │  │      3-9 表格如何做才好看?.mp4
    │  │      3-10 el表格的悬浮ToolTip与一些设计原则.mp49 e/ c/ W8 m6 X1 s  r
    │  │      4-1 Banner详情页面的跳转.mp4/ x0 F9 c. I6 y" n4 X2 r+ O/ z( s
    │  │      4-2 el的form表达与input输入.mp4
    │  │      4-3 返回图标的制作与细节处理.mp4
    │  │      4-4 通过自定义事件实现返回.mp4
    │  │      4-5 v-permisson指令进行前端权限控制.mp4: l& R8 G% `' U1 `  A: u( z! h
    │  │      4-6 Vue组件的属性与获取BannerID.mp4: M7 D( A1 s1 P7 L& n
    │  │      4-7 在Form表单中展示服务器数据.mp4% Q' M  v' p4 {  q
    │  │      4-8 获取Form表单修改后的数据.mp4
    │  │      
    │  └─第30周 三端联调,全栈最后一公里" L2 S/ g+ N8 Q
    │          1-1 内置upload-imgs多图上传组件(1).mp4* N5 Y% H; `5 e: F  v
    │          1-2 多图上传图片上传流程(2).mp42 o2 o8 _! x8 t) z4 j( I
    │          1-3 如何获取upload-imgs的返回值?通过vue组件的ref来获取.mp4
    │          1-4 向服务器提交数据与更新成功通知.mp4! ?7 U" M  d; D7 y3 Z0 e; |9 m
    │          1-5 删除按钮未显示及空图片报错的bug的修正.mp4
    │          1-6 this.$confirm全局消息框的使用逻辑.mp4
    │          1-7 删除数据的逻辑处理.mp4
    │         
    └─阶段5:课件资料/ e8 ~. c, G9 s8 r3 D- y9 P/ ~6 h
        ├─APPKEY
        │      APPKEY.txt1 Z5 x9 g6 B1 I, l
        │      data.zip
        │      wxshop.rar
        │      简单接口搭建教程.7z
        │      : b) A0 {1 d: m6 K3 g; F
        ├─git
        │      deep-forest-master.zip
        │      missyou-master.zip! Q$ N! E- Q  F; u" a! ^
        │      Play-Algorithms-and-Data-Structures-master.zip9 F% D4 i; Q8 Y9 [/ c8 K* j
        │      sleeve-master.zip+ [: [8 T" _' ?( L. M4 I. Z
        │      sleeve-mini-test-master.zip
        │      sparrow-master.zip2 @8 B! A; ]. H6 S. O/ {2 Y
        │      & @* p+ [' v9 X
        └─资料
                7七月的风袖-sketch.psd
                app.json
                Java 8实战.pdf; W* \: l! K1 _
                Java核心技术 卷1 基础知识 原书第10版.pdf
                Java核心技术 卷2 高级特性 原书第10版.pdf
                lin-ui-ts.rar
                LunacySetup.exe
                MaxHeapDemo.zip
                navicat112_premium_cs_x64.exe: W& B! ?- a8 f, N3 X
                navicat12112pre.zip
                navicatpre1212500.zip* @- d* U8 r) r
                PatchNavicat.exe
                sku.gif: o! L0 Z5 ]8 L2 ~" m
                sleeve-master.zip
                wecharCode.jar
                字节面经.md
                研发笔试题目-V5.0.docx
                说明.txt: }" H9 W) Y# H下载地址
    游客,如果您要查看本帖隐藏内容请回复


    〖下载地址失效反馈〗:

    下载地址如果失效,请反馈。反馈地址: https://www.fstcode.com/thread-5527-1-1.html

    〖赞助VIP免灵石下载全站资源〗:

    全站资源高清无密,每天更新,VIP特权: https://www.fstcode.com/plugin.php?id=threed_vip

    〖客服24小时咨询〗:

    有任何问题,请点击右侧客服QQ咨询。

    回复

    使用道具 举报

  • TA的每日心情
    奋斗
    2023-5-3 17:26
  • 签到天数: 199 天

    [LV.7]常住居民III

    4

    主题

    335

    帖子

    1880

    积分

    终身VIP

    Rank: 12Rank: 12Rank: 12

    积分
    1880
    发表于 2021-1-28 14:54:08 | 显示全部楼层
    谢谢分享
    回复

    使用道具 举报

  • TA的每日心情
    开心
    2020-12-29 00:11
  • 签到天数: 217 天

    [LV.7]常住居民III

    9

    主题

    254

    帖子

    2421

    积分

    元婴程序员

    Rank: 6Rank: 6

    积分
    2421
    发表于 2021-1-29 10:13:43 | 显示全部楼层
    Java全栈工程师从Java后端到全栈2020
    回复

    使用道具 举报

  • TA的每日心情

    2021-5-7 16:35
  • 签到天数: 16 天

    [LV.4]偶尔看看III

    0

    主题

    38

    帖子

    193

    积分

    终身VIP

    Rank: 12Rank: 12Rank: 12

    积分
    193
    发表于 2021-3-15 12:09:56 | 显示全部楼层
    11111111111111111
    回复

    使用道具 举报

  • TA的每日心情
    奋斗
    前天 10:30
  • 签到天数: 329 天

    [LV.8]以坛为家I

    11

    主题

    573

    帖子

    3159

    积分

    终身VIP

    Rank: 12Rank: 12Rank: 12

    积分
    3159
    QQ
    发表于 2021-4-5 22:08:15 | 显示全部楼层
    66666666666666666666666666666
    回复

    使用道具 举报

  • TA的每日心情
    郁闷
    2021-8-6 14:45
  • 签到天数: 5 天

    [LV.2]偶尔看看I

    0

    主题

    11

    帖子

    53

    积分

    练气程序员

    Rank: 2

    积分
    53
    发表于 2021-4-6 21:08:02 | 显示全部楼层
    好全,希望有用
    回复

    使用道具 举报

  • TA的每日心情
    擦汗
    2021-8-12 11:29
  • 签到天数: 9 天

    [LV.3]偶尔看看II

    0

    主题

    12

    帖子

    72

    积分

    练气程序员

    Rank: 2

    积分
    72
    发表于 2021-4-26 13:21:23 | 显示全部楼层
    111111111111111111
    回复

    使用道具 举报

  • TA的每日心情

    2023-3-22 21:17
  • 签到天数: 79 天

    [LV.6]常住居民II

    2

    主题

    80

    帖子

    560

    积分

    金丹程序员

    Rank: 4

    积分
    560
    发表于 2021-7-26 23:56:18 | 显示全部楼层
    Java全栈工程师从Java后端到全栈2020
    回复

    使用道具 举报

  • TA的每日心情
    开心
    2021-9-20 10:42
  • 签到天数: 2 天

    [LV.1]初来乍到

    0

    主题

    5

    帖子

    27

    积分

    凡人程序员

    Rank: 1

    积分
    27
    发表于 2021-9-4 16:55:57 | 显示全部楼层
    Java全栈工程师从Java后端到全栈2020
    回复

    使用道具 举报

  • TA的每日心情
    擦汗
    2022-1-15 20:24
  • 签到天数: 80 天

    [LV.6]常住居民II

    0

    主题

    100

    帖子

    629

    积分

    金丹程序员

    Rank: 4

    积分
    629
    发表于 2021-10-31 09:34:53 | 显示全部楼层
    aaaaaaaaaa
    回复

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

     
    在线客服
    点击这里给我发消息 点击这里给我发消息
    用心服务所有程序员,做最好的编程视频网站
    QQ:354410543
    周一至周日 00:00-24:00
    联系站长:admin@fstcode.com

    QQ群(仅限付费用户)

    Powered by "真全栈程序员" © 2010-2023 "真全栈程序员" 本站资源全部来自互联网及网友分享-如有侵权请发邮件到站长邮箱联系删除!