7七月亲授,Web领域市场呼声最高的主流技术栈逐一精讲
技术与业务深度融合,电商项目前后端开发的教科书级别案例
赋能Java从业者拥有更强的职场适应力和工作竞争力
半年时间,带你从后端走向全栈
从后端到全栈CTO,我花了10年,这10年浓缩成了120多个小时,我的10年,你或许只需要半年,我希望
你比我幸运,少一些投石问路式的摸索,以更快的速度成为能胜任更高职位,更受市场青睐的全栈工程师
阶段一:电商前端-极致体验的高级电商小程序
开课第一周,我们会公布完整的课程体系计划,展示完整的项目效果,然后开始进行项目分析,项目技术选型,和小程序组件化开发方式和技巧。
1、全栈项目的前期规划与投入
2、了解《风袖》的整体架构;前置知识补齐;开发工具总览;
3、如何从0开始去架构一个电商级别项目
4、如何分析项目,典型项目的必备环节
5、配置文件与第一次调用服务端API,业务对象的重要性
6、对接服务端API,同时在前端全面使用async和await来封装Httpq请求,打造完美的小程序分层结构
7、小程序插槽Slot的基本概念
9、掌握小程序组件化开发方式和技巧,打好基础
10、全面使用自定义组件来构建首页的各个元素,提升开发效率
11、自定义组件与 LinUI Grid组件构建分类六宫格
12、组件设计与LinUI使用的几个非常重要的原则
本周我们正式开始开发环节,由于项目比较复杂,所以我们需要LinUI来辅助我们构建页面。本章我们重点学习LinUI的Price组件,但学习组件不是目的关键是要学习组件的设计技巧和组件化编程的原则。
1、优惠券的一些基本概念及优惠券入口
2、小程序页面背景颜色到底怎么设置?
3、HTTP请求是否应该被合并?
4、函数式编程概念与技巧
6、是不是方法都需要加async和await?
前两周我们节奏稍缓,主要是给大家留出做作业的时间,本周开始我们逐步结束热身环节,开启进阶的内容,所以从本周开始我们节奏会加快。本周主要完成首页的热卖、上新、底部长滚动列表和瀑布流。
2、使用WXS解决复杂的逻辑问题
3、webstorm的骚操作自定义代码片段
4、自定义组件的边距问题与外部样式类应用
5、学会抽象来简化数据库表设计
7、flex布局的灵活应用
9、组件自定义性的终极方案:抽象节点
10、什么是防抖、截流,如何应用?
11、自定义Paging对象详解(解决分页问题)
12、编码之美:多用return提前结束函数,少用else
13、折扣价和原价的常见错误逻辑
15、瀑布流的分页加载及初步成型
16、动态计算图片高和宽
17、Loading的思维逻辑:正在加载其实是一种常驻状态
第四周很重要!我们会重点讲解SKU,SPU和购物车,完善购物车的复杂逻辑是每一个前端开发头疼的问题,更是电商项目的精髓所在,助力同学攻克难关!
2、Spu、Sku、规格名和规格值的意义
3、调整思维,才能解决复杂的逻辑问题
4、借助符号化的命名方式思考问题
7、SKU总体思路流程分析与矩阵思维简化规格值提取
8、SKU方案整理 一:规格值的提取
9、SKU方案整理 二:核心问题是规格值状态的确定
10、用矩阵的思想提取规格值
11、数学小课堂:矩阵的转置与旋转/实现矩阵的遍历
12、谈数学、面向对象与编程思维
上周我们为SKU打下了坚实的理论基础,本章我们逐步进入SKU的核心算法
1、SKU串码编号、 Fence与规格名的对应关系
2、Cell去重、自定义组件,初步完成规格矩阵渲染
3、SKU核心算法与具体实现
4、矩阵列不同规格的问题解答
5、排列组合在SKU中的应用
8、Cell的三种状态样式
9、选中、禁用与可选状态的切换
10、SKU选择的数据流向
11、自定义组件事件跨越组件边界
12、什么是SKU的潜在路径?
13、重新渲染矩阵与错误排查推演
14、获取Cell的行列号,实现Cell的正选和反选
16、正选/反选Cell的规律推演
18、遍历所有Cell的潜在路径
19、完成SKU的逻辑选择
本周,我们将SKU收尾,同时开始讲解优惠券和购物车。优惠券的核销与购物车数据同步是本周的重难点。前端有三座大山SKU、优惠券与数据同步,这同时也是最能培养我们编程思维的业务了。
3、从两个指标评估循环对性能造成的影响?
4、完成默认规格渲染、Sku描述数据与规格选择联动
5、无规格商品的具体处理流程
6、规格选择提示的复杂逻辑处理/规格选择与SKU描述联动
9、加入购物车行为逻辑与商品详情页面
11、无货情况分析、三种触发无货状态的机制
12、使用iconfont在线字体图标、引入自定义字体图标
13、商品详情图展示与隐藏页面滚动条方案
14、realm滑动控制适应不同高度、优化realm的滚动条
15、决定用户立即购买还是加入购物车
16、规格的主观性与组合性
17、分类页面重难点讲解与segment组件的高级应用
18、动态计算窗口高度与px与rpx动态转换、不同机型上px向rpx的转换
20、分类加载的性能与体验优化探讨
第7周 高级电商订单管理开发 与前端项目收尾
本周讲解订单管理,与订单金额计算,电商价格计算模式很多,关键是对于小数部分的保留问题,分为向上/向下取整,四舍五入,银行家模式等几种。掌握技术干货。此外,我们将结束整个前端部分,开始向Java核心进发
1、搜索页面:l-search-bar搜索输入框的应用
5、JS中的单例模式应用
6、关键词、标签二种搜索场景
7、空数据和空关键词处理
9、单例模式的Cart对象
10、Observer监听器的触发场景与常见错误理解
11、多次触发Observer监听器的”Bug“与解决方案
12、数据绑定延迟问题与解决方案
13、不稳定绑定变量的解决方案
15、购物车全选、反选、联动
16、购物车金额合并计算
第7+周 购物车价格同步、优惠券、下单与微信支付
本周我们主要完成购物车数据与服务端数据的同步功能,同时优惠券的计算也是一个比较难的知识点。此外,我们还将进行订单与前端微信支付等细节处理
2、微信授权机制详解(组件式授权与API式授权)
5、前端优惠券折扣扣除计算
7、按品类使用优惠券的限制
8、小数位保留(向上、向下取整、四舍五入、银行家模式)
10、获取用户微信信息
本周是非常重要的深度Java编程思想理论知识,我们目的是要讲IOC和DI,要真正吃透这概念,并不简单。我们需要从最基础的interface多态过度到工厂方法,然后再过渡到IOC,最终实现OCP开闭原则
1、SpringBoot为什么有这么多复杂的概念?
2、Java是一个笨重的垃圾语言吗?
3、开闭原则OCP、为什么要面向抽象编程?
4、面向抽象的常见手段:interface、工厂模式与IOC和DI
5、第一个烂大街的代码风格
7、interface统一方法调用,但无法统一实例化
8、抽象的难点在于new对象
9、只有一段代码不负责对象实例化,才能保持稳定
10、工厂模式分离对象实例化
11、稳定性是相对的,我们需要将不稳定的代码隔离
12、变化是导致代码不稳定的本质原因
13、通过反射机制消除所有的变化
14、工厂模式+反射并不是IOC和D
16、为什么引入容器后可以让系统变得稳定?
17、DIP依赖倒置到底是什么
18、DI依赖注入的意义、依赖注入的原理
19、容器的作用是在装配对象
21、IOC的终极奥义
上周讲解了面向对象的本质和OCP原则,强化对通用原则的理解,也为学习Spring做铺垫。本周我们将开始Spring的理论篇学习,不仅教你如何用Spring和SpringBoot,更是理解它的原理和机制
本周我们将详细讲解条件注解的作用与意义 他可以很好的应对变化
本周我们将深度剖析Java异常的分类与区别,同时学习在SpringBoot中应用和处理异常
重点讲SpringBoot参数校验机制。参数校验选择使用JSR-303BeanValidation,使用注解的方式来进行参数校验。还将学习LomBok工具集常见注解及Builder构造模式
1、修改Properties文件的编码解决乱码问题、参数校验机制
2、获取URL路径中的参数和查询参数
3、数据传输对象DTO的接收
4、LomBok的基本使用方式、关于构造函数的几个注解
7、使用@Validated注解进行基础参数校验
8、验证HTTP Body中的参数与级联校验
9、自定义校验注解的关联类
10、获取自定义校验注解的参数
11、捕获DTO类的参数校验异常信息
12、捕获Url和查询参数的异常
本周我们将正式开始业务和数据库方面的技术讲解。我们在本阶段主要学习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的关联关系与规则查询
17、双向一对多的外键配置问题
18、单向多对多关系配置与常见问题
20、如何禁止JPA生成物理外键
学习ORM的概念:逆向工程生成Entity,Entity基类提取/常见Entity注解。此外我们准备开始开发业务。当然相对于后面的高阶业务要简单,但不要因为简单就放松学习,这是很好的熟悉理论知识的资源
1、ORM的概念、意义与常见误区问题
2、数据库表数据的设计、导入与导出
3、项目开发顺序、导入项目的SQL文件
4、逆向生成Entity、简化实体字段
9、Theme表设计、接口开发
10、表的列行转换思维
11、SPU表设计分析
12、静态资源托管的几种方式、SpringBoot访问静态资源
13、为什么需要提供多个SPU数据的接口?
14、Spu实体映射、Spu详情数据查询
16、延迟思考,逐层深入
17、数据库多层关系设计思考与冗余字段设计原则
18、导航关系的配置原则(需要时才配置)
20、VO视图层对象的概念和意义
本周,我们主要学习JPA的查询方式。JPA对于提高发效率来说非常重要,需要认真学习,才能够灵活的应用到项目中提高开发效率。
3、Paging分页对象的构建
5、分类表的常见结构设计
6、无限级分类的数据表达方式(自定义协议路径)
8、JPA接口命名规则
9、Java Bean中可不可以写业务逻辑
11、规格、规格名与规格值的设计
12、通用泛型类映射方案详解
13、单体JSON对象的映射处理
15、谈Java类的内聚性、方法外置的问题
本周我们将学习如何在SB中传输JWT令牌与权限控制
周简介:本周我们学习优惠券系统设计、订单与支付系统。本周内容较多,难度较大。涉及到支付、核销、核算等业务
1、优惠券系统设计分析
2、带有实际业务意义的多对多的第三张表
3、优惠券的适用范围限定
4、高可用性的实现与完善
5、优惠券状态不确定性的处理方案
6、多对多向一对多的转化思维、多级属性精简技巧
7、JPQL完成复杂的多表查询、查询全场券
9、ThreadLocal与线程安全、资源释放时机
10、优惠券领取与异步状态的不可靠性探讨
11、注意注入到容器里的对象是否是同一个对象
12、异步机制下的数据一致性不一定能100%保证
13、优惠券过期问题的处理方案
14、定时器的解决方案:主动轮询与被动消息触发
15、不能以状态枚举来作为优惠券过期的唯一判断标准
16、订单中的优惠券合法性校验
17、Order订单表的数据库设计
18、前端提交的Price是不可信的
上周我们完成了订单、优惠券参数的校验,本周我们将实现”下单“这个操作。下单是一个很复杂的过程,因为我们实现的是延迟支付。延迟支付涉及到优惠券和库存的归还,这是一个非常值得探讨的问题。
2、订单校验-优惠券过期时间校验、满减券计算
3、订单校验-浮点数价格运算利弊分析、银行家舍去算法
5、订单校验-SpringBoot默认注入单例模式所带来的额问题
7、订单校验-非SpringBoot托管的Java对象、价格校验收尾
8、订单校验-BO的概念与意义、全场券的计算、reduce函数的巧妙应用
9、订单校验-完成优惠券最终校验
11、订单校验-最大购买数量、售罄、超卖检验、校验CouponChecker
12、如何让Spring调用Bean的有参构造函数?
13、下单逻辑-谈订单号的特点与注意事项
14、下单逻辑-创建订单、订单的五种状态
15、库存扣减-乱序思维、不能SQL1查询SQL2减除库存
16、库存扣减-Java锁、悲观锁的解决方案探讨、乐观锁的应用
17、优惠券核销、测试下单
18、订单状态的查询-订单支付过期状态的不可信
20、订单状态的查询-查询待支付订单、订单详情查询
本周讲解微信支付的预订单、回调信息处理;同时对于订单的过期状态我们需要使用延迟消息队列来触发,Redis的Key/Space 键名通知和RocketMQ都是非常好的延迟消息队列。
1、微信支付流程分析、微信支付配置类
2、订单过期时间的再次校验、订单是否取消的逻辑判断
3、统一下单(预订单)接口参数解析、常用参数组装
4、配置微信支付回调API地址、更新订单的PrepayId、微信支付签名计算
5、微信支付回调结果WxNotify接收与处理
6、从流中读取支付回调结果、更新订单状态Unpaid转为Paid
7、订单状态更新的加强判断逻辑、 微信支付测试
8、延迟消息队列是什么?能解决什么问题?
14、订单取消(3)优惠券归还与事件广播机制
15、作业:RocketMQ实现延迟消息队列
17、RocketMQ实现延迟消息队列触发定时器
阶段三:Java CMS后台管理系统-后端开发
本周开始数据库之旅,服务端编程最重要的就是高效操作数据库,本周重点讲解MyBatis的应用和常用的SQL语句,系统提升数据库知识,不论是对项目开发还是个人成长都让你受益匪浅。
本周,我们在MyBatis的基础上引入MyBatisPlus 看看MyBatisPlus到底好用在哪里本周,此外,我们还将学习Lin CMS内置的快捷方法、内置异常类
1、强大的LinCMS内置异常类剖析
2、为什么你看不懂源码
3、LinCMS中的软删除与物理删除
4、从UI交互谈程序员的综合素质
5、连表查询的一种方案:单表查询
9、一对多关系的多表是否可复用探讨
10、一对多的删除(级联删除)
12、图片资源与服务器交互全流程解析
13、LinCMS文件上传系统解析
4、谈字段级别的权限控制方案
7、谈JWT令牌安全性的问题
8、系统日志与行为日志机制解析
9、商品管理操作需求分析
10、商品详情数据查询思路分析
12、MyBatis的复杂多表查询分析
13、Mybatis联表查询、带入参数与条件
本周,随着业务的复杂,我们将用到MyBatis的更多高级特性,以处理复杂的查询和添加。在这个实际的复杂业务中,我们可以体会到MyBatis的强大
2、一行代码一个接口是如何实现的?
3、MyBatis多对多表查询技巧
4、MyBatis如何插入复杂的数据(关联多个表的新增)
5、MyBatis插入复杂数据-分析SPU的录入难点
6、MyBatis插入复杂数据-基础校验与业务校验
8、MyBatis复杂新增-测试批量插入
9、MyBatis复杂新增-批量插入Spu详情数据
10、MyBatis复杂新增-直接操作多对多中间表完成新增多对多
阶段四:Vue 构建超好用CMS后台管理系统前端
本周我们开始Vue3.0基础的学习。包括Vue3.0的新特性,改变;Vue的思想,Vue3.0的初始化与常用指令等
1、Vue的思想、Web前端发展与Vue3.0的新特性
3、Vue的一些必备基础与前端开发工程师的基本要求
4、前端发展的4个阶段
5、服务端渲染VS前端渲染
6、下载Vue3.0的单文件核心库
10、Vue3的初始模型小结
本周,我们重点学习 Vue3中的响应式对象。响应式对象的应用和定义是Vue3中非常重要的内容,和Vue2有很大的区别
2、列表渲染、条件渲染
8、Vue其他基础知识
本周,我们开始学习Vue中最为重要的组件化编程学习。组件化编程是Vue中的核心概念,在Vue3中组件的构建方式也和vue2是所不同的。此外,我们将做一个小demo在实战中进一步理解Vue3
1、Table组件与各种用法
2、数据导出组件/表单组件
3、消息推送组件/Button按钮组件
4、前端的面向对象编程体系
5、根据实际需求灵活添加组件
本周我们将学习动态组件,并总结在Vue中切换组件的4种方式:显示隐藏、条件渲染、路由切换与动态组件。我们会中间讲解Vuex的意义与使用场景
3、模板与列表渲染/使用指令
5、前端权限控制/权限与渲染/异常处理
本周我们将开始Lin-CMS-Vue的学习,综合前面学习的所有知识来一次真正的大实战
2、CMS的路由与导航系统
3、CMS的一级、二级以及三级菜单
5、CMS的Logger日志系统/业务插件系统
6、用户系统/前端权限系统
8、规格管理/六宫格管理/分类管理/订单管理
本周我们将在CMS中进行诸如用户个人相关的数据管理开发,包括用户资料、用户收获地址、用户快递信息等功能,整个电商系统进行联调,打通微信小程序前端,java服务端,CMS管理系统。
2、三端部署原理与思路
3、Linux服务器上常用部署软件安装
4、小程序部署注意事项
您需要先支付 9.9元 才能下载此资源!