- 博客(110)
- 资源 (5)
- 收藏
- 关注
原创 构建一个rust生产应用读书笔记四(实战1)
这段代码通过表驱动测试的方法,验证了一个 HTTP API 在接收到缺少必要数据的请求时是否会正确返回 400 Bad Request 状态码。每个测试用例都包含一个无效的请求体和一个描述性的错误信息,以便在断言失败时提供详细的错误提示。虽然并没有覆盖到所有的测试用例,但是这种测试方法不仅提高了代码的可读性和可维护性,还确保了 API 的健壮性。假设数据是通过HTML表单收集的,并通过POST请求传递给后端API,表单数据的编码方式可以选择。这是最常见的表单数据编码方式,适用于大多数简单的表单提交场景。
2024-12-13 16:27:38
830
原创 何恺明团队挑战扩散模型的“常识”
生成新图像时,我们就从纯噪声开始,让训练好的模型一步步“去噪”,最终得到一张全新的、逼真的图片(比如一只从未存在过的猫)。(比如512×512×3=78万维)里精确预测每个像素的细节,非常吃算力,而且容易失败——尤其当图像分辨率很高时。所以,如果模型只学这个“低维曲面”上的干净图像,根本不需要记住每个像素的噪声细节!这样一来,模型只需要学会“从噪声中提取低维有效信息”,而不是“记住高维噪声分布”。把一张干净图片“慢慢搅成一锅粥”,想象你有一张清晰的照片,比如一只可爱的猫咪。
2025-11-23 10:50:51
922
原创 冒泡排序:像气泡一样“浮“出顺序的神奇算法
它就像水底的气泡一样,把小的元素"浮"到最上面,大的元素"沉"到最下面。冒泡排序也是这样:小的元素会"浮"到数组的前面,大的元素会"沉"到数组的后面。冒泡排序就像水底的气泡,小的元素慢慢"浮"到数组的前面,大的元素"沉"到后面。[3, 5, 8, 4, 2] → 5和8比较,5<8 → 不交换 → [3, 5, 8, 4, 2][3, 5, 8, 4, 2] → 8和4比较,8>4 → 交换 → [3, 5, 4, 8, 2]完成一轮比较后,最大的元素(8)已经"浮"到了数组的最后面。
2025-10-29 09:49:23
803
原创 对LlamaFactory的一点见解
文字指令 | 图片路径 | 理想回答 | |----------------|---------------|-----------------------| | “推荐这道菜” | ./images/1.jpg | “这是本店招牌红烧肉” | | “食材过敏吗?想象你教一个机器人当服务员,既要看懂顾客发的文字消息(比如“推荐这道菜”),又要能看顾客随手拍的菜单照片。这种训练让模型从“语言复读机”进化成“语言规律侦探”,为后续的指令微调打下基础,相当于先让它成为“语言通才”,再培养成“专项能手”。
2025-10-18 10:45:48
1095
原创 Dioxus异步
你的需求推荐方案启动一个“fire-and-forget”任务(如打点)spawn或async事件处理器根据状态自动刷新的异步数据(如搜索)多个异步组件共享一个加载状态.suspend()首屏直出内容(SEO/体验优化)+ SSR任务不能被取消(如上传)
2025-10-14 09:54:33
1059
原创 Dioxus状态管理
Signal是 Dioxus 中最基本的可变状态容器。你可以把它想象成一个带“监听器”的智能盒子盒子里装着一个值(比如数字、字符串、结构体)。每次有人读这个盒子,Dioxus 就记下:“XXX 用了这个盒子”。每次有人写这个盒子,Dioxus 就通知所有“用过它的人”:“值变了,快更新!场景推荐做法简单状态use_signal依赖计算use_memo网络请求父子传状态Props(用Signal或多组件共享Context真正全局状态Global(慎用)避免无限循环用.peek()
2025-10-13 17:16:22
706
原创 Dioxus hot-dog 总结
未来,随着 WebAssembly 的进一步发展和 Rust 生态的不断完善,Dioxus 有望成为全栈开发的重要选择。它不是要替代现有的框架,而是为开发者提供了一个全新的、更加统一和高效的开发路径。建议读者关注官方文档获取最新信息。这是一个基于 Rust 的全栈框架,让你可以用同一种语言、同一套类型系统、甚至同一个项目来构建完整的 Web 应用。
2025-10-11 16:42:19
1058
原创 趣味学Solana(发起交易)
你想在 Solana 上做点事?给朋友转点 SOL发一个自己的代币(比如“猫币”)这些操作都不是凭空发生的,而是通过一个叫交易(Transaction)的“快递包裹”来完成的。这个“包裹”里装的是:一条或多条“指令”(Instruction)这些指令就像是对 Solana 说的:“嘿,帮我做这件事!“还有这件事!“两件事必须一起成功,不然全作废!重点来了Solana 是个“要么全有,要么全无”的硬核系统—— 所有指令都成功 → 交易成功, 任何一条失败 → 整个交易作废,就像没发生过!
2025-09-24 09:20:40
971
原创 趣味学Solana(启航)
网络用途devnet开发者专用测试网,SOL 是“假”的,随便玩testnet验证节点测试用,普通开发者别碰主网!真金白银交易的地方 💸我们现在用的是devnet,放心大胆地试错吧!
2025-09-23 14:35:04
1322
原创 Dioxus组件和生命周期
只有“被跟踪的状态”变了,才会触发。即使顺序变了,Dioxus 也能认出谁是谁,不会把“客厅灯”的电线接到“卧室”去!装修队第一天来,要先“初始化”:比如选个装修风格、量尺寸、定预算。这就是“双向绑定”:输入框 → 信号 → 输入框,形成闭环!这叫“受控组件”—— 输入框的内容,由“信号”说了算!的“智能施工图”——它并不是死板的图纸,而是一张。但“张三”是客户名,会变。你想,如果客户把“卧室灯”拖到“客厅灯”前面,就像装修队说:“风格已经定了,别天天换!每次点“加一”,两个 log 都会重新打,
2025-09-23 10:46:29
836
原创 Dioxus 代码重构和跨平台
main.rs,我们用一个枚举(enum)DogView,Favorites,→ 根路径,就是“客厅”每个“门牌号”对应一个组件(比如DogView只要名字对得上,Dioxus 就知道该进哪个门!想让你的 App 更专业?App 图标(icon)开发者名字应用 ID(identifier,比如在[bundle]图标建议提供多个尺寸,适配不同设备。平台打包命令输出格式网页电脑.app.dmg.exe.deb等iOS.ipa安卓.apk。
2025-09-22 11:12:32
838
原创 Dioxus后端代码
Dioxus 不只是个“前端框架”,它是个但默认情况下,它只当“前端小弟”。要想让它变成“全栈大佬”,得先在Cargo.toml里。
2025-09-19 10:03:50
1061
原创 Dioxus事件互动
我们要从这个超棒的 API 拿狗图:message:狗图的链接(我们要的!status:状态,比如“成功”或“失败”的意思是:“Serde,拜托你,以后看到这种 JSON,帮我自动塞进这个结构体里。从此,我们拿到 JSON,就能一键“拆包”!
2025-09-18 11:00:45
850
原创 Dixous组件页面优化
RSX 就像一份乐高说明书,告诉 Dioxus:“我要拼出这样的界面”。比如,你想画一个写着 “Hello, world!rsx!" }就这么简单!你用rsx!{}这个“魔法宏”,描述你想要的结构,Dioxus 就帮你造出来。RSX = Rust + JSX(React 那套语法),但它运行在 Rust 里,安全又高效!
2025-09-18 09:24:02
1029
原创 Dioxus基础介绍和创建组件
Dioxus = React 的灵魂 + Rust 的肌肉 + Flutter 的野心它是一个用Rust 语言写的 UI 框架,让你像搭乐高一样,快速构建跨平台应用。来看个“击掌计数器”小 demo// 计数器状态rsx!h1 { "击掌计数器:{count}" }button { onclick: move |_| count += 1, "高高举起!" }button { onclick: move |_| count -= 1, "低低落下!" }点一下“高高举起”,数字 +1;
2025-09-17 14:59:55
1162
原创 RAGFlow的执行流程
接下来,我们分析一下RAG flow 的基础流程,为了方便理解,我们来举个例子说明整个流程是怎么执行的:打个比方,假设我们要判断某辆车是否闯红灯这样的一个场景,这个也是在交通安全领域常见的一个问题。
2025-09-17 11:29:55
897
原创 趣味学RUST基础篇(实战Web server)完结
呼……终于把前面那些忍术都学会了。”小新擦了擦汗,合上厚厚的《Rust 忍者秘籍》。小新瞪大了眼睛:“Web 服务器?那不是爸爸用来工作的大电脑吗?我也能做?”秘籍温柔地回答:“当然!今天,我们就用学到的所有知识,从最底层开始,亲手搭建一个能返回 ‘Hello, 动感超人!’ 的网站!就像搭积木一样简单!小新挠头:“服务器是啥?它怎么和我的浏览器说话?“想象一下,服务器就像一个永不挂机的‘客服中心’。它用一根叫的‘超级电话线’一直开着,等着别人打进来。当你在浏览器输入。
2025-09-16 09:13:55
1208
原创 趣味学RUST基础篇(高级特征)
章鱼小新的家族是忍者世家,小新掩人耳目的身份是一家火锅店老板,平时用的都是“基础忍术”——变量、函数、控制流,就像他每天吃零食、看动感超人一样普通。这样的代码,用的是“函数项”,它更像是忍术的一个“快照”。它虽然装的是普通水,但贴上‘隐身药水’的标签后,就成了独一无二的宝贝!但“不安全 Rust”就像打开了“问题是:闭包很特别,每个闭包都是独一无二的“定制符咒”,它们的类型连编译器在编译前都看不清长什么样。这个函数永远不会正常返回(因为它直接让程序崩溃了),所以它的“返回类型”是一个“不存在的类型”。
2025-09-16 09:11:58
804
原创 趣味学solana(钱包)
钱包类型安全性便捷性适合人群比喻纸质钱包⭐⭐⭐⭐⭐⭐长期持有者教练的战术本文件系统钱包⭐⭐⭐⭐⭐⭐⭐技术玩家球员的加密U盘硬件钱包⭐⭐⭐⭐⭐⭐⭐⭐⭐所有人!守门员的智能手套私钥如命,绝不外泄!备份恢复短语(助记词)!写纸上,藏好,别存手机!大额资产放硬件钱包,小额放软件钱包。警惕钓鱼网站!别在假“Solana官网”输私钥!在 Solana 足球宇宙,钱包就是你的身份 + 资产 + 权力。无论你是球星、球迷还是守门员,选对钱包,才能安心踢球、放心打赏、赢得未来!
2025-09-15 09:11:40
725
原创 趣味学RUST基础篇(OOP)
简单说,就是把程序当成一个真实世界来设计!对象= 店铺、员工、顾客、锅底属性= 店铺位置、员工姓名、顾客口味方法= 上菜、加汤、结账地铁闸机:没刷卡进不去,出站要刷卡电梯按钮:只能按当前楼层允许的按钮游戏关卡:必须通关才能进入下一关记住:当你有一系列状态,且不同状态有不同的行为时,状态模式就是你的最佳选择!
2025-09-15 09:07:27
1138
原创 趣味学solana(介绍)
为了方便理解Solana,我们把。成千上万的足球运动员(用户)在不停地传球、射门(发送交易),而整个比赛的结果必须被准确、公平地记录下来。那么,谁来当这个裁判和记分员呢?答案就是——!你可以把自己想象成这个联赛中的一名。
2025-09-12 10:48:43
994
原创 趣味学RUST基础篇(异步补充)
简单说,就是给异步操作定规矩!就像麦当劳有《服务手册》,章鱼小新也要为他的火锅店制定《智能服务标准》。// 定义火锅店的服务标准(异步Trait)// 必须实现的方法// 可以有默认实现的方法println!("欢迎光临章鱼小新火锅!");小订单、多等待→ 用异步任务(智能服务员)大计算、少等待→ 用线程(大师傅)两者结合→ 发挥最大效能记住:异步不是万能的,线程也不是落后的。关键是根据场景选择合适的工具!
2025-09-12 10:39:10
1551
原创 趣味学RUST基础篇(异步)
想象一下,你网购了一台游戏机。下单那一刻:你并没有拿到游戏机(现在没有准备好)。但你知道:过几天,快递会把它送到你家(未来某个时刻会准备好)。在编程中,Future就像这个“未来的快递包裹”。它代表一个现在可能还没有结果,但在未来某个时刻会有结果的值。返回的不是一个User,而是一个—— “一个将来会包含用户信息的包裹”。返回的不是一个图片文件,而是一个—— “一个将来会包含图片数据的包裹”。别名Future在别的语言里也叫 “Promise” 或 “Task”,意思都一样。
2025-09-11 14:36:28
1203
原创 趣味学RUST基础篇(多线程并发)
武器特点适用场景线程 (创建分身,同时干活需要真正并行的任务消息传递 (安全!避免数据竞争,代码清晰推荐优先使用,尤其任务逻辑独立时共享状态 + 锁 (MutexArc灵活,可以直接修改共享数据多个线程需要频繁读写同一份数据若非必要,勿增实体;若要共享,必加防护。Rust 通过其独特的所有权系统和类型系统,在编译时就能帮你揪出大部分并发错误,让你写出既快又安全的代码,不用再为“段错误”、“数据竞争”这些恐怖的东西担惊受怕了!
2025-09-11 09:29:52
330
原创 趣味学RUST基础篇(智能指针_结束)
RefCell<T>是 Rust 的“内部可变性”工具,它让你在“外表不可变”的情况下,安全地修改内部数据 —— 规则检查从“编译时”挪到“运行时”。写测试 mock 对象构建循环数据结构多个所有者共享并修改同一数据(配合Rc<T>引用循环就像两个朋友互相谦让,结果谁也出不去。用Weak<T>打破循环,让一方“只看不拥有”,就能顺利释放内存。
2025-09-10 13:57:56
909
原创 趣味学RUST基础篇(智能指针2)
当一个变量“寿终正寝”(离开作用域)的时候,Rust 会自动调用一个叫drop的函数,帮你把它的“遗物”(比如堆内存、文件句柄)收拾干净。这在其他语言里,你得自己记得说:“喂,我用完这个对象了,快释放内存!但在 Rust,你什么都不用做——它自己会默默收拾好,还不会忘。举个栗子:你用Box<T>分配了一块内存,用完之后,只要变量超出作用域,Rust 就会自动释放那块内存。不用手动free(),也不会内存泄漏。因为 Rust 有Drop这个贴心管家。当然可以!
2025-09-10 09:44:17
1112
原创 趣味学RUST基础篇(智能指针1)
Box<T>在 Rust 中,是“取引用”,是“解引用”。let x = 5;let y = &x;// y 是个引用,指向 xassert_eq!(5, *y);// 必须加 * 才能“解开”引用,拿到里面的 5如果你写assert_eq!(5, y),会报错:“你不能拿一个整数和一个‘指向整数的指针’比较!所以:*y的作用就是“顺着箭头找到背后的值”。
2025-09-09 11:42:20
1330
原创 趣味学RUST基础篇(函数式编程迭代器)
你用高级语法写的代码,Rust 编译器能把它变成和你手写汇编一样高效的机器码。你用“自动驾驶”模式开车,结果发现它比你手动开还省油、还安全。你用“美颜滤镜”拍照,结果发现画质和原图一模一样,只是更好看了。Rust 说:“你不用的,不收你钱(不引入开销);你用了的,我给你做到极致(不可能手写更好)。这正是 C++ 之父 Bjarne Stroustrup 说的“零开销(zero-overhead)”原则!
2025-09-09 10:36:15
893
原创 趣味学RUST基础篇(函数式编程闭包)
魅力说明匿名灵活不用命名,随手创建,随手用记忆超群能捕获定义时的环境变量类型智能编译器自动推断,省心省力。
2025-09-08 15:51:49
1096
原创 趣味学RUST基础篇(构建一个命令行程序完结)
现在search函数已经通过测试,可以投入使用了!你回到主程序run函数调用它,完整代码如下;//重点是这行println!("{line}");Ok(())搜"frog"→ 返回 1 行搜"body"→ 返回多行搜(根本不存在的词)→ 一行都不返回完美!你的“迷你 grep”大功告成!正常结果 → 走stdout→ 可以被保存、被处理。错误信息 → 走stderr→ 直接弹出,不会被“淹没”。这就像:一个好的服务员,不会把账单和垃圾一起扔进垃圾桶。
2025-09-08 10:29:34
747
原创 趣味学RUST基础篇(构建一个命令行程序2重构)
太好了!我们的探测器已经能听懂指令了,知道要找“”,并且知道去“”里找。但问题来了——它还!就像一个拿着探测器的探险家,眼睛一闭,啥也看不见。所以,第二步,我们要教它如何“翻阅卷轴”——读取文件!
2025-09-05 14:39:17
1404
2
原创 趣味学RUST基础篇(构建命令行程序1)
这一节,我们开始做一个小程序,顺便把前面的内容回顾一下。。手动一页页翻?太慢了!你需要一个!这,就是我们今天要用 Rust 打造的——一个属于你自己的 grep,我们可以叫它“使用Rust做的工具不仅(运行速度),还(安全性高),而且打包出来就一个(单一二进制文件),不管是在 Windows、Mac 还是 Linux 的探险营地里,都能直接打开就用!简直是造“探险工具”的完美人选。
2025-09-05 09:05:20
1059
原创 趣味学RUST基础篇(测试)
默认的错误信息有时候太冷冰冰了。assert!失败时只说:“断言失败”,你根本不知道result到底是啥。解决办法:加自定义消息!assert!result是不是清楚多了?就像朋友在告诉你:“兄弟,你忘了把名字加进去啊!准备 → 执行 → 断言:测试三步走,稳如老狗。多用assert_eq!和assert_ne!:清晰明了,失败时还能看到具体值。善用自定义消息和:让错误信息更有“人情味”,定位 bug 更快。
2025-09-04 14:05:51
1331
1
原创 趣味学RUST基础篇(泛型扩展)
类型语法关键点函数T: Trait约束行为结构体多参数T, U更灵活枚举Option和Result的秘密方法可通用,可特化,可自泛型。
2025-09-03 09:13:50
927
原创 趣味学RUST基础篇(泛型)
工具作用类比泛型<T>抽象类型,避免重复代码万能模板Trait约束泛型的行为能力合同生命周期'a管理引用的存活时间时间管理大师“恭喜各位!经过今天的《Rust 代码瘦身营》,你已经掌握了:用泛型消灭重复代码用 Trait 确保类型有正确行为用生命周期防止悬垂引用”
2025-09-03 09:05:53
886
原创 趣味学RUST基础篇(HashMap)
就像一个魔法储物柜每个抽屉都有一个标签(Key)抽屉里放着对应的物品(Value)"蓝队" → 10 分"黄队" → 50 分你想查蓝队得分?直接问:“蓝队多少分?10!它不靠“第几个”,而是靠“叫什么”来查找,又快又准!
2025-09-02 09:14:07
768
原创 趣味学RUST基础篇(向量)
向量就像一个自动伸缩的货架,里面一格一格地放着相同类型的物品。可以放 1 个、10 个、甚至 1000 个!但所有格子里的东西必须是同一类型(比如全是i32数字,或全是String字符串)用途:存文件的每一行、购物车商品、游戏得分列表……
2025-09-01 14:34:48
1032
1
原创 趣味学RUST基础篇(String)
类型名字特点&str字符串切片“只读卷轴”,通常来自字面量,比如"hello"String动态字符串“可编辑卷轴”,能增、删、改,像Vec<T>一样灵活通常我们说“字符串”,就是指这两个一起。“只读”和“可变”是两回事!字符串,远比你想象的复杂。Rust 没有隐藏这种复杂性,而是把它摆在你面前,让你写出真正健壮的代码。
2025-09-01 14:22:28
1188
原创 趣味学RUST基础篇(管理包和模块)
概念类比作用mod建房间划分代码区域路径门牌号定位某个函数或结构体pub开门按钮决定是否对外开放use快捷方式简化对常用项的调用模块树大楼平面图展示所有模块的层级关系。
2025-09-01 10:03:34
890
车联网新能源汽车GBT32960协议和商务模式
2024-12-16
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅