资源不够无法跑实验,那就学学项目早点实习叭!苍穹外卖启动!
技术选型
用户层
技术/中间件 | 作用 | 特点 |
---|
Node.js | 服务器端运行 JavaScript,构建中间层服务或 SSR | 非阻塞、事件驱动,适合高并发;统一前后端语言 |
Vue.js | 构建用户界面、单页应用 | 响应式数据绑定、组件化开发、轻量级 |
ElementUI | Vue.js 的 UI 组件库,提供现成控件 | 统一风格、易用、适合后台管理系统 |
微信小程序 | 移动端轻应用平台,运行在微信中 | 无需安装、原生接口丰富、部署简便 |
Apache ECharts | 数据可视化库,生成各类图表 | 支持复杂图形、交互强、适用于大屏与仪表盘 |
网关层
技术/中间件 | 作用 | 特点 |
---|
Nginx | 反向代理、负载均衡、静态资源托管 | 高性能、配置灵活、轻量稳定 |
应用层
技术/中间件 | 作用 | 特点 |
---|
Spring Boot | 快速构建独立运行的 Spring 应用 | 自动配置、内嵌容器、简化部署流程 |
Spring MVC | Web 层框架,处理 HTTP 请求 | 请求映射清晰,结合注解简洁开发 |
Spring Task | 定时任务调度 | 简单注解支持定时器、cron 表达式 |
HttpClient | HTTP 请求客户端工具 | 支持连接池、高并发请求,适合调用第三方 API |
Spring Cache | 提供缓存能力 | 配合注解,支持多种缓存实现(如 Redis) |
JWT | 用户身份认证与权限校验 | 无状态、基于 Token,适合前后端分离系统 |
阿里云 OSS | 阿里云对象存储服务 | 文件云存储,提供 REST API 接口,适合存图片、视频等 |
Swagger | API 文档自动生成工具 | 实时预览、自动化更新接口说明 |
POI | 读写 Excel/Word 等 Office 文件 | Java 中主流的文档处理库 |
WebSocket | 实现双向实时通信 | 低延迟、长连接,适合聊天室、通知、推送等场景 |
数据层
技术/中间件 | 作用 | 特点 |
---|
MySQL | 关系型数据库 | 结构化数据存储、事务支持强、使用广泛 |
Redis | 内存型键值数据库 | 高并发缓存、支持持久化、用于缓存或消息队列 |
MyBatis | ORM 框架 | SQL 显式可控、支持动态 SQL、易调试 |
PageHelper | MyBatis 分页插件 | 简化分页逻辑,支持自动拦截分页参数 |
Spring Data Redis | Redis 封装库,配合 Spring 使用 | 简洁操作接口、整合缓存与数据操作逻辑 |
工具层
工具 | 作用 | 特点 |
---|
Git | 版本控制工具 | 分布式、协作开发、支持回滚与分支管理 |
Maven | 项目构建与依赖管理工具 | 生命周期管理清晰,支持自动下载依赖 |
Junit | 单元测试框架 | 注解驱动测试、断言机制、测试驱动开发支持 |
Postman | API 接口调试与测试工具 | 支持 RESTful 接口模拟、调试、环境变量管理 |
1
2
3
4
5
6
7
| 给你一个链表的头 head ,每个结点包含一个整数值。
在相邻结点之间,请你插入一个新的结点,结点值为这两个相邻结点值的 最大公约数 。
请你返回插入之后的链表。
两个数的 最大公约数 是可以被两个数字整除的最大正整数。
|
解题思路
- 首先需要思考如何计算最大公约数 ```bash def gcd(a,b): while b: a,b = b, a%b return a
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
|
2. 然后请回忆链表相关知识(完全忘记了
```bash
curr = head
while curr and curr.next:
a,b = curr.val, curr.next.val
g=gcd(a,b)
new_node = ListNode(g)
new_node.next = curr.next
curr.next = new_node
curr = new_node.next
return head
|
这道题刚看到完全无从下手,感谢G老师!请复习链表相关知识以及简单的,计算最大公约数,最小公约数,最大公倍数,最小公倍数
最大公倍数LCM
两个或多个整数共有的最小的非零倍数。
1
2
| def lcm(a, b):
return abs(a * b) // gcd(a, b)
|