SpringBootVue国产动漫网站从选题到部署交付的全流程实战记录做毕设最怕什么不是写代码而是不知道代码从哪开始写。前后端分离选什么技术栈、数据库表怎么设计、论文怎么写才不单薄、部署文档怎么保证导师照着就能跑通这套基于SpringBootVueMySQL的国产动漫网站平台就是奔着“把所有坑提前踩平”去的。无论你是准备接这个题目做毕业设计还是想找一个前后端分离的完整项目作为课程设计参考这篇文章会把整个项目的设计思路、核心实现、部署流程和论文组织方式讲透纯实操视角不带半点水分。这套系统整体是典型的前后端分离架构后端用SpringBoot提供RESTful API前端用Vue 3配合Element Plus搭建页面数据库统一走MySQL。功能覆盖了动漫网站最常见的几个模块——用户注册登录、动漫分类浏览、剧集详情与播放、收藏/追番、评论互动、后台内容管理。麻雀虽小五脏俱全每个模块都能在论文里单独成章工作量也足够一个本科生做完整个周期。1. 项目全貌与选题思路为什么这个题值得做1.1 选题逻辑毕设最怕的不是难是没法收尾很多同学选题的方向是错的——要么选一个听起来很炫但自己根本驾驭不了的技术比如分布式高并发、微服务治理做完第一周就卡死要么选一个太偏管理的系统比如某某信息管理系统页面单调论文也没法写深度。国产动漫网站平台这个题目的聪明之处在于三点。第一题材自带流量二次元用户画像清晰页面有得做设计审美可以体现出来论文里的“需求分析”和“界面设计”章节不会空洞。第二技术栈非常标准SpringBoot MyBatis-Plus MySQL Vue全是企业里最常用的组合招聘季面试也能拿来当项目经历讲。第三业务场景丰富但不复杂——用户端要浏览分类、收藏、评论、看剧集管理端要发布内容、上传图片/视频、管理用户这些功能拆下来每个都够写合在一起又是一个完整闭环。“收藏/追番”和“评论互动”这两个功能是提升系统完整度的关键也是答辩时最能展示业务思考的部分。做好这两个模块论文的创新点描述和系统演示环节就会从容很多。1.2 技术栈选型不炫技只求可控前后端分离在毕业设计里已经是默认选项了。后端用SpringBoot理由很直白——它提供了近乎零配置的起步体验内嵌Tomcat意味着不需要单独部署Web容器一个jar包就能把服务拉起来。对于绝大多数非科班出身、Spring只停留在书本层面的同学来说SpringBoot的自动配置让“能跑起来”这个门槛降到最低。MyBatis-Plus作为持久层框架也值得说一句它的BaseMapper内置了常用的单表CRUD方法复杂查询可以手写XML灵活度和开发效率之间能找到很好的平衡。前端选Vue 3而非Vue 2主要考虑的是生态方向。Vue 3的组合式APIComposition API在组织复杂逻辑时比Vue 2的选项式API直观得多而且现在新出的组件库、插件基本都是围绕Vue 3做的。配合Element Plus做后台管理页面、Vite做构建工具启动速度和热更新体验比Webpack时代的Vue CLI爽太多。MySQL是没什么悬念的选择。单机部署、数据量可控、工具链完善Navicat、MySQL Workbench都很好用导师环境里基本都有不存在兼容性问题。这套选型方案最大的优点是“容错率高”。三个核心组件都是主流中的主流出了问题搜索引擎一搜一大片答案这在毕设周期里就是生产力。2. 数据库设计与核心表结构地基决定上层建筑2.1 实体关系梳理从业务流程反推表结构数据库设计这一步做得好不好直接影响后面写代码的顺畅程度。我习惯先画一遍业务流程图用户进入首页看到动漫列表点击进入详情页可以看简介、看剧集列表、写评论、点收藏管理员登录后台维护动漫分类、上传新番、管理评论和用户。顺着这个流程实体就清晰地浮出来了用户、动漫、分类、剧集、收藏、评论。再加上后台管理需要的管理员表一共七张核心表。这七张表的关系并不复杂分类和动漫是一对多动漫和剧集是一对多用户和收藏是多对多的关联通过关联表记录用户和评论是一对多。这里有个细节值得注意——动漫封面图、剧集视频地址不单独建表直接作为字段存URL字符串。文件二进制放服务器或OSS数据库只存路径这是Web开发的通用做法也是答辩时如果被问到“文件存储方案”时你需要提前想清楚的答案。2.2 核心表结构设计详解用户表userCREATE TABLE user ( id bigint(20) NOT NULL AUTO_INCREMENT, username varchar(50) NOT NULL COMMENT 用户名, password varchar(255) NOT NULL COMMENT BCrypt加密后的密码, nickname varchar(50) DEFAULT NULL COMMENT 昵称, avatar varchar(255) DEFAULT NULL COMMENT 头像URL, email varchar(100) DEFAULT NULL COMMENT 邮箱, role tinyint(4) DEFAULT 0 COMMENT 0-普通用户 1-管理员, status tinyint(4) DEFAULT 1 COMMENT 1-正常 0-禁用, create_time datetime DEFAULT CURRENT_TIMESTAMP, update_time datetime DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, PRIMARY KEY (id), UNIQUE KEY uk_username (username) ) ENGINEInnoDB DEFAULT CHARSETutf8mb4 COMMENT用户表;密码用BCrypt加密存储这一点论文里可以专门写一段说明为什么不做明文存储——即便数据库泄露攻击者也拿不到真实密码。用户名加唯一索引防止重复注册这是最基础也最容易被忽略的约束。动漫表animeCREATE TABLE anime ( id bigint(20) NOT NULL AUTO_INCREMENT, title varchar(200) NOT NULL COMMENT 标题, cover_url varchar(500) DEFAULT NULL COMMENT 封面图URL, description text COMMENT 简介, category_id bigint(20) DEFAULT NULL COMMENT 分类ID, region varchar(50) DEFAULT NULL COMMENT 地区, release_date date DEFAULT NULL COMMENT 上映年份, status tinyint(4) DEFAULT 0 COMMENT 0-连载中 1-已完结, rating decimal(3,1) DEFAULT 0.0 COMMENT 评分, play_count bigint(20) DEFAULT 0 COMMENT 播放量, is_deleted tinyint(4) DEFAULT 0 COMMENT 逻辑删除, create_time datetime DEFAULT CURRENT_TIMESTAMP, PRIMARY KEY (id), KEY idx_category (category_id) ) ENGINEInnoDB DEFAULT CHARSETutf8mb4 COMMENT动漫信息表;description字段用text类型因为动漫简介可能比较长。rating用decimal(3,1)最高可以存99.9对于评分来说足够了。is_deleted逻辑删除字段是我一直坚持加的——数据能还原出了操作失误也能兜底。分类表和剧集表这里不展开全量SQL了结构都比较直接。剧集表要特别说明的是sort_order字段用于记录第几集前端排序时需要它video_url字段存视频播放地址通常建议存MP4或M3U8格式的URLM3U8流媒体格式对这种视频网站场景更合适可以做分片加载。2.3 字段类型和细节设计里的几个关键决策设计表时最容易出问题的不是主键而是各种“看起来差不多”的选择。这里把几个关键决策整理出来字符集统一使用utf8mb4而不是utf8。原因很实在utf8mb4是真正的四字节UTF-8能存储emoji表情。评论功能用户发个表情是常态如果用了utf8后期插入emoji时直接报错“Incorrect string value”改表代价又大。时间字段统一用datetime不用timestamp。timestamp虽然省空间但有2038年问题而且受时区影响datetime更省心。评论表要设计两层结构一级评论和回复。很多新手只做一张平铺的评论表想做“回复某人的回复”时就傻眼。我用的方案是增加parent_id字段——为0表示一级评论非0表示对某条评论的回复。这样既能实现楼层效果又不至于引入过于复杂的表结构。收藏表字段设计为user_id anime_id create_time并在两个字段上建立联合唯一索引uk_user_anime防止重复收藏。这些细节在论文里写出来就是实打实的“数据库设计合理性分析”比堆ER图有用得多。3. 后端SpringBoot实现要点分层清晰能力边界明确3.1 项目分层与统一响应体后端项目的包结构设计是最重要的“基建”。我推荐标准的三层架构Controller层负责接收请求和参数校验Service层负责业务逻辑Mapper层负责数据库访问。在此基础上多拆出一个common包专门放统一响应体、异常处理器和工具类。统一响应体是我在后端设计中强调最多的规范。后端接口的返回格式必须统一否则前端每个请求都要单独处理数据格式。我定义的统一结构是{ code: 200, message: success, data: {} }配合Result类封装Service层只管返回业务数据Controller层自动包装成统一格式返回给前端。这个模式几乎是所有企业级项目的标准做法代码量不大但能让后续所有接口的开发效率提升一个档次。全局异常处理器也是必做的。用RestControllerAdvice捕获业务异常和系统异常统一返回错误结构而不是把一堆堆栈信息直接甩给前端。这对于答辩演示时“故意输入错误参数”的场景特别有用——前端弹出的提示是友好的“参数不能为空”而不是满屏的报错英文。3.2 用户登录与JWT认证机制登录认证这个模块如果不做安全设计就是个一个接口加一张表的事如果做好了论文能多写三页答辩时长也撑得住。我选择用JWTJSON Web Token做无状态认证。流程是这样的用户提交用户名密码后端校验通过后生成一个JWT字符串返回给前端前端拿到JWT存在localStorage里每次请求在请求头加Authorization: Bearer token后端通过拦截器解析JWT从token里取出用户ID就能知道当前请求是谁发起的。生成JWT的关键代码用Hutool工具类能写得很简洁// 登录成功后生成Token String token JWT.create() .setPayload(userId, user.getId()) .setPayload(username, user.getUsername()) .setExpiresAt(new Date(System.currentTimeMillis() 86400000)) // 有效期24小时 .setKey(your-secret-key.getBytes()) .sign();这里有一个最容易踩的坑JWT密钥不要硬编码在代码里。密钥是签名的关键如果硬编码在代码中一旦代码上传到公开的代码仓库任何人都能伪造token。我习惯把密钥放在application.yml配置文件中通过Value注解读取。论文里把这段写出来安全性的思考就有了。3.3 文件上传与静态资源映射动漫平台的封面图上传是管理端的刚需功能。后端实现文件上传的思路是接收MultipartFile校验文件类型和后缀名只允许jpg、png、webp等图片格式然后存储到服务器本地的指定目录最后把访问URL返回给前端。为了防止文件名冲突我用UUID重命名文件public String uploadFile(MultipartFile file) { if (file.isEmpty()) { throw new BusinessException(上传文件不能为空); } String originalFilename file.getOriginalFilename(); String extName originalFilename.substring(originalFilename.lastIndexOf(.)); String newFileName UUID.randomUUID().toString().replace(-, ) extName; String uploadDir fileConfig.getUploadPath(); File dest new File(uploadDir File.separator newFileName); file.transferTo(dest); return fileConfig.getAccessPath() newFileName; }accessPath对应一个WebMvc的静态资源映射配置把/files/**路径映射到服务器磁盘的物理目录上。这一步不做的话即使文件上传成功前端也访问不到图片。3.4 搜索、分页与列表接口的通用设计动漫列表的筛选条件通常有分类ID、状态连载/完结、地区、关键词搜索、排序方式按更新时间、按播放量、按评分。这个接口如果每个查询条件单独写一套SQL会非常冗余。MyBatis-Plus的LambdaQueryWrapper可以优雅地解决这个问题LambdaQueryWrapperAnime wrapper new LambdaQueryWrapper(); wrapper.eq(Objects.nonNull(categoryId), Anime::getCategoryId, categoryId) .eq(Objects.nonNull(status), Anime::getStatus, status) .like(StringUtils.hasText(keyword), Anime::getTitle, keyword) .orderByDesc(Objects.equals(sort, playCount), Anime::getPlayCount);eq方法的第一个参数是个布尔表达式——条件为真才拼接这个查询条件为假就自动跳过。这样参数可选、条件动态拼接前端多传少传参数都不会影响接口稳定性。分页直接用MyBatis-Plus的Page对象PageAnime page new Page(pageNum, pageSize); IPageAnime result animeMapper.selectPage(page, wrapper);返回结果中records是当前页数据、total是总条数、pages是总页数前端分页组件需要的信息一次给全非常省事。4. 前端Vue实现要点从工程初始化到组件落地4.1 工程初始化与目录结构前端工程用Vite初始化命令很简单npm create vitelatest anime-web -- --template vue。创建完成后把需要的依赖一次性装齐vue-router4前端路由负责页面跳转和权限控制pinia全局状态管理主要用来存用户登录状态axiosHTTP请求库配合请求拦截器统一携带tokenelement-plusUI组件库后台管理页面基本靠它sass样式预处理器写嵌套CSS更方便目录结构我习惯这样组织src/ ├── api/ # 所有接口请求独立封装 │ ├── anime.js │ ├── user.js │ └── comment.js ├── router/ # 路由配置 ├── stores/ # Pinia状态管理 ├── views/ # 页面组件 │ ├── home/ │ ├── anime/ │ ├── user/ │ └── admin/ ├── components/ # 公共组件 └── utils/ # 工具函数api/目录单独抽出来非常重要。一个页面里可能调用了七八个接口如果把axios请求写进每个vue文件里后期接口路径一改就要满项目替换。集中管理之后后端接口变动时只需要改一个文件中的路径即可。4.2 路由配置与登录鉴权路由这块需要区分“游客可访问”和“登录后可访问”两种页面。比如看动漫列表不需要登录但写评论、收藏、管理后台就必须验证身份。Vue Router配合全局守卫实现鉴权的核心逻辑router.beforeEach((to, from, next) { const token localStorage.getItem(token) if (to.meta.requiresAuth !token) { next({ path: /login, query: { redirect: to.fullPath } }) } else { next() } })每次路由跳转前检查目标路由是否标记了requiresAuth: true没有token就直接踢回登录页并且记录来源路径登录成功后可以跳回去。这个交互细节很加分连续浏览的用户体验会好很多。路由懒加载也建议配合使用用const Home () import(../views/Home.vue)的方式分割代码块首屏加载能快不少。答辩现场网络不好的时候这个优化能救急。4.3 核心页面实现拆解首页主要做两件事——展示分类导航和动漫列表卡片。分类导航的数据从接口拉取动漫卡片循环渲染。每张卡片展示封面、标题、评分、更新状态点击跳转到详情页。详情页这是核心中的核心。上半部分展示封面、标题、基本信息和简介下面分为两个Tab——剧集列表和评论区。剧集列表展示所有集数点击播放按钮调视频播放器评论区展示已有评论用户登录后可以发表评论或回复评论。后台管理页通过路由元信息控制只有管理员角色能访问。主要功能是动漫列表管理支持搜索、分页、编辑、上下架操作。新增/编辑对话框用表单组件控制封面图上传用的是Element Plus的el-upload组件设置好action属性指向后端的上传接口即可。4.4 视频播放组件的选型与接入视频播放是这个网站项目中最容易被忽略的难点。如果你用原生HTML5的video标签直接播放MP4文件遇到大体积视频时会缓冲卡顿体验也谈不上好。我推荐使用video.js组件它支持MP4、HLSM3U8等多种格式并且有成熟的控制条皮肤。接入方式不复杂npm install video.js然后在Vue组件里初始化播放器import videojs from video.js import video.js/dist/video-js.css const player videojs(this.$refs.videoPlayer, { sources: [{ src: this.videoUrl, type: this.videoUrl.endsWith(.m3u8) ? application/x-mpegURL : video/mp4 }], controls: true, autoplay: false, preload: auto })如果是M3U8格式video.js默认能处理一部分但是对于低版本浏览器或者特殊编解码格式最好用videojs-contrib-hls这个插件补充兼容性。这块在论文里写“视频播放方案的选型对比”能很好地体现技术调研能力。5. 论文与部署文档毕设交付物的“重头戏”5.1 论文结构怎么搭最容易过审很多同学代码写完了论文憋不出来。其实学术论文的逻辑顺序和开发顺序是一致的顺着做过的内容写就没问题。我建议的章节安排是绪论研究背景与意义、国内外研究现状、论文组织结构相关技术介绍前后端分离架构、SpringBoot、Vue、MySQL系统分析可行性分析、需求分析、用例图系统设计总体架构图、功能模块设计、数据库设计ER图核心表SQL系统实现每个模块的效果图核心代码实现逻辑说明系统测试功能测试用例表、测试结果分析关键提醒每个“实现”小节都要做到“有效果图有核心代码有说明文字”三件套。导师翻论文时看得最多的就是实现章节如果只有代码没有截图效果会打一半折扣。每条功能建议用表格列测试用例、预期结果和实际结果这是测试章的基操。5.2 部署文档的价值别把“运行环境”写成玄学部署文档的重要性常常被低估。如果导师或者评审老师本地跑不起来这个项目整个评分都会受影响。好的部署文档要做到“保姆级”——让一个没学过这套技术栈的人照着做也能跑通。部署文档应该覆盖以下内容环境版本JDK 1.8以上、Maven 3.6、Node 16、MySQL 5.7/8.0数据库初始化步骤执行SQL脚本后端配置修改说明数据库账号密码、文件上传路径、JWT密钥启动命令后端mvn spring-boot:run前端npm dev常见启动失败问题的解决办法。一个我实际用过的部署坑MySQL 8.0的认证插件是caching_sha2_password而某些旧版本的JDBC驱动不支持这个插件会报“Public Key Retrieval is not allowed”错误。解决办法是在JDBC连接串上加allowPublicKeyRetrievaltrueuseSSLfalse参数。这个细节如果有人不看部署文档可能卡几个小时。5.3 数据库脚本的整理技巧数据库初始化脚本也有讲究。源码包里带的SQL文件不要只有一个anime.sql建议拆成建表语句和初始数据两个文件分别是schema.sql和data.sql。建表语句里要注释清楚每张表的作用初始数据是所有功能演示需要的前提——比如分类数据、几部动漫的完整信息、演示账号。有一个演示账号直接写到部署文档里能省去评审老师注册账号的步骤体验会更好。6. 常见问题排查与避坑实录6.1 后端高频问题CORS跨域报错前后端分离项目最经典的问题。前端跑了localhost:5173后端跑了localhost:8080请求默认会被浏览器拦截。解决办法是在后端配置一个WebMvcConfigurer重写addCorsMappings方法允许指定来源跨域。注意设置allowedOriginPatterns(*)并允许携带凭证allowCredentials(true)时需要单独配置认证接口的跨域策略因为通配符和凭证同时开启在某些版本会冲突。接口请求中文乱码返回JSON时中文变成??多半是响应的编码问题。SpringBoot默认响应编码是UTF-8但如果前端用GET请求传中文参数参数在URL里的编码容易出问题。建议后端接口统一使用RequestParam配合URL编码前端axios请求时配置params而不是手动拼URL字符串能规避大部分乱码坑。上传文件大小限制SpringBoot默认单文件上传上限是1MB上传封面图动不动就报错“MaxUploadSizeExceededException”。需要在application.yml中设置spring: servlet: multipart: max-file-size: 10MB max-request-size: 20MB6.2 前端搭环境与打包问题npm install卡住或报错换淘宝镜像源能解决大部分问题npm config set registry https://registry.npmmirror.com如果个别依赖安装失败先删除node_modules和package-lock.json再重新npm install。新版Vite要求Node.js 18版本太老会直接启动失败这一点部署文档里必须注明。打包后路由刷新404前端构建部署时如果直接把dist目录扔到Nginx里刷新页面跳404是必然的。原因在于你访问/anime/1这个路径时Nginx没有对应的物理文件就返回404了。需要在Nginx配置中增加try_files回退到index.htmllocation / { root /usr/share/nginx/html; index index.html; try_files $uri $uri/ /index.html; }这个坑在部署文档中必须单独写一节否则上线演示时刷新一下页面就尴尬了。6.3 部署到云服务器的整体流程本机跑通了部署到Linux服务器是毕业设计的加分项。整体步骤浓缩成一条线安装JDK、MySQL、Nginx把SQL文件导入MySQL修改后端application-prod.yml的数据库地址为服务器地址mvn package打包出jar包用nohup java -jar命令后台运行前端npm run build生成dist目录上传到服务器的Nginx静态目录配置Nginx反向代理把/api前缀的请求转发到后端的8080端口反向代理配置的核心location /api/ { proxy_pass http://127.0.0.1:8080/; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; }做完这六步系统就在公网跑起来了手机流量也能访问答辩现场直接开给老师看效果非常直观。7. 给即将开题的同学几句体己话做这个项目的过程中我最深的体会是毕业设计本质上是给你一次“把一件事做完整”的机会而不是考察你用了多高级的技术。整套流程走下来需求分析、数据库设计、后端接口、前端页面、测试用例、部署上线的每一步都是自己亲手过的这种闭环本身就是一种收获。如果你决定做这套系统我的建议是先把数据库表结构定下来再去写后端接口最后做页面。表结构一旦设计错误后面的返工成本远超你的想象。视频播放、评论回复、逻辑删除这三个点如果能真正实现答辩时被问“你有什么难点”时就不会冷场。事后回想起来踩过得那些坑——MySQL版本认证问题、跨域配置、Nginx路由回退、文件上传限制——现在都是简历上和面试里能随口讲清楚的实战经验。最后再说一个实用的小技巧开发前端时如果不想启动后端也能调接口可以用Mock.js拦截axios请求返回假数据。这个办法能让你前后端并行开发互不阻塞时间管理能力强的话整体工期能压缩两周。项目源码、数据库脚本、论文初稿和部署文档都完整保留着有需要对照参考的按文档里的步骤来就行。祝各位一次过审。
企业数字化 ERP 产品动态
相关推荐
AI时代学生最该培养的5项底层能力:从提问到工程化实践 今年在带学生做AI项目的过程中,我遇到一个很典型的场景:同一个班级、同一个AI工具,有的学生能借助AI搭出完整的学习计划,甚至跑通一个简单的AI应用原型;有的学生把问题丢给AI之后就盯着输出发呆,拿到一堆自… · 2026/9/24 23:19:31
EKF融合TDOA/AOA的三维定位:原理、MATLAB实现与实战避坑 简介:一份基于扩展卡尔曼滤波(EKF)的雷达定位仿真资源,融合TDOA(到达时间差)与AOA(到达角度)两种定位技术,并支持三维空间解算。资源面向雷达定位、目标跟踪相关方向的科… · 2026/9/24 23:19:31
基于A*与弓字形的移动机器人往返式全覆盖路径规划 做移动机器人和路径规划相关课题的朋友,应该对A算法都不陌生。但A最常见的是用来做“从A点到B点”的最短路径搜索,也就是点对点规划;真正把它用在全覆盖路径规划上,并且还得满足“往返式”作业需求时,遇到的问题就会明… · 2026/9/24 23:19:31
MOS管驱动电路设计:从寄生电容到损耗计算的工程实践 1. 从“导通”到“开关”:MOS管到底在电路里扮演什么角色很多人第一次接触MOS管,是在一块开关电源板或者电机驱动板上。看到三个引脚、一个散热片,心里想的是“这不就是个电子开关吗”。但真把它焊上去,问题就来了:为什… · 2026/9/24 23:55:24
Linux服务端进程池设计:从原理到实现,高并发下的最佳实践 我做了不少Linux服务端开发,有个东西几乎绕不开,就是进程池。很多人一上来就直接用多线程,或者干脆动态创建进程,结果高并发下频繁fork、进程频繁退出,系统负载忽高忽低,反而把自己坑惨了。今天我把工作中实… · 2026/9/24 23:55:24
AI编程完整工作流:从需求拆解到自动验证的实战方法论 说实话,我在编程一线干了快十年,这两年最大的感受就是:AI 编程这事儿,真正决定效率高低的,从来不是哪个模型更聪明,而是你手里有没有一套完整、能兜底的工作流程。我自己的 v1.0 阶段特别原始——把 AI 当搜… · 2026/9/24 23:55:18
从token机制到报错排查:ChatGPT上下文管理与模型选型实战指南 网上讨论ChatGPT的时候,“无限token”这四个字快被说烂了。有人把它当作功能亮点,有人在评论区追问“怎么开启”,还有人把“无限”理解成长对话永远不会被截断。但真正每天都用ChatGPT的朋友,心里基本都清楚:你最担心的… · 2026/9/24 23:55:18
MFC连连看源码拆解:位图透明、双缓冲与消息映射实战 简介:基于MFC框架的连连看游戏完整源码,面向正在学习C桌面开发、希望从零理解Windows游戏设计流程的初学者与中级开发者。项目共27个文件,压缩包仅3.8MB,结构清晰:7个头文件与4个C源文件承载主对话框、游戏逻辑及连通判… · 2026/9/24 23:55:18
从harness工程到认知工程:Agent架构升级实战与复杂任务优化 1. 从 harness 工程到认知工程:一次 Agent 架构的认知跃迁 过去大半年,我一直在折腾 Agent 相关的东西。从最早的 prompt 拼接,到后来的工具调用编排,再到最近把整套 harness 工程重构了一遍,踩的坑比写的代码还多。今… · 2026/9/24 23:55:18
基于YOLOv8的渔船作业监控系统:从环境搭建到边缘部署全流程 简介:这是一套面向计算机、人工智能、自动化等专业学生与教师的毕业设计级项目资源,围绕YOLOv8实现渔船作业监控系统,可用于毕设、课程设计、大作业或项目立项演示。压缩包共97个文件,约24.21MB,以70个Python源码文件为… · 2026/9/24 0:00:13
1D-CNN时间序列建模实战:从Conv1d原理到工业落地 简介:面向时间序列数据建模的一维卷积神经网络完整实现,适合深度学习入门者及需要快速验证时序模型的研究者,能够从音频、文本、传感器或股价等序列中挖掘局部特征与时间依赖。压缩包体积很小,只有3KB,内含3个Python脚… · 2026/9/24 0:00:26
柔软的L:汉语语流中被忽视的舌肌张力控制 1. 这个“L”不是字母表里的L,而是舌尖上的L最近在几个方言群和语音教学社群里,反复看到有人发一句:“也说字母L:柔软的长舌”。初看以为是英语发音课笔记,点开才发现全是方言爱好者、播音系学生、语言康复师甚至戏曲演… · 2026/9/24 0:00:44