- 博客(63)
- 收藏
- 关注
原创 Electron + SQLite 性能优化全记录:从原型到生产级应用
流式读取 + 分批提交从100万卡死到1000万可用FTS5 全文搜索 + 复合索引从9秒降到300毫秒实时进度反馈并行加载请求两阶段导入流程找到瓶颈,用合适的技术解决它。大数据处理用流式,不要一次性加载文本搜索用 FTS,不要用 LIKE批量操作用事务,不要逐条提交给用户反馈,不要让他们等待如果这个系列对你有帮助,欢迎分享给更多人。
2025-12-29 14:08:58
972
原创 SQLite 索引智能构建:从每次启动30秒到秒开
在正确的时机做正确的事。启动时:快速检查,不做重活导入时:一次性处理所有重活(索引、FTS)启动时间:从 30秒 → 15毫秒(快 2000 倍)导入时间:从 60-80秒 → 25-30秒(快 2-3 倍)代码更简单:删除了版本管理的复杂逻辑用户体验更好:启动秒开,导入也更快索引的本质:用空间换时间,用写入成本换查询速度。智能构建的关键:理解数据的生命周期,在合适的时机更新索引。如果你的项目也有类似的性能问题,可以试试这个思路。
2025-12-29 14:07:14
579
原创 SQLite 查询优化实战:从9秒到300毫秒
本文针对SQLite数据库中300万条记录的查询性能问题,提出了优化方案。通过分析发现,使用LIKE模糊查询导致全表扫描是性能瓶颈。采用FTS5全文搜索技术替代LIKE查询,同时建立复合索引优化排序操作。结果显示:屏蔽词过滤性能提升550倍(从9340ms降至15ms),关键词搜索性能提升200-800倍(从8-10秒降至10-50ms)。最终整体查询时间从9秒降至300ms,提升30倍。文章还讨论了FTS5的局限性及适用场景,并建议减少返回字段以优化性能。
2025-12-28 13:55:07
1097
原创 SQLite 大批量数据导入优化:从百万卡死到千万级支持
本文分享了优化Electron应用中百万级CSV数据导入SQLite数据库的实践经验。最初方案存在内存溢出、事务过大和进度反馈缺失等问题。通过将导入流程分为分析阶段和流式导入阶段,采用5000条/批的分批提交策略,结合SQLite的WAL模式和预编译语句,成功将内存占用控制在100MB以内,100万条数据导入时间缩短至65秒。文章详细介绍了优化方案的技术细节,包括进度回调、时间预估和VACUUM操作等技巧,实现了从无法处理大数据到稳定支持千万级数据导入的性能提升。
2025-12-28 13:52:33
715
原创 学会 Docker,让你的项目部署效率提升十倍
Docker是一种轻量级容器技术,解决了开发环境不一致的痛点。相比虚拟机,Docker共享宿主机内核,更轻量高效。核心概念包括镜像(只读模板)、容器(运行实例)和仓库(存储镜像)。通过编写Dockerfile定义镜像,使用docker build构建,docker run运行容器。本文以一个简单前端应用为例,演示了如何构建和运行第一个Docker容器,实现"一次构建,到处运行"。Docker大幅简化了环境配置,提升了开发效率。
2025-10-08 12:56:25
859
原创 开源!Vue3 + Nest.js+DeepSeek 开发 AGIC(能豆AI批改助手)
《能豆AI批改助手:基于DeepSeek的智能英语作业批改系统》 作者因朋友批改英语作业的需求,开发了"能豆AI"批改助手,实现了学生提交→AI批改→教师复核的完整闭环。系统采用Vue3+TypeScript前端和NestJS后端架构,集成DeepSeek和豆包双AI模型,专业批改与温馨反馈结合。核心功能包括班级管理、作业提交批改、AI集成批改和权限管理,支持多角色协同工作。系统现已开源,提供在线体验,帮助教师提高批改效率,沉淀教学数据,同时为学生提供个性化学习反馈。
2025-10-08 12:25:29
1615
原创 彻底搞懂JS闭包,让面试官对你刮目相看
摘要:本文深入浅出地讲解了JavaScript中的闭包概念。通过经典的for循环setTimeout面试题引入,解释了闭包的工作原理:函数能够记住并访问其定义时的词法作用域,即使在该作用域外执行。文章详细分析了面试题输出五个6的原因(var变量提升),并给出两种解决方案(let块级作用域和IIFE)。同时介绍了闭包在数据封装和创建私有变量方面的应用价值,以及需要注意的内存泄漏问题。最后总结了闭包的本质、作用原理和实际应用场景。
2025-09-22 14:58:36
642
原创 宏任务、微任务、调用栈... 一文搞懂 JS 事件循环
JavaScript采用单线程模型,通过事件循环机制实现异步执行。事件循环由调用栈、Web APIs和任务队列组成,任务分为宏任务(如setTimeout)和微任务(如Promise)。核心规则是:执行一个宏任务后清空所有微任务,再进入下一轮循环。async/await本质是Promise的语法糖,遵循微任务规则。理解事件循环对于掌握代码执行顺序、避免阻塞至关重要,是编写高效可靠JavaScript程序的基础。
2025-09-22 14:49:18
1094
原创 小程序接入AI 实现打字机流式效果?这些坑我都替你踩过了
小程序环境和标准Web差异真的挺大的。从fetch到,从原生到社区Polyfill,每一步都是在给环境搭桥。不过这也是技术的魅力所在——遇到问题,然后想办法解决它。虽然过程有点折腾,但最终实现效果的那一刻,还是挺有成就感的。你如果也在做类似的功能,希望我踩过的这些坑能帮你绕个路。当然,如果你有更好的解决方案,也欢迎跟我交流!
2025-07-18 15:20:23
2082
原创 echarts自定义柱状图的背景条,支持 hover 选中效果
大家好,我是一诺,今天想和大家聊聊最近遇到的一个让我折腾一下午的问题:echarts自定义柱状图的背景条,并且支持 hover 选中效果?你可能会想:这不是 ECharts 官方就有的功能吗?用不就行了?但当我真正动手时才发现,官方 API 的局限性远比我想象的大。事情是这样的:设计师给了我一个看起来很简单的图表设计稿,要求是:我当时心想:这还不简单,ECharts 官方不是有吗?直接用就行了。结果现实给了我一记响亮的耳光。当我兴冲冲地写下这段代码时:发现了一个致命问题:背景条和数据柱的宽度完全一样!更要
2025-07-17 14:11:25
1164
原创 刚刚!Cursor 全面禁用中国 IP !附赠解决方案
下午三点多,一诺正在用 Cursor 开发项目,突然发现用不了了。起初还以为是账号到期了,但我明明是 Pro 用户啊,怎么可能到期?换了几个模型试了试,还是不行。看了下错误提示才明白——原来是官方直接把中国地区给禁了,不让调用大模型了。
2025-07-16 18:03:09
1891
3
原创 Cursor开发记录,菜谱小程序开发,接入豆包实现AI菜谱功能
很多人觉得AI开发就是比速度,一小时做个app,一天搭个网站。但真正的价值不在速度,在于用AI做出用户真正需要的产品。解决真实的问题。AI只是工具,真正的核心还是你对用户需求的理解。
2025-07-15 20:40:21
1544
原创 Cursor 开发产品像电子垃圾?做好这3点,帮你避开AI编程的坑
很多人觉得AI开发就是比速度,一小时做个app,一天搭个网站。但真正的价值不在速度,在于用AI做出用户真正需要的产品。解决真实的问题。AI只是工具,真正的核心还是你对用户需求的理解。
2025-07-15 18:48:24
802
原创 vue + Element UI 封装二次确认框 | 附源码
el-radio label="wechat">微信支付</el-radio><el-radio label="alipay">支付宝</el-radio><el-radio label="wechat">微信支付</el-radio><el-radio label="inactive">停用</el-radio>切换时需要用户确认。<el-radio label="alipay">支付宝</el-radio><el-radio label="active">激活</el-radio>
2025-07-14 21:54:22
491
原创 手滑误操作? vue + Element UI 封装二次确认框 | 附源码
是一个带确认提示的单选框组件,底层用的是和自研的气泡确认框。切换选项时自动弹出确认气泡,防止误操作支持自定义提示文案、按钮、图标、气泡位置可以指定哪些选项需要确认完全兼容原生单选框的用法,支持 v-model事件丰富,方便业务扩展你可以自定义按钮文案、颜色、图标样式,让提示更贴合业务。confirm-title="确认要切换状态吗?confirm-button-text="立即切换"cancel-button-text="我再想想"
2025-07-14 21:43:16
1361
原创 用Gemini +flomo 笔记,给自己做了个数字分身(保姆级教程)
你好呀,我是一诺~流浪地球2 有一个“数字永生”计划,能把人的意识上传到云端。当时看的时候,觉得这事还很遥远,但AI发展到今天,我感觉,好像也没那么难了。就在这两天,我把我过去几年用flomo记下的 500 多 条笔记,全都喂给了 Gemini pro。我成功“复刻”了一个数字版的我。这个AI分身,不光能随时检索我的记忆,给大家看几个我和它的对话:是不是感觉很有温度,也很细腻?这可不是那些冷冰冰的AI知识库能给出的效果。怎么做的?其实一点也不难。
2025-07-13 09:17:41
1041
原创 Kimi K2 吊打 Cluade和GPT 4 ?从代码、写作、数据分析三轮实测,结果出乎意料...
官方公告提到万亿参数,在各种代码和 Agent 榜单上拿第一名,那架势,仿佛一夜之间国产大模型就要拳打 OpenAI,脚踢 Claude 了。做一个3d流星雨的网页效果,要丰富 充满爱情,我用来表白,投放在大屏上,代码都写在一个html中,图片可以用刘亦菲的照片。要知道,我上传的不是纯文本的 Word,而是带有大量代码标签的 HTML 源码,这对信息提取是很大的干扰。有潜力,但需要耐心调教,不是一蹴而就。后来发现,爱情跟脱口秀一样,观众走了你不能追,只能站在台上对着空椅子把段子讲完,还得假装下面坐满了人。
2025-07-12 22:03:58
1671
原创 前端登录不掉线!Vue + Node.js 双 Token 无感刷新方案
大家好~ 我是一诺,最近在用Vue+Nest.js 开发个人项目,遇到了一个经典问题:JWT Token 的过期处理。传统的做法是,Token 一过期就让用户重新登录。但这样用户体验很差,想象一下你正在写一篇长文章,突然系统提示"登录过期,请重新登录",之前的内容可能就丢失了。有没有更好的解决方案呢?答案是有的,就是Token 自动刷新机制。今天咱们一起讨论下 在 Vue.js + NestJS 项目中实现一套完整的 Token 自动刷新方案。
2025-06-21 17:07:25
1649
2
原创 数据库批量查询慢?Redis+Nest.js 缓存优化,从10秒到50毫秒
前端程序员一诺分享了自己首次进行后端性能优化的经历。当他的AI作业批改系统在用户量激增后出现严重性能瓶颈(接口响应从1.2秒延迟至5秒,数据库CPU达90%)时,他引入了Redis缓存解决方案。通过建立双层缓存架构,将邮箱唯一性检查等高频操作从直接查询数据库(120ms)改为优先查询Redis内存(5ms),实现了性能的飞跃提升。文章详细介绍了Redis的原理优势、系统架构设计思路,以及如何在NestJS中具体实现Redis模块和核心缓存逻辑,最终使系统响应时间从1秒降至50毫秒。
2025-06-20 13:42:25
359
原创 Git Push 报错图解:从分支分叉到代码恢复
你好呀,我是一诺,很多朋友都遇到过这样的情况吧?别慌!这个错误其实很常见,今天一诺和大家一起分析一下这个问题的来龙去脉。你和同事都从同一个路口(提交B)出发你走了一条路,创建了提交C和D同事走了另一条路,创建了提交E现在你们在不同的地方,需要"汇合"才能继续一诺最后整理了一份Git使用总结图,如下所示。在编写代码时,大家不必担心会找不到之前的版本或改动,因为在Git的世界里,几乎没有什么是真正“丢失”的!fill:#333;color:#333;color:#333;fill:none;
2025-06-20 09:18:33
1269
原创 如何迁移备份MongoDB数据库?mongodump导出 + mongorestore导入全解析
大家好,我是一诺。今天分享一个实用的 MongoDB 数据库迁移方案~下班随手拍的夕阳🌇照片,感觉挺好看的,在北京的朋友,能猜到这是哪儿嘛🤔本地调试时:测试数据太假,没法复现线上问题😅新同事入职时:环境搭建半天,数据准备一天😰数据库升级前:心里没底,想先备份一下🔄多环境协作时:开发、测试、生产数据不同步怎么办呢?咱们使用 MongoDB 官方工具完成数据迁移,包括备份、传输和恢复的完整流程。工具包必须正确安装在MongoDB目录下- 这是最容易踩的坑备份前确认数据库连接正常。
2025-06-18 20:34:24
1562
原创 一文搞懂 MongoDB 迁移备份:mongodump 和 mongorestore 操作指南(附案例)
大家好,我是一诺。今天分享一个实用的 MongoDB 数据库迁移方案~下班随手拍的夕阳🌇照片,感觉挺好看的,在北京的朋友,能猜到这是哪儿嘛🤔本地调试时:测试数据太假,没法复现线上问题😅新同事入职时:环境搭建半天,数据准备一天😰数据库升级前:心里没底,想先备份一下🔄多环境协作时:开发、测试、生产数据不同步怎么办呢?咱们使用 MongoDB 官方工具完成数据迁移,包括备份、传输和恢复的完整流程。工具包必须正确安装在MongoDB目录下- 这是最容易踩的坑备份前确认数据库连接正常。
2025-06-18 20:12:21
1630
原创 八年前没搞定的Mongdb 迁移,今用cursor 十分钟解决了
前端开发者一诺分享了自己8年来解决MongoDB数据库迁移问题的经历。2017年初学时因技术难题求助付费解决,而2024年借助AI工具仅用10分钟就独立完成迁移。文章对比了前后两次经历的不同:从百度搜索到AI精准解答,从慌乱到从容调试。作者总结了AI辅助开发的三大优势:提升效率、降低试错成本、加速学习,并强调程序员的核心价值在于解决问题的决心而非工具本身。最后预告将发布详细的MongoDB迁移教程。
2025-06-18 18:25:58
947
原创 Vue 渲染 Markdown 文件完全指南
大家好,我是一诺,今天分享的是vue中渲染markdown文件。这是一个常见的需求,比如用户隐私协议页、技术说明等文档页面~本文将详细介绍如何在 Vue 中渲染 Markdown 文件,并美化代码块的显示效果。Markdown 是一种纯文本格式的标记语言,使用简单的语法来格式化文档。# 这是标题**这是粗体文字**- 这是列表项安装并配置 markdown-it创建 Vue 组件渲染 Markdown应用美观的主题样式添加代码语法高亮。
2025-06-06 16:22:16
2520
原创 用户退出了Token还能用?用Nest+Redis给JWT令牌加黑名单!
本文介绍了使用Redis实现JWT令牌黑名单的解决方案,以解决用户退出或账号被盗后令牌仍可使用的安全隐患。Redis因其高速查询、自动过期等特性成为理想选择。核心实现包括:1)配置Redis连接;2)创建TokenBlacklistService,提供将令牌加入黑名单和检查功能;3)在JWT守卫中集成黑名单检查。该方法简单高效,既保障安全性,又避免性能损失。(150字)
2025-06-03 10:00:00
1022
原创 从零开始AI编程:开发优惠券小程序 | 03 接入商品数据~
本文介绍如何利用AI编程工具DeepSeek快速开发一个淘宝优惠券小程序。主要内容包括: 编程基础概念讲解,如前端后端、API、数据库等 接入淘宝商品数据的具体步骤:注册大淘客账号、获取API权限、配置PID等 通过5轮AI对话实现功能开发: 生成基础代码框架 解决API签名问题 优化用户体验(分类筛选、加载动画) 实现最终下单功能 文章提供了完整的项目源码,展示了从零到一开发一个具备搜索、分类、下单功能的实用小程序的全过程,证明AI编程可以显著降低开发门槛。
2025-06-02 17:26:22
1033
原创 从零开始AI编程:优惠券小程序开发 | 02 AI 一分钟搞定UI界面
大家好,我是管一诺,在上一篇 👉AI编程的三大使用场景,我们探讨了AI编程的应用场景。从本篇开始,我们将正式进入实战环节,手把手教你搭建开发环境、使用AI生成优惠券小程序首页UI。
2025-06-01 20:25:14
1221
原创 从零开始AI编程:开发优惠券小程序|01 适合普通人的3大AI实战场景
大家好,我是一诺!从年前开始,我一直在研究AI编程,并且通过AI编程成功变现从UI设计、开发到上线,至少80%的工作都是由AI工具完成的,效率高到让人不敢相信!我想把这个经验分享出来,做一个系列教程,以电商优惠券小程序为案例 用AI 开发一个真实的项目。
2025-05-31 17:29:19
1104
原创 Cursor开发VS Code护眼插件!AI辅助编程的5个高效技巧
95后程序员一诺因长时间工作导致眼疲劳,利用Cursor编程工具在一天内开发出一款护眼插件,帮助自己和同行缓解眼疲劳。文章分享了他的开发过程,包括需求挖掘、AI编程实战和实用建议。一诺通过KANO模型分析需求,确定了核心功能,并选择开发VSCode插件。他利用AI编程工具快速实现功能,并通过迭代优化不断完善插件。最后,一诺提供了五个实用建议,鼓励普通人利用AI实现创意,强调在AI时代,清晰描述问题和解决方案的能力比技术细节更为重要。
2025-05-13 10:00:00
2259
原创 Uniapp 自定义TabBar + 动态菜单实现教程(Vuex状态管理详解)
原生 TabBar 样式受限,难以实现复杂的视觉效果无法动态控制 TabBar 的显示与隐藏难以实现小红点、徽标等交互元素不支持动态配置(如从后端获取菜单配置)于是,我决定封装一个功能完善、易于使用、可扩展的自定义 TabBar 组件。组件设计要考虑扩展性最初我只考虑了静态配置的TabBar,后来需求变成了从后端获取配置。幸好我使用了Vuex状态管理,使这个改动变得相对容易。生命周期的重要性合理利用框架提供的生命周期钩子,可以减少很多手动代码。
2025-04-21 10:56:09
2766
原创 前端布局难题:父元素padding导致子元素无法全屏?3种解决方案
突破父元素padding限制的关键在于理解CSS的盒模型和定位机制。负边距、vw单位和绝对定位各有优缺点,要根据具体场景选择最合适的方案。记住,CSS的世界里没有银弹,只有最合适的解决方案。希望这个技巧能帮到你!如果觉得有用,欢迎转发分享~我是一诺,我们下次见!
2025-04-05 23:14:43
839
原创 告别丑哭界面!Claude+Cursor一句话生成高颜值设计稿 !附完整提示词
感谢 AI 把技术门槛打下来了,现在只要有想法,分分钟就能验证创意。
2025-03-12 06:33:01
2664
原创 uniapp+node.js实现微信H5登录:从原理到实战,一篇搞定!
通过本文的详细介绍,相信大家对微信H5授权登录的实现有了更清晰的理解。无论是静默授权还是非静默授权,核心流程都是获取code,然后通过code换取用户信息。在实际开发中,务必注意安全性,尤其是appsecret和的保护。如果你在开发过程中遇到任何问题,欢迎在评论区留言,我会尽力为大家解答。
2025-03-11 17:30:18
1800
原创 微信H5登录怎么实现?uniapp+node.js一篇搞定!附完整代码
通过本文的详细介绍,相信大家对微信H5授权登录的实现有了更清晰的理解。无论是静默授权还是非静默授权,核心流程都是获取code,然后通过code换取用户信息。在实际开发中,务必注意安全性,尤其是appsecret和的保护。如果你在开发过程中遇到任何问题,欢迎在评论区留言,我会尽力为大家解答。
2025-03-11 17:15:34
2584
4
原创 阿里云oss开发实践:大文件分片、断点续传、实时进度 React+Node+Socket.IO
最近在捣鼓阿里云OSS上传,踩了不少坑,终于搞定了大文件分片上传和断点续传的功能。今天就来分享一下我的学习笔记,希望能帮到大家。先看效果 ↓特别说明 axios 中 onUploadProgress 只是上传本地文件的进度,不是上传服务器存入的进度,需要socket.io 从服务端实时返回上传进度。
2025-03-05 10:10:02
1819
原创 ECharts 实战指南:组件封装+地图轮廓高亮 + 自定义 Tooltip+轮播+锥形柱子
ECharts 是一个非常强大的数据可视化工具,通过合理的配置和封装,你可以实现各种复杂的图表效果。希望这篇文章能帮助你更好地理解和使用 ECharts。如果你有任何问题或建议,欢迎在评论区留言讨论!好了,今天的分享就到这里,我们下次再见!
2025-02-16 22:44:38
1047
原创 前端工程化-Webpack配置实战(手把手版)
就像盖房子🏠,以前要自己搬砖和水泥,现在直接上挖掘机和吊塔!前端工程化就是用Webpack/Gulp这些工具帮我们自动化处理脏活累活,让我们专心写业务代码!刚开始配Webpack确实头大,但坚持下来就会发现真香!建议先跑通基础配置,再慢慢加功能。每次手动搞这些重复劳动,人都要麻了!把JS/CSS/图片这些资源当成乐高积木,通过loader和插件组装成浏览器能直接用的文件。有问题的评论区见,看到都会回!基础配置 ➡️ 处理CSS ➡️ 处理图片 ➡️ 配Vue ➡️ 加Babel。一步一个脚印,咱们慢慢来!
2025-02-06 10:49:22
564
原创 深度优先 vs 广度优先:前端开发中的两大遍历神器,你会用了吗?
DFS:一条路走到底,适合解决“能不能走到终点”的问题。BFS:一层一层扩展,适合解决“最短路径”问题。在前端开发中,DFS和BFS也有很多应用场景,比如组件树遍历、页面导航等。希望通过这篇文章,你能对DFS和BFS有一个更清晰的理解!如果还有疑问,欢迎在评论区留言,咱们一起讨论!我是一诺,我们下次见!😄。
2025-02-01 13:21:24
993
原创 项目升级必备!TS装饰器:简化代码、增加功能的利器 | TypeScript入门指南07
嘿,朋友!听说过TS里的装饰器没?就像给代码加了个‘魔法贴’,轻轻一点,功能升级,结构清晰。这篇文章,咱们聊聊这背后的魔法是怎么一回事!
2024-09-15 10:37:01
798
原创 一文搞懂 TS中 函数、枚举、别名 | TypeScript 入门指南 06
主要讲解ts中的 函数、枚举、别名应用~ 如有不对的地方 欢迎留言反馈哈
2024-09-11 12:19:05
1090
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅