下载地址:百度网盘
阶段一:电商前端-极致体验的高级电商小程序
试看
第1周 走进Web全栈工程师
开课第一周,我们会公布完整的课程体系计划,展示完整的项目效果,然后开始进行项目分析,项目技术选型,和小程序组件化开发方式和技巧。
课程安排:
1、全栈项目的前期规划与投入
2、了解《风袖》的整体架构;前置知识补齐;开发工具总览;
3、如何从0开始去架构一个电商级别项目
4、如何分析项目,典型项目的必备环节
5、配置文件与第一次调用服务端API,业务对象的重要性
6、对接服务端API,同时在前端全面使用async和await来封装Httpq请求,打造完美的小程序分层结构
7、小程序插槽Slot的基本概念
8、npm的semver语法规则
9、掌握小程序组件化开发方式和技巧,打好基础
10、全面使用自定义组件来构建首页的各个元素,提升开发效率
11、自定义组件与 LinUI Grid组件构建分类六宫格
12、组件设计与LinUI使用的几个非常重要的原则
第2周 Lin UI组件库的引入与编程原则
本周我们正式开始开发环节,由于项目比较复杂,所以我们需要LinUI来辅助我们构建页面。本章我们重点学习LinUI的Price组件,但学习组件不是目的关键是要学习组件的设计技巧和组件化编程的原则。
课程安排:
1、优惠券的一些基本概念及优惠券入口
2、小程序页面背景颜色到底怎么设置?
3、HTTP请求是否应该被合并?
4、函数式编程概念与技巧
5、深入理解原生scroll-view组件
6、是不是方法都需要加async和await?
7、spu-scroll滑动自定义组件
8、Lin UI Price价格组件应用
第3周 热身结束,开启试炼
前两周我们节奏稍缓,主要是给大家留出做作业的时间,本周开始我们逐步结束热身环节,开启进阶的内容,所以从本周开始我们节奏会加快。本周主要完成首页的热卖、上新、底部长滚动列表和瀑布流。
课程安排:
1、通过scroll-view抽象出的几个css编写原则
2、使用WXS解决复杂的逻辑问题
3、webstorm的骚操作自定义代码片段
4、自定义组件的边距问题与外部样式类应用
5、学会抽象来简化数据库表设计
6、新监听器Observers
7、flex布局的灵活应用
8、Hover点击态的应用与@import 公共样式表
9、组件自定义性的终极方案:抽象节点
10、什么是防抖、截流,如何应用?
11、自定义Paging对象详解(解决分页问题)
12、编码之美:多用return提前结束函数,少用else
13、折扣价和原价的常见错误逻辑
14、l-water-flow抽象组件式深入剖析
15、瀑布流的分页加载及初步成型
16、动态计算图片高和宽
17、Loading的思维逻辑:正在加载其实是一种常驻状态
第4周 攻克SKU和商品购物车
第四周很重要!我们会重点讲解SKU,SPU和购物车,完善购物车的复杂逻辑是每一个前端开发头疼的问题,更是电商项目的精髓所在,助力同学攻克难关!
课程安排:
1、页面跳转与新机制EventChannel
2、Spu、Sku、规格名和规格值的意义
3、调整思维,才能解决复杂的逻辑问题
4、借助符号化的命名方式思考问题
5、控制中心Realm与栅栏Fence
6、Fence的实例化、测试Fences
7、SKU总体思路流程分析与矩阵思维简化规格值提取
8、SKU方案整理 一:规格值的提取
9、SKU方案整理 二:核心问题是规格值状态的确定
10、用矩阵的思想提取规格值
11、数学小课堂:矩阵的转置与旋转/实现矩阵的遍历
12、谈数学、面向对象与编程思维
13、构建Cell对象
第5周 SKU核心:规格状态、编码、无货逻辑
上周我们为SKU打下了坚实的理论基础,本章我们逐步进入SKU的核心算法
课程安排:
1、SKU串码编号、 Fence与规格名的对应关系
2、Cell去重、自定义组件,初步完成规格矩阵渲染
3、SKU核心算法与具体实现
4、矩阵列不同规格的问题解答
5、排列组合在SKU中的应用
6、SkuCode类拆分Sku可能的路径
7、Combination组合函数 、完成PathDict字典
8、Cell的三种状态样式
9、选中、禁用与可选状态的切换
10、SKU选择的数据流向
11、自定义组件事件跨越组件边界
12、什么是SKU的潜在路径?
13、重新渲染矩阵与错误排查推演
14、获取Cell的行列号,实现Cell的正选和反选
15、SKU潜在路径、潜在路径PotentialPath分析
16、正选/反选Cell的规律推演
17、SkuPending类的职责
18、遍历所有Cell的潜在路径
19、完成SKU的逻辑选择
第6周 SKU收尾,优惠券、购物车讲解
本周,我们将SKU收尾,同时开始讲解优惠券和购物车。优惠券的核销与购物车数据同步是本周的重难点。前端有三座大山SKU、优惠券与数据同步,这同时也是最能培养我们编程思维的业务了。
课程安排:
1、Realm骨架的完善
2、默认SKU的概念与意义/默认SKU拆解后加入到SkuPending中
3、从两个指标评估循环对性能造成的影响?
4、完成默认规格渲染、Sku描述数据与规格选择联动
5、无规格商品的具体处理流程
6、规格选择提示的复杂逻辑处理/规格选择与SKU描述联动
7、setData性能探讨
8、获取code码和确定的SKU
9、加入购物车行为逻辑与商品详情页面
10、l-counter数量选择器/数量控制属性
11、无货情况分析、三种触发无货状态的机制
12、使用iconfont在线字体图标、引入自定义字体图标
13、商品详情图展示与隐藏页面滚动条方案
14、realm滑动控制适应不同高度、优化realm的滚动条
15、决定用户立即购买还是加入购物车
16、规格的主观性与组合性
17、分类页面重难点讲解与segment组件的高级应用
18、动态计算窗口高度与px与rpx动态转换、不同机型上px向rpx的转换
19、动态计算Detail页面的Scroll-View高度
20、分类加载的性能与体验优化探讨
第7周 高级电商订单管理开发 与前端项目收尾
本周讲解订单管理,与订单金额计算,电商价格计算模式很多,关键是对于小数部分的保留问题,分为向上/向下取整,四舍五入,银行家模式等几种。掌握技术干货。此外,我们将结束整个前端部分,开始向Java核心进发
课程安排:
1、搜索页面:l-search-bar搜索输入框的应用
2、历史搜索记录类
3、数据结构队列在HistoryKeyword中的应用
4、设计模式:代理模式在HistoryKeyword中的应用
5、JS中的单例模式应用
6、关键词、标签二种搜索场景
7、空数据和空关键词处理
8、购物车缓存对象CartStorage
9、单例模式的Cart对象
10、Observer监听器的触发场景与常见错误理解
11、多次触发Observer监听器的”Bug“与解决方案
12、数据绑定延迟问题与解决方案
13、不稳定绑定变量的解决方案
14、自定义CheckBox
15、购物车全选、反选、联动
16、购物车金额合并计算
17、购物车数据同步
第7+周 购物车价格同步、优惠券、下单与微信支付
本周我们主要完成购物车数据与服务端数据的同步功能,同时优惠券的计算也是一个比较难的知识点。此外,我们还将进行订单与前端微信支付等细节处理
课程安排:
1、收货地址管理
2、微信授权机制详解(组件式授权与API式授权)
3、收货地址与缓存
4、前端价格合计
5、前端优惠券折扣扣除计算
6、前端价格校验
7、按品类使用优惠券的限制
8、小数位保留(向上、向下取整、四舍五入、银行家模式)
9、商品发货状态管理
10、获取用户微信信息
11、拉起微信支付
阶段二:Java SpringBoot API打造高级电商业务后端
第8周 初识SpringBoot
本周我们将谈谈SpringBoot出现前的Java Web发展历史,并介绍SpringBoot的版本号、建立Java环境以及初始化SpringBoot工程、搭建第一个API。
课程安排:
1、java web框架的发展历史
2、SpringBoot与面向抽象编程
3、完全搞懂SpringBoot版本号(主、次、增量、发布)
4、Java的2种构建工具:Maven与Gradle
5、开发工具使用Idea和三种创建SpringBoot项目的方式
6、使用Spring Initializr初始化SpringBoot应用程序
7、SpringBoot应用程序的基本目录结构
8、POM文件解析与Maven版本踩坑
9、运行我的第一个SpringBoot应用
10、新建API包与控制器
11、使用ResponseBody注解代替ServletResponse
12、SpringBoot热重启配置
13、@RestController注解
第9周 Java编程思想深度理论知识
本周是非常重要的深度Java编程思想理论知识,我们目的是要讲IOC和DI,要真正吃透这概念,并不简单。我们需要从最基础的interface多态过度到工厂方法,然后再过渡到IOC,最终实现OCP开闭原则
课程安排:
1、SpringBoot为什么有这么多复杂的概念?
2、Java是一个笨重的垃圾语言吗?
3、开闭原则OCP、为什么要面向抽象编程?
4、面向抽象的常见手段:interface、工厂模式与IOC和DI
5、第一个烂大街的代码风格
6、使用Interface的抽象风格
7、interface统一方法调用,但无法统一实例化
8、抽象的难点在于new对象
9、只有一段代码不负责对象实例化,才能保持稳定
10、工厂模式分离对象实例化
11、稳定性是相对的,我们需要将不稳定的代码隔离
12、变化是导致代码不稳定的本质原因
13、通过反射机制消除所有的变化
14、工厂模式+反射并不是IOC和D
15、IOC和DI的雏形、IOC的示例
16、为什么引入容器后可以让系统变得稳定?
17、DIP依赖倒置到底是什么
18、DI依赖注入的意义、依赖注入的原理
19、容器的作用是在装配对象
20、从DI的角度理解IOC
21、IOC的终极奥义
第10周 Spring与SpringBoot理论篇
上周讲解了面向对象的本质和OCP原则,强化对通用原则的理解,也为学习Spring做铺垫。本周我们将开始Spring的理论篇学习,不仅教你如何用Spring和SpringBoot,更是理解它的原理和机制
课程安排:
1、Spring、SpringMVC与SpringBoot的关系与区别
2、把握Spring的几个重要目的,提升学习效率
3、SpringBoot最基础的编程模式@Component+@Autowired
4、Stereotype Annotations 模式注解
5、Spring的实例化和依赖注入时机与延迟实例化
6、成员变量注入、Setter注入与构造注入
7、一个接口多个实现类的处理
8、@Autowired按类型注入
9、被动推断注入与主动选择注入
10、应对的变化的两种方案(策略模式与属性配置)
11、@Configuration配置类
12、变化最终要被隔离到配置文件中
13、@Configuation和@Bean的真实作用
14、深入剖析@Configuration的意义
15、@Configuration是一种编程模式
第11周 sprinboot的条件注解与配置
本周我们将详细讲解条件注解的作用与意义 他可以很好的应对变化
课程安排:
1、Bean名称与几种注入方式补遗
2、@ComponentScan包扫描机制
3、策略模式的几种实现方案
4、条件组件@Conditional的基本用法
5、Condition接口的ConditionContext参数
6、@ConditionalOnBean条件注解
7、SpringBoot自动配置原理解析
8、@SpringBootApplication注解的理解
9、自己编写一个Spring应用启动类
10、@Import 的两种用法
11、SpringBoot自动装配的spring.factories文件
12、Java SPI 机制解析
13、深度理论课总结
第12周 Java异常深度剖析
本周我们将深度剖析Java异常的分类与区别,同时学习在SpringBoot中应用和处理异常
课程安排:
1、如何统一捕获异常?
2、异常分类Error、CheckedException与RunTimeException
3、彻底理解CheckedException和RuntimeException
4、自定义HTTPException异常类
5、同时监听Exception和HTTPException
6、异常的深度思考和理解
7、在@ExceptionHandler中返回Unify消息
8、处理自定义HTTPException
9、为什么需要将异常信息写在配置文件里
10、自定义配置类管理配置文件
11、HTTPException的意义
12、SpringBoot主动发现机制和思想
13、根据目录结构自动生成路由前缀
14、自定义RequestMappingInfo
15、通过接口的形式发现类
16、完成自定义PrefixUrl
第13周 参数校验机制与LomBok工具集的使用
重点讲SpringBoot参数校验机制。参数校验选择使用JSR-303BeanValidation,使用注解的方式来进行参数校验。还将学习LomBok工具集常见注解及Builder构造模式
课程安排:
1、修改Properties文件的编码解决乱码问题、参数校验机制
2、获取URL路径中的参数和查询参数
3、数据传输对象DTO的接收
4、LomBok的基本使用方式、关于构造函数的几个注解
5、@Builder构造器模式的使用
6、JSR-269与Builder模式的序列化
7、使用@Validated注解进行基础参数校验
8、验证HTTP Body中的参数与级联校验
9、自定义校验注解的关联类
10、获取自定义校验注解的参数
11、捕获DTO类的参数校验异常信息
12、捕获Url和查询参数的异常
第14周 项目分层设计与JPA技术
本周我们将正式开始业务和数据库方面的技术讲解。我们在本阶段主要学习JPA的使用。JPA是基于Hibernate的一项技术,可以使用对象的方式来操作数据库。
课程安排:
1、Service业务逻辑层(服务层)的建立
2、层与层之间是否一定要用interface建立关联
3、创建数据表的3种主要方式、新建数据库和数据表
4、yml格式的配置文件
5、多环境配置文件(profiles)以及启用方式
6、数据库设计、实体关系与查询方案探讨
7、Maven依赖无法安装的几个解决方案
8、使用ORM的方式生成数据表
9、常用实体类注解与ORM生成表的优劣势浅谈
10、多对多关系的第三张表探讨(重点)
11、数据库设计步骤及数据库优化原则
12、实体与实体之间一对多关系配置@oneToMany
13、指定外键字段与是否需要物理外键
14、jpa的关联关系与规则查询
15、懒加载和急加载
16、双向一对多配置
17、双向一对多的外键配置问题
18、单向多对多关系配置与常见问题
19、双向多对多配置
20、如何禁止JPA生成物理外键
第15周 ORM的概念与思维
学习ORM的概念:逆向工程生成Entity,Entity基类提取/常见Entity注解。此外我们准备开始开发业务。当然相对于后面的高阶业务要简单,但不要因为简单就放松学习,这是很好的熟悉理论知识的资源