#31
前言
最近挺忙的 再忙一些复习周的事情 然后大概快两礼拜没认真更新学习日志了。今天以后差不多都有时间,每天都可以至少安排10h时间 来专门学习了。 以下内容,先总结一下前面几天学的,以及目前进度,学习的时候踩过的坑,以及未来两周尽可能详细的短期规划。
学习小结
差不多10天前开始入门了软件测试 看的课程什么的 具体的在#16开始 看的一个老外课程还有黑马测试 感觉就是看了一些理论 和工具的使用 但是 具体的测试又没写 工具理论又忘记了 <白雪警告!!!>真是密码的。 这算是一个大坑 ,太理论 的课程 下次不听了!!
然后除了软件测试,还干的啥?实操,就是 黑马javaweb 13-后端Web进阶(AOP) - 飞书云文档 里面有一个talis学生信息管理系统 之前都是看视频没实际操作 觉得很简单 然后自己写 就不会 看着笔记抄也会出现一些奇怪的bug(还花了我好几天夜晚写),密码的然后自己又不懂调。大概是8-12章那个实战任务 然后就是crud springboot 和spring mvc 然后是mybatis xml 也确实是学了一点点东西 但是仅仅局限于 理论 和基础架构 具体的细节和语法还是很多不懂 比如说一些spring注解 也不知道怎么用 sql建表语句看得懂倒是这样 但是如果让自己写 还是一头雾水 ,最后就是难绷。这也算是一个坑把。独立开发能力,以及有点急于求成,基础很不稳,感觉。
然后还干了啥我想一下 ,java八股文 ,之前是看小林coding 打印了 基础 和集合基础 但是好像又没怎么看了,主要是有挺多概念没听过不懂 背不下来 也不会用 有点太底层了 但是好像是因为java基础没打牢 密码的还得回顾一下底层的源码实现一下 下次一定。多敲几遍,尽量记住一些常见类的实现的底层代码以及原理。然后就是还打印了一个网上很热门的字节面试题 怎么说153页 但是也没怎么看 有点唐了我呵呵。下次肯定看。然后就是小林的八股的spring mysql 数据结构也可以这几天看一下 主要是基础底层代码实现 以及原理 得应付一下考试这个是黑马八股,可以看看先把。我觉得当听书听了也错,边听,边写博客 打发时间吧,八股离我还有点远。
我想想最唐的是啥,0基础开发项目。本来想从0开始学,然后自底向上学,发现这样更不行不通 对于开发一个完整的项目就必须要知道他的详细的架构 以及所用的技术栈。 写的几个小项目把,几个都没成呵呵。第一个,软件实践课的大作业,银行管理系统,两个表,一个用户登录 一个个订单交易表,基于java swing + jdbc + mysql + 登录密码哈希加密。做的第一个小小小的代码项目 ,当还是大多是ai 帮忙开发的,这是第一次开启java 数据的使用 了解了一下 数据库的链接 和使用 以及了解了一下crud。 第二个,我想要写一个电子协会,前端项目 但是胎死腹中, 我本来想要先构建一下前端 ,但是发现自己前端框架 不会用比如vue3 没用上 纯ai +前端3大件乱堆 ,然后就是给ai调 再调,浪费时间长 也没学到具体的技术栈。第三个,想写一个基于微信app的家教兼职项目,做了数据库的表5个表,然后想=用的框架是vue+ springboot+ spring mvc+ mybatis xml+mysql 结果就是vue 前端没详细学 用ai写 想边写边学具体语法但是发现 ai写的具体项目是错的 然后我也调不对 ,然后就是这样了,前端构建失败,后端 写了登录注册 但是发现根本用不了 也不知道到底错误再哪里,就在哪里拼命看代码 想找bug 但是具体的语法细节自己又不熟 有改不对,更唐的是,自己选的 技术栈还错了,微信小程序要用flutter前端架构。 然后vue还需要加一个ts一些学,函数式编程。其次是具体的技术栈不需要固定死,某些api用后端java 有些用node.js 或ts也是可以的。最后一个是,黑马若依的架构,看了一点,然后太多不会没写。
最后是一下唐的东西,比如想起来自己注册了域名 然后学了一下域名解析 具体的打包 比如前端怎么上架nginx,后端Tomcat 然后就是了解了一下web3 闲着没事看了一下 发现并不难比如solidity 但是好像对我没有什么具体的应用方面。
计划
后面可能的计划 java,数据结构的期末课程 速通的过一遍看一下 然后基础java 基础以及集合 的八股文 代码实现 主要是Java算法题
黑马的文档 以及课程给他打完 每天打一点 先看文档再看视频 然后多做一点笔记就可
然后就是要把 java web 后面几个代码也写了 实战操作 前端 和 部署,
几个技术栈自学 一下 spring boot spring mvc mybatis具体学一下 ssm架构
苍穹外卖先来 120h 10天
黑马苍穹外卖用到的技术栈如下:
### 后端
- **核心框架**:Spring Boot,用于快速构建RESTful API,简化配置,提供大量开箱即用功能。
- **数据访问层**:MyBatis或MyBatis Plus,用于与数据库交互,简化SQL操作,提供良好的灵活性。
- **数据库**:MySQL 8.0,存储业务数据。
- **缓存**:Redis 5.x,用于缓存管理,提升查询效率,减轻数据库压力。
- **消息队列**:RabbitMQ,用于解耦系统,处理异步任务,如订单支付后的异步通知。
- **安全框架**:Spring Security,用于用户身份验证与授权,确保系统的安全性。
- **API文档管理**:Swagger,生成API文档,提供可视化接口测试功能,帮助前端开发调试API。
- **工具类**:Lombok,简化Java代码,减少样板代码;Hutool,提供了丰富的工具方法,提高开发效率。
- **分布式锁**:Redisson,实现分布式锁,确保库存和订单的并发安全,避免超卖和数据不一致。
- **定时任务**:Spring Task,实现订单的超时处理,超时自动取消订单。
- **日志分析**:ELK日志分析系统,用于收集、分析和可视化系统日志。
### 前端
- **管理端**:Vue.js + ElementUI构建后台管理系统界面。
- **用户端**:微信小程序开发用户点餐界面。
- **图表展示**:Apache ECharts,在管理端用于展示统计图表。
### 其他
- **文件存储**:阿里云OSS,存储文件,如菜品图片等。
- **反向代理与负载均衡**:Nginx,作为http服务器,部署静态资源,实现反向代理和负载均衡。
- **版本控制**:Git,进行版本控制,方便团队协作中的代码管理。
- **接口测试**:Postman,模拟用户发送各类HTTP请求,进行接口测试。
- **单元测试**:JUnit,开发人员进行功能单元测试。
- **JWT**:用于在通信双方以json数据格式安全的传输信息,主要用于登录认证。
然后后面就是写项目了,黑马点评 项目 80h 一周内
B站黑马点评项目采用了多种技术构建,以下是其主要技术栈:
- **后端**:
- **Spring Boot**:快速构建Spring项目,简化配置,方便集成各种框架。
- **MySQL**:用于存储项目中的各种数据,如用户信息、店铺信息、点评信息等。
- **MyBatis Plus**:在MySQL基础上,作为数据访问框架,简化了数据库操作,提供了丰富的CRUD方法。
- **Redis相关**:
- **spring - data - redis**:用于在Spring项目中操作Redis,提供了统一的API。
- **Lettuce**:是操作Redis的高级客户端,性能较好。
- **Apache Commons Pool**:实现了Redis连接池,管理Redis连接,提高性能和资源利用率。
- **Redisson**:基于Redis的分布式数据网格,用于实现分布式锁、分布式集合等功能。
- **HuTool**:工具库合集,提供了各种实用的工具方法,如字符串处理、日期处理等,提高开发效率。
- **Lombok**:通过注解方式减少Java代码的冗余,如自动生成Getter、Setter、构造函数等。
- **Tomcat**:作为Java Web应用服务器,部署后端项目,处理HTTP请求。
- **前端**:
- **原生HTML、CSS、JS**:构建前端页面的基础技术,HTML用于结构搭建,CSS用于样式设计,JS用于实现交互逻辑。
- **Vue 2**:渐进式JavaScript框架,用于构建前端应用,实现数据绑定、组件化开发等,提高开发效率和代码可维护性。
- **Element UI**:组件库,提供了丰富的UI组件,如按钮、表单、表格等,基于Vue 2开发,能快速搭建美观的前端界面。
- **其他**:
- **Nginx**:用于前端项目的部署,具有反向代理、负载均衡等功能,可以隐藏真实服务地址,分担服务器压力,还能进行静态资源的处理。
- **ThreadLocal**:用于在同一个线程内共享数据,在黑马点评项目中用于存储登录用户的信息,避免在不同方法之间频繁传递用户信息。
主要 学的是redis
Redis 是高性能键值数据库,简单说就是 **快速存、取数据的“内存工具箱”** ,常用在这些场景:
- **加速访问**:把高频数据(如商品信息、用户资料)放内存,替代数据库,让查询更快、减轻数据库压力;
- **维持会话**:分布式系统里,存用户登录状态(Session),让不同服务节点能共享、识别身份;
- **异步通信**:当消息队列,暂存异步任务(如注册发邮件),实现任务解耦、提升主流程效率;
- **实时统计**:用原子操作计数(在线人数、阅读量),或借有序集合做排行榜(销量榜、积分榜 );
- **保障可用**:通过主从、哨兵、集群模式,扩展性能、自动故障转移,让服务更稳。
一句话总结:**靠内存快速读写,帮系统“提速、解耦、稳运行”,是高并发场景里常用的“效率神器”** 。
,写完 这个再写若依 和几个小项目 饿了么 医疗 120H + 40H 15天
若依框架的技术栈涵盖后端、前端、数据库、中间件等多个方面,以下是详细介绍:
- **后端技术**
- **Spring Boot**:作为核心框架,用于快速构建Spring应用,简化配置,实现快速开发。
- **MyBatis**:持久层开发框架,用于与数据库交互,进行数据的持久化操作。
- **Druid**:数据库连接池,提供高效的数据库连接管理,提升系统性能。
- **Redis**:内存数据库,用于缓存数据,提高系统的读写速度,应对高并发场景。
- **Shiro/Spring Security**:安全框架,用于实现用户身份认证、授权和访问控制,保障系统安全。
- **Quartz**:定时任务框架,用于实现定时任务的调度和管理。
- **前端技术**
- **Vue.js**:流行的前端框架,用于构建用户界面,采用组件化开发,提高代码的复用性和可维护性。
- **Element UI**:基于Vue.js的UI组件库,提供丰富的组件和样式,快速搭建美观的前端界面。
- **Axios**:用于前端与后端进行数据交互的HTTP库,方便发送请求和处理响应。
- **Webpack**:前端构建工具,用于打包、压缩、优化前端资源,提高页面加载速度。
- **数据库**:支持多种数据库,如MySQL、Oracle、SQL Server等,可根据项目需求选择合适的数据库。
- **中间件**
- **Nginx**:高性能的Web服务器、反向代理服务器,用于处理静态资源、负载均衡和反向代理等。
- **RabbitMQ**:消息队列中间件,用于实现异步消息处理、解耦系统模块,提高系统的可靠性和可扩展性。
- **Elasticsearch**:分布式搜索引擎,用于全文搜索、数据分析等场景。
- **其他工具**
- **Node.js**:用于前端开发,提供服务器端运行环境,安装Node.js 12或更高版本。
- **Git**:用于版本控制,方便团队协作开发,管理代码的版本和变更。
数学建模 穿插学习
所有技术栈
AI 学习建议
前两周
学习建议:从基础夯实到项目实战的系统规划
一、核心问题诊断与优化方向
1. 现有学习痛点分析
理论与实践脱节:看视频学理论但缺乏代码实操,导致工具和框架使用生疏(如软件测试工具、Spring 注解)。
基础不牢急于求成:Java 基础(如集合源码、并发原理)和数据结构薄弱,直接挑战复杂项目(如微信小程序开发),导致 bug 频发且无法调试。
项目选型与技术栈混乱:前端(Vue3 / 微信小程序)、后端(Spring Boot)、数据库(MySQL/Redis)技术栈跨度大,未形成体系化学习路径。
学习资源杂而不精:同时接触多门课程(黑马、老外课程、小林 coding),但缺乏主线,导致知识碎片化。
2. 优化策略
先筑基后拓展:用 2-3 周集中补牢 Java 基础和数据结构,再切入框架和项目。
项目分阶段拆解:从 “单模块 CRUD” 到 “完整前后端项目” 逐步升级,避免直接挑战复杂系统(如微信小程序)。
技术栈聚焦:当前以 Java 后端为主(Spring Boot+MyBatis+Redis),前端暂学基础 Vue2,后续再深入其他框架。
二、分阶段学习路径规划(未来 2 周)
阶段一:Java 基础与数据结构攻坚(3 天)
目标:掌握 Java 核心语法、集合框架、并发编程基础,能独立完成简单算法题。
每日任务
:
上午
:
复习《Java 核心技术》前 6 章(变量、面向对象、异常处理),用 IDEA 敲写书中示例(如类的继承、多态案例)。
刷 LeetCode 简单题(2 题 / 天),重点练数组、链表操作(如21. 合并两个有序链表)。
下午
:
学习 Java 集合框架源码(ArrayList/HashMap),参考《深入理解 Java 集合框架》,手写简易版 ArrayList(实现 add/remove 方法)。
用 JMH 工具测试不同集合性能(如 ArrayList vs LinkedList 的随机访问速度)。
晚上
:
看小林 coding《Java 并发编程》前 3 节(线程创建、锁机制),用synchronized和ReentrantLock实现简单线程安全案例(如票池售票)。
整理笔记:用思维导图梳理 Java 基础知识点(如 “Java 内存模型”“垃圾回收机制”)。
资源推荐:
书籍:《Java 编程思想(第 4 版)》前 10 章、《数据结构与算法分析:Java 语言描述》
视频:B 站《尚硅谷 Java 零基础教程》(跳过已掌握部分,重点看集合、并发)
阶段二:Spring Boot+MyBatis 基础整合(4 天)
目标:掌握 SSM 框架核心功能,能独立完成单表 CRUD 项目。
每日任务
:
第 1-2 天:Spring Boot 入门
用 Spring Initializr 创建项目,集成 Web、MyBatis、MySQL 依赖,实现 “Hello World” 接口。
学习注解(@SpringBootApplication/@RestController/@Autowired),理解自动配置原理(查看spring.factories文件)。
实战:用 Spring Boot+MyBatis 完成 “学生信息管理系统”(单表 CRUD),参考黑马教程但独立写代码,不照抄。
第 3-4 天:MyBatis 进阶与数据库操作
学习 MyBatis XML 映射文件(ResultMap / 动态 SQL),对比注解开发的优缺点。
实战:实现 “图书管理系统”,包含多表关联查询(如 “图书 - 作者” 一对多关系),用@One/@Many注解或 XML 配置。
数据库优化:学习索引创建(复合索引)、慢 SQL 排查(用 MySQL Explain 分析执行计划)。
避坑指南:
每完成一个功能(如新增接口),立即用 Postman 测试,避免积累多个 bug 后难以调试。
遇到框架报错(如 “Bean 注入失败”),先看控制台日志,再查依赖版本是否冲突(用mvn dependency:tree命令)。
阶段三:Redis 实战与项目整合(5 天)
目标:掌握 Redis 核心数据结构,能在项目中实现缓存、分布式锁等功能。
每日任务
:
第 1-2 天:Redis 基础操作
安装 Redis 服务器,用 Redis-cli 练习 5 大基础数据结构(String/List/Hash/Set/ZSet)。
实战:用 Spring Data Redis 实现 “博客浏览量计数”(String 类型)、“评论列表缓存”(List 类型)。
学习 Redis 持久化(RDB/AOF)和主从复制,用 Docker 部署一主二从集群。
第 3-4 天:Redis 高级应用
实现分布式锁(Redisson):在 “商品秒杀” 场景中防止超卖,对比setNx与 Redisson 的实现差异。
缓存穿透 / 击穿 / 雪崩解决方案:用布隆过滤器(BloomFilter)防止穿透,热点数据加随机过期时间。
第 5 天:整合到苍穹外卖项目
参照黑马教程,为苍穹外卖的 “菜品查询” 接口添加 Redis 缓存,对比缓存前后的响应时间(用 JMeter 压测)。
学习项目中的 Redis 应用场景:订单超时取消(用 SortedSet 实现延迟队列)、用户会话存储(Hash 类型)。
关键工具:
Redis 可视化工具:RedisInsight(查看数据结构和集群状态)
压测工具:JMeter(测试缓存对 QPS 的提升效果)
阶段四:数学建模与 Java 结合(3 天)
目标:用 Java 实现基础数学模型,打通技术与建模的连接点。
每日任务
:
第 1 天:数据处理与可视化
用 Java+Apache Commons Math 库实现线性回归模型,处理 “房价预测” 数据(CSV 读取→特征标准化→参数求解)。
用 JFreeChart 绘制预测值与真实值的对比折线图,理解数学建模中的 “模型评估” 环节。
第 2 天:优化模型实现
用 Java 实现遗传算法求解 TSP(旅行商问题),重点理解选择 / 交叉 / 变异算子的代码逻辑。
对比 Python(SciPy)与 Java 在数值计算上的性能差异(如大规模矩阵运算时的耗时)。
第 3 天:数学建模与项目结合
在黑马点评项目中,用 Java 实现 “用户相似度计算”(基于余弦相似度),为后续推荐系统做铺垫。
学习数学建模论文中的技术方案如何转化为代码(如将层次分析法的权重计算写成 Java 工具类)。
三、高效学习方法与避坑技巧
“理论→代码→调试” 闭环学习
每学一个框架知识点(如 Spring Boot 自动配置),先看官方文档或源码注释,再写 10 行以内的测试代码验证,最后故意制造错误(如删除必要依赖)观察报错信息。
项目拆解与模块化开发
以苍穹外卖为例,先完成 “员工管理模块”(单表 CRUD),再逐步添加 “菜品管理”(多表关联)、“订单系统”(事务 + 消息队列),每次只聚焦一个模块的核心功能。
错误记录与复盘
建立 “bug 日志” 文档,记录问题现象(如 “MySQL 连接超时”)、排查步骤(查看端口 / 日志)、解决方案(修改连接池参数),每周复盘一次高频问题。
技术栈选择原则
初期避免追新:先用 Spring Boot 2.7(稳定版)而非 3.0,MyBatis 而非 MyBatis Plus,确保文档和教程资源充足。
前端暂学 Vue2+Element UI,后续再学 Vue3,避免同时接触多个框架导致混淆。
四、每日时间分配与进度跟踪
时间规划(10 小时 / 天)
:
markdown
08:00-10:00 理论学习+笔记(Java基础/框架原理)
10:30-13:00 代码实操(完成当日任务案例)
14:30-17:00 项目开发(按阶段目标推进)
18:30-20:00 错误调试+文档查阅
20:30-22:00 数学建模知识补充+代码实现
进度检查工具
:
用 Notion 或飞书文档记录每日完成情况,附代码截图和运行结果。
每周日晚用 XMind 梳理本周知识点,标注未掌握的部分(如 “Redis 分布式锁原理”),下周优先攻克。
五、备选资源与问题应急方案
优质教程备份
:
Spring Boot 官方文档:https://spring.io/docs
MyBatis 中文文档:http://www.mybatis.org/mybatis-3/zh/index.html
Redis 官网教程:https://redis.io/docs/getting-started/
调试求助渠道
:
本地问题:用 IDE 断点调试(IDEA 的 “条件断点”“日志输出” 功能)。
框架问题:在 Stack Overflow 搜索报错信息(如 “Failed to configure a DataSource”),参考高赞回答。
项目协作:加入黑马程序员官方学习群,上传代码片段寻求帮助(避免直接问 “怎么运行不起来”,需说明具体错误)。
通过以上规划,可在 2 周内系统提升 Java 开发能力,同时兼顾数学建模的技术落地,避免重复踩 “理论脱离实践” 的坑。关键在于每日严格执行任务,并通过 “写代码→改 bug→复盘” 形成学习闭环。
第3到第6周
第 2 周到第 6 周学习规划:从项目实战到架构进阶
一、第 2-3 周:复杂项目实战与微服务基础(14 天)
阶段目标:掌握前后端分离开发模式,完成黑马点评项目全流程,入门微服务架构。
第 2 周:黑马点评项目攻坚(7 天)
核心技术栈:Spring Boot+MyBatis Plus+Redis+Vue2+Element UI
每日任务拆解:
第 1-2 天:基础功能实现
完成用户模块(登录注册、JWT 认证),用 Redis 存储用户会话,实现手机号验证码登录(对接阿里云短信服务)。
学习 ThreadLocal 存储当前登录用户信息,避免在方法间传递参数(如UserHolder.get()获取当前用户)。
第 3-4 天:业务模块开发
实现店铺模块(多条件查询 + Redis 缓存),用 Redisson 实现分布式锁解决库存超卖问题。
开发点评功能(点赞、回复),用 MySQL 全文索引优化搜索性能,对比 Elasticsearch 的搜索效率。
第 5-7 天:前端整合与项目优化
用 Vue2+Element UI 开发前端页面,通过 Axios 调用后端 API,实现店铺详情页的动态渲染。
性能优化:用 JMeter 压测接口,添加 Redis 缓存后 QPS 从 50 提升至 300+,记录优化前后的参数对比。
避坑指南:
前端跨域问题:在 Spring Boot 中配置@CrossOrigin,或用 Nginx 反向代理解决。
Redis 缓存一致性:采用 “缓存失效 + 消息队列” 方案(如更新数据库后发送 RabbitMQ 消息清除缓存)。
第 3 周:微服务架构入门(7 天)
核心技术栈:Spring Cloud Alibaba+Nacos+Sentinel+OpenFeign
学习路径
:
第 1-2 天:微服务基础概念
理解分布式系统与微服务的区别,用 Docker 部署 Nacos 注册中心,实现服务注册与发现。
实战:将黑马点评项目拆分为用户服务、店铺服务、点评服务三个微服务,通过 OpenFeign 调用。
第 3-4 天:流量治理与容错
学习 Sentinel 实现服务限流(如限制接口 QPS≤200)、降级(服务不可用时返回兜底数据)。
用 Sentinel Dashboard 可视化监控微服务调用链路,模拟服务雪崩场景并测试容错效果。
第 5-7 天:分布式事务与网关
用 Seata 框架解决微服务间的事务问题(如订单创建时同时扣减库存),对比 2PC 与 TCC 模式的实现成本。
部署 Gateway 网关,实现统一认证(JWT 校验)、请求路由(按 URL 分发到不同微服务)。
二、第 4 周:前端深化与跨端开发(7 天)
阶段目标:掌握 Vue3+TypeScript,完成微信小程序开发,实现前后端全栈能力。
核心任务拆解:
第 1-3 天:Vue3+TypeScript 进阶
对比 Vue2 与 Vue3 的响应式原理(Proxy vs Object.defineProperty),用 Composition API 重构黑马点评前端。
学习 TypeScript 类型系统,为接口参数添加类型注解(如user: { id: number, name: string }),避免运行时类型错误。
第 4-7 天:微信小程序开发
注册微信开发者账号,用小程序原生语法开发 “黑马点评用户端”,实现扫码点餐、订单查询功能。
小程序与后端对接:通过小程序登录获取 openid,调用后端接口完成用户绑定,学习小程序云开发(云数据库 + 云函数)。
实战项目:
开发 “校园二手交易小程序”,包含:
前端:小程序页面(商品列表、发布页、聊天功能)
后端:Spring Cloud 微服务(商品服务、用户服务、订单服务)
难点突破:小程序支付流程对接(统一下单→支付回调→订单状态更新)
三、第 5 周:分布式系统与高可用架构(7 天)
阶段目标:掌握分布式事务、消息队列、搜索引擎等中间件,提升系统设计能力。
技术栈与任务
:
第 1-2 天:分布式事务实战
用 Seata AT 模式解决 “订单 - 库存” 跨服务事务,模拟下单时库存不足的回滚场景。
对比本地事务与分布式事务的性能差异(本地事务 TPS 1000+ vs 分布式事务 TPS 300+)。
第 3-4 天:消息队列应用
用 RabbitMQ 实现异步任务:订单支付成功后,发送消息通知积分服务增加用户积分。
解决消息丢失问题:开启生产者 confirm 机制 + 消费者手动 ACK,记录消息消费状态到数据库。
第 5-7 天:搜索引擎与大数据处理
用 Elasticsearch 重构黑马点评的搜索功能,实现 “店铺名称 + 地址” 的模糊搜索,对比 MySQL Like 查询的效率(ES 查询耗时 < 50ms vs MySQL 300ms+)。
入门 Hadoop 生态:用 Hive 处理店铺评论数据,分析高频词(如 “好评”“环境好”),生成词云图。
四、第 6 周:数学建模与工程实践结合(7 天)
阶段目标:将数学建模方法融入实际项目,完成综合性解决方案。
分方向学习路径:
方向一:预测模型在电商中的应用(适合零售类项目)
用 Java 实现 LSTM 时间序列模型,预测店铺未来 7 天的订单量(数据预处理→模型训练→API 接口封装)。
在苍穹外卖项目中添加 “销量预测” 模块,为商家提供备货建议,对比传统 ARIMA 模型与 LSTM 的预测误差。
方向二:优化算法在物流中的应用(适合 O2O 项目)
用遗传算法解决 “骑手派单路径优化” 问题,输入订单位置坐标,输出最短配送路线(参考 TSP 问题)。
将算法集成到外卖系统的派单接口中,测试不同种群规模(如 100/500/1000)对求解效率的影响。
方向三:机器学习在推荐系统中的应用(适合点评类项目)
用协同过滤算法(ALS)实现 “相似店铺推荐”,基于用户浏览和点赞记录计算店铺相似度。
在黑马点评中添加推荐模块,对比基于内容的推荐(如标签匹配)与协同过滤的推荐准确率。
综合实战项目:
主题:“智能校园食堂系统”,整合数学建模与工程开发
功能模块:
销量预测:用 Prophet 库预测每日菜品需求量(数学建模部分)
就餐高峰预警:用时间序列分析识别就餐高峰时段,动态调整窗口开放数量
排队优化:用排队论模型(M/M/c 队列)计算最佳窗口数量,减少平均等待时间
技术实现:
后端:Spring Cloud Alibaba 微服务 + Redis 缓存
前端:Vue3+ECharts 可视化预测结果与排队模拟动画
五、全周期学习方法与资源支持
每周复盘与技能评估
制作 “技能雷达图”,每周评估 Spring Boot、微服务、Redis 等技能的掌握程度(1-5 分),针对性补足短板。
复盘项目中的技术难点,如 “分布式事务解决方案选择”“高并发下的缓存策略”,形成技术决策文档。
优质资源补充
书籍
:
《深入理解 Spring Cloud 与微服务构建》—— 掌握微服务设计原则
《Redis 开发与运维》—— 深入理解 Redis 底层原理与集群架构
《数学建模算法与应用》—— 将数学模型转化为代码的桥梁
视频课程
:
B 站《尚硅谷 Spring Cloud Alibaba 零基础到精通》
慕课网《微信小程序从入门到发布实战》
Coursera《Machine Learning for Time Series Data》(需科学上网)
面试与竞赛准备
每周刷 5 道 LeetCode 中等题(如动态规划、图论),重点练分布式系统相关算法(如一致性哈希)。
整理 Java 八股文高频问题:
微服务篇:CAP 定理与 Base 理论、服务注册与发现原理、分布式事务解决方案
并发篇:AQS 原理、CAS 与原子类、线程池参数调优
数据库篇:MySQL 索引底层结构、Redis 持久化机制、缓存穿透解决方案
六、风险预案与进度调整
时间管理:若某模块进度滞后(如微服务部署失败),可启用 “3 小时攻坚原则”:3 小时内未解决则暂时跳过,记录问题后继续推进,次日集中解决。
技术选型替代:若微信小程序开发受阻,可先学 uniapp 跨端框架,用一套代码同时生成 H5 和小程序页面。
团队协作模拟:独自开发时,模拟团队分工(如 “前端组”“后端组”“测试组”),按模块提交 Git 分支,练习代码评审流程。
通过第 2-6 周的学习,可从 “单一技术使用者” 升级为 “复杂系统设计者”,既能完成前后端分离的企业级项目,也能将数学建模方法落地到实际业务场景。关键在于每阶段结束后,通过 “项目演示 + 技术分享” 的方式巩固成果(如录制项目演示视频、撰写技术博客),形成可复用的知识资产。